Sessions oder wie?

f3hlfarb3

Grünschnabel
Juten Abend

Ich versuchs schon den ganzen Tag, und vieleicht bin ich ja auch auf dem Holzweg mit der Umsetzung?!

Ich möchte gerne erreichen, das Benutzer einer Seite über ein SET-Feld eines Formulares die Farben wählen können die Innerhalb einer Tabelle angezeigt werden.
Dazu übergebe ich die Werte mittels POST an die farbe.inc.php. Funktioniert auch soweit ganz gut. Die Tabellen werden so angezeigt wie man es auswählt, aber nur solange bis auf einen Link geklickt wird, dann öffnet sich die neue Seite mit einer Voreinstellung, wo ich dann zwar wieder die Farbe auswählen könnte, aber ich möchte es gerne erreichen das es sich das Script merkt welche Farbe ausgewählt wurde.

Dazu hier mal die Scripte, die habe ich soweit zurückgesetzt, das man meine SESSIONS-Versuche nicht mehr sieht:

farbe.inc.php.
PHP:
<?php


   



	$farbe	=	$_POST['farbwahl'];
    $fontfarbe	= "#000080";
    
    if ($farbe == "")
    {
    
    $farbe = "#C0D7BB";
    
    }

    ?>


hier die Seite mit dem Formular: chefhead.php
PHP:
<html>

<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Chef-Head</title>
</head>

<body>


<table cellpadding="0" cellspacing="0" border="0" width="140" height=100%>
<tr>
<td bgcolor="<?php echo $farbe  ?>"></td>
<td bgcolor="<?php echo $farbe  ?>"></td>
<td><img src="schatten_obenrechts.gif" width="6" height="8"></td>
</tr>
<tr>
<td bgcolor="<?php echo $farbe  ?>"></td>
<td style="padding-right: 6px; padding-bottom: 6px" bgcolor="<?php echo $farbe  ?>" valign="top" height=100%>
<p>

<table border="0" width="980" id="table1" bgcolor="<?php echo $farbe  ?>">
	<tr>
		<td width="140" height="80">&nbsp;</td>
		<td width="700">
		<p align="center"><font size="7" color="<?php echo $fontfarbe  ?>">
		www.XYZ.de</td></font>
		<td width="140">
		<form method="POST" action="<?php PHP_SELF  ?>"><p align="center">
			
			<font color="<?php echo $fontfarbe  ?>"><b>Farbauswahl:</b></font>
						
			<select size="1" name="farbwahl" style="width: 100">
			<option value="#C0D7BB">Default</option>
			<option value="#ff0000">Rot</option>
			<option value="#ffffff">Weiss</option>
			<option value="#008000">Grün</option>
			<option value="#808000">Olive</option>
			<option value="#000080">Navi</option>
			<option value="#800080">Lila</option>
			<option value="#008080">Teal</option>
			<option value="#c0c0c0">Silver</option>
			<option value="#808080">Grau</option>
			<option value="#ffff00">Gelb</option>
			<option value="#0000ff">Blau</option>
			<option value="#ff00ff">Fuchsia</option>
			<option value="#00ffff">Aqua</option>

			</select><input type="submit" value="Anwenden" name="anwenden" style="width: 100">
		</form></p>
		</td>
	</tr>
</table>

</td>
<td background="schatten_rechts.gif" height="100%"></td>
</tr>
<tr>
<td><img src="schatten_untenlinks.gif" width="8" height="6"></td>
<td background="schatten_unten.gif" width="126"><img src="blindgif.gif" width="6" height="6"></td>
<td width="100%"><img src="schatten_untenrechts.gif" width="6" height="6"></td>
</tr>
<tr>
	<td><img alt="" width="8" height="1" src="MsSpacer.gif"></td>
	<td><img alt="" width="126" height="1" src="MsSpacer.gif"></td>
	<td></td>
</tr>
</table>



</body>

</html>

und noch die Index, die alles zu einem macht:

PHP:
<?php
    include ("farbe.inc.php");
    
    
    ?>



<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Chefseite</title>
</head>

<body link="<?php echo $fontfarbe  ?>" vlink="<?php echo $fontfarbe  ?>" alink="<?php echo $fontfarbe  ?>">

<div align="center">
	<table border="0" width="980" id="table1">
		<tr>
			<td colspan="2">			
			<?php
			include ("chefhead.php");
			?></td>
		</tr>
		<tr>
			<td colspan="2">
			<p align="center"><b><font color="#FF0000">BETA V 0.1.1</font></b></td>
		</tr>
		<tr>
			<td width="140" valign="top" height="100%">
			<?php
			include ("chefmenue.php");
			?></td>
			<td width="840" valign="top" height="0">
			<table cellpadding="0" cellspacing="0" border="0" width="840" height="100%">
	<tr>
		<td></td>
		<td></td>
		<td><img src="schatten_obenrechts.gif" width="6" height="8"></td>
	</tr>
	<tr>
		<td></td>
		<td style="padding-right: 6px; padding-bottom: 6px" valign="top" height="100%">
		<p>
			
			<?

          $include=$_GET['goto'] ;

          if(file_exists($include)==1){
          include_once$include ;
          }
          else
          {include ('chefindex.php');
          }
          ?>
          </td>
<td background="schatten_rechts.gif" height="100%"></td>
</tr>
<tr>
<td><img src="schatten_untenlinks.gif" width="8" height="6"></td>
<td background="schatten_unten.gif" width="126"><img src="blindgif.gif" width="6" height="6"></td>
<td width="100%"><img src="schatten_untenrechts.gif" width="6" height="6"></td>
</tr>
<tr>
	<td><img alt="" width="8" height="1" src="MsSpacer.gif"></td>
	<td><img alt="" width="826" height="1" src="MsSpacer.gif"></td>
	<td></td>
</tr>
</table>
          
          
          </td>
		</tr>
	</table>
</div>

</body>

</html>

Wie geschrieben, ich möchte erreichen, das die Eingestellte Farbe auch bleibt, solange der Benutzer auf der Seite ist.

Vielen Dank für Eure Hilfe
f3hlfarb3
 
Also um mit Sessions arbeiten zu koennen benoetigst Du am Anfang Deines Scripts den Befehl session_start(), und zwar auf jeder Seite die aufgerufen wird (inkludete Scripts brauchen das nicht). session_start() muss ausserdem vor jeglicher Ausgabe an den Browser aufgerufen werden, also vor irgendwelchem HTML-Code, denn dabei werden in der Regel Header-Daten eingefuegt (ein Session-Cookie).

Nachdem die Session gestartet ist kannst Du auf das Array $_SESSION zugreifen und darin beliebige Werte, wie hier z.B. die Farbe, speichern. Das waere dann hier also $_SESSION['farbe'].
Auf diese Daten kannst Du dann auch nach einem erneuten Ladevorgang wieder zugreifen indem Du eben wieder die Session startest und auf den zuvor gesetzt Wert zugreifst.
 
Erstmal vielen Dank für Deine promte schnelle Antwort, dann lag ich mit meiner Vermutung, das mit SESSION zu machen nicht verkehrt.

Also ich werde jetzt in jeden Kopf der Seiten <?php session_start(); ?> einbinden.
Definiere $_SESSION = $_SESSION['farbe']; ? auch auf jeder Seite ?
 
So, ich bin hier am fummeln wie ein Weltmeister.... ich komm einfach nicht dahinter,

Kann mir da mal bitte jemand einen Lösungsansatz geben? Ich versuche gerade den o.g Lösungsschritt zu befolgen nur leider klappt das nicht :-(

Thank You
f3hlfarb3
 
Schön guten Tag.

Ich habe jetzt die letzten 2 Tage unendlich Stunden vor google gesessen, probiert wie ein kaputter, hat aber leider nichts geholfen, vieleicht hat einer von Euch den doch noch mal eine Idee,

Der Benutzer soll sich über ein Auswahlfeld eine Farbe aussuchen dürfen, die dann z.B. als Hintergrundfarbe in einer Tabelle auftaucht... Das funktioniert ja schon, Aber bei jedem Klick verschwindet die Vorauswahl (Schade)
Ich suche eine Möglichkeit, das das Script es sich merkt welche Farbe der jeweilig Benutzer gewählt hat und diese Einstellung auch beibehält, bis er sich wieder eine andere Farbe auswählt.

Vielen Dank im Vorraus,
Frank
 
Keine Ahnung warum, Aber es funktioniert,

das Schript mit der SESSION
PHP:
<?php session_start(); 
if (isset($_POST['farbwahl']))
        {

            $_SESSION['farbe'] = $_POST['farbwahl'];

          }  
            
            if ($_SESSION['farbe'] == "")
            {
           		 $_SESSION['farbe'] = "#C0D7BB";
            } ?>


und so wir die farbe aufgerufen:

PHP:
 bgcolor="<?php echo $_SESSION['farbe'];  ?>"


Wie sagt man immer so schön... "Keine Antwort ist auch eine Antwort"
wahrscheinlich ist da was dran, nämlich wenn keiner Antwortet strengt man sich doppelt an, aber ich weiss wo ich in Zukunft nachschlage ;-)

Grüße
 
Zurück