Farben festlegen in PHP Script
Sven Fäßler
- php
0 Stolzi0 Sven Fäßler
0 Tobias K.
Hallo,
ich habe eine Frage ich möchte mit PHP ein Farbwahl Script einbauen. Gestartet wird die main.php
---
<?php
session_start();
if (!isset ($_SESSION['colorset']))
{
$bg = "red";
$text = "white";
$link = "#C0C0C0";
$vlink = "#808080";
$alink = "#FFFFFF";
}
else
{
$colorset = $_SESSION['colorset'];
if ($colorset=="bw")
{
$bg = "black";
$text = "white";
$link = "#C0C0C0";
$vlink = "#808080";
$alink = "#FFFFFF";
}
if ($colorset=="wb")
{
$bg = "white";
$text = "black";
$link="#3333FF" ;
$vlink="#99CCFF";
$alink="#c0c0c0";
}
}
?>
<html>
<head>
</head>
<body bgcolor="<?= $bg ?>" text="<?= $text ?>" link="<?= $link ?>" vlink="<?= $vlink ?>" alink="<?= $alink ?>">
Herzlich willkommen...
<br><br>
<a href="setcolor.php">Zur Farbauswahl</a>
--
Über das Formular auf setcolor.php soll man die Farben ändern können.
--
<?php
session_start();
session_register('colorset');
?>
<html>
<head>
</head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Login</title>
</head>
<body>
<form name="colorset" method="post" action="main.php">
<select size="1" name="colorset">
<option value="bw">Schwarz / Weiß</option>
<option value="wb">Weiß / Schwarz</option>
<option selected>Bitte Farbschema wählen</option>
</select>
<br><br>
<br><br>
<input type="submit" value="OK">
<input type="reset" value="Reset">
</form>
</body>
</html>
--
Jemand eine Idee warum es nicht funktioniert?
Danke für eure Tipps.
Hallo,
<?php
session_start();
session_register('colorset');?>
Du registrierst $colorset, aber es ist ja noch gar kein Wert dafür gesetzt!
Du solltest colorset in der main.php setzen. Und zwar so:
if (isset($colorset)) $_SESSION[colorset] = $_POST[$colorset];
Dann sollte es schon besser aussehen. versuchs mal.
Wenn du bei sowas nicht weiterkommst solltest du immer anfangen zu überprüfen ob die Varaiable von der du was willst überhaupt einen Wert enthält! zB mit echo
Grüsse
Stolzi
Du solltest colorset in der main.php setzen. Und zwar so:
if (isset($colorset)) $_SESSION[colorset] = $_POST[$colorset];
Habe ich probiert.
Habe jetzt die main.php umgesetzt.
---
<?php
session_start();
if (isset($colorset)) $_SESSION[colorset] = $_POST[$colorset];
if (!isset ($_SESSION['colorset']))
{
$bg = "red";
$text = "white";
$link = "#C0C0C0";
$vlink = "#808080";
$alink = "#FFFFFF";
}
else if (isset ($_SESSION['colorset']) && $colorset=="bw")
{
$bg = "black";
$text = "white";
$link = "#C0C0C0";
$vlink = "#808080";
$alink = "#FFFFFF";
}
else if (isset ($_SESSION['colorset']) && $colorset=="wb")
{
$bg = "white";
$text = "black";
$link="#3333FF" ;
$vlink="#99CCFF";
$alink="#c0c0c0";
}
?>
<html>
<head>
</head>
<body bgcolor="<?= $bg ?>" text="<?= $text ?>" link="<?= $link ?>" vlink="<?= $vlink ?>" alink="<?= $alink ?>">
Herzlich willkommen...
<br><br>
<a href="setcolor.php">Zur Farbauswahl</a>
<?= $colorset ?>
<?= $bg ?>
--
aber funktionieren tut es immer noch nicht :(
Gruß
Sven
Hallo,
was genau funktioniert nicht? Du musst genauer werden...
Prüfe wie ich gesagt habe ob du alle Variablen korrekt gesetzt bekommst:
echo 'Post: '.$_POST[colorset];
if (isset($_POST[colorset])) $_SESSION[colorset] = $_POST[colorset];
echo 'Session: '.$_SESSION[colorset];
Ich hatte einen kleinen Tipfehler! Ich schrieb: $_POST[$colorset]. Das sit falsch! $_POST[colorset] muss es heissen wie oben geschrieben!
Gehts dann?
Grüsse
Stolzi
Hallo Stolzi,
echo 'Post: '.$_POST[colorset];
zum prüfen kann man auch einfach print_r($_POST) bzw. print_r($_SESSION) verwenden.
Ich hatte einen kleinen Tipfehler! Ich schrieb: $_POST[$colorset]. Das sit falsch! $_POST[colorset] muss es heissen wie oben geschrieben!
fast - $_POST['colorset'] ->http://www.php.net/manual/de/language.types.array.php#language.types.array.foo-bar
Grüße aus Nürnberg
Tobias
funktioniert leider immer noch nicht
siehe: http://www.citrix-forum.net/php/color/main.php
http://www.citrix-forum.net/php/color/col.zip (zum Downloaden der Quelldateien), vielleicht hilft das...
Hallo Sven,
<body bgcolor="<?= $bg ?>" text="<?= $text ?>" link="<?= $link ?>" vlink="<?= $vlink ?>" alink="<?= $alink ?>">
du gehst davon aus, dass short_open_tag auf on steht - außerdem gibt es ja nun wirklich schönere Möglichkeiten die Farben anzugeben als die Attribute im body-Element (->css).
session_start();
session_register('colorset');
evtl register_globals auf off? versuchs mal mit $_SESSION['colorset'] = $colorset;
<form name="colorset" method="post" action="main.php">
ich bin mir jetzt nicht so ganz sicher, aber wenn du die Farbauswahl an main.php sendest, wie soll dann setcolor.php die Farben für die Session registrieren? Ansonsten wäre es vielleicht hilfreich sich das ganze mal "live" anschauen zu können...
Grüße aus Nürnberg
Tobias