Session Variablen überleben nicht

DexXxtrin

Erfahrenes Mitglied
Hallo zusammen,

Ich habe ein Problem mit der Session. Und zwar wird die bei mir gelöst, sobald ich die Seite aktualisiere oder auf eine neue Seite komme.
Als Beispiel habe ich diesen Captcha Generator: http://www.eathena.ws/board/index.php?showtopic=241071

Und so teste ich das ganze:

PHP:
<?PHP
include("captcha.php");	

if(check_captcha($_POST["Captcha"]))
		echo "<br>true<br>";
	else
		echo "<br>false<br>";
		
generate_captcha(2);

echo "<br>".$_SESSION[ CAPTCHA_SESSION_KEY ]."<br>";
?>

<FORM action="index2.php" method="post">
    <P>
    <LABEL for="captcha">Captcha: </LABEL>
              <INPUT type="text" name="captcha"><BR>
    <INPUT type="submit" value="Send">
    </P>
 </FORM>


Um Tipps und Hilfevorschläge bin ich sehr froh.

Besten Dank

DexXxtrin
 
Steht in Captcha.php.
Habe es aber auch schon in meinem Ausgabecode eingefügt (ganz oben nach <?PHP) und es hat auch nicht funktioniert.
 
Was ich auch merkwürdig finde, ist die Schreibweise der Session-Variablen. Zumindest die Leerzeichen stören mich da.

Ändere mal $_SESSION[ CAPTCHA_SESSION_KEY ] in $_SESSION["CAPTCHA_SESSION_KEY"] und schau was dann passiert.
 
Ok jetzt funktionierts. Habs so geändert wie du gesagt hast und diese Zeile in captcha.php auskommentiert:
PHP:
define( 'CAPTCHA_SESSION_KEY', '__captcha__' );		//Key of the session variable that will be set

Was ich komisch finde ist, dass der Befehl $_SESSION[ CAPTCHA_SESSION_KEY ] in meinem Code, die Richtige Zeichenfolge ausgab...?
 
Leider muss ich auch dieses Thema nochmals neu aufgreiffen.
Ich bekomme bei jedem aktualisieren eine neue SessionID...
PHP:
$session = session_start();

if(!$session)
	log_session_err();
elseif(!isset($_SESSION['_SID'])) 
{
	$tmp = md5(microtime());
	$_SESSION['_SID']= $tmp;
}
echo $_SESSION['_SID'];
 
Also bei mir klappt es mit dem obigen Code ohne Probleme. Wenn es bei dir nicht so ist, dann ist der Fehler an anderer Stelle versteckt.
 
Ok wenn ich nur diesen Codeteil in eine PHP-Datei schreibe und diese dann aufrufe funktioniert es auch...
Ich hab jetzt nochmals alle Files durchgesucht und voila: In zwei Files, welche ich Include stand nochmals session_start();
Hab diese rausgenomme, jetzt scheint es zu klappen.

Noch eine andere Frage. Meine Page besteht sozusagen nur aus einer index.php, bei welcher dann die jeweiligen Files included werden.
Die $_SESSION Variabeln kann ich jetzt ohne Probleme in allen Files abrufen und neu setzten?
 
Zurück