2017-02-08 2 views
-3

Ok, diese zeitgesteuerte Sitzung ist neu für mich Ich habe einen Testcode erstellt. Hier ist die Form, die den Beginn der Sitzung veröffentlichen:Wie sehen Sie, ob eine PHP-Sitzung eingestellt ist?

<?php 
echo '<form action="index2.php?content=merc_script" method="post">'; 
echo '<input type="radio" name="Archer" value="1"">'; 
echo '<input type="submit" value="Hire Archer">'; 
echo '</form>'; 
?> 

und hier ist der Testcode:

if(isset($_POST['Archer'])){ 
$archer = ini_set("session.cookie_lifetime","3600"); 
echo "Your Cookie is set!"; 
echo "$archer"; 
exit(); 
} 


else{ 
echo "The Cookie was NOT set"; 
} 

Dieser Code erzeugt die Sitzung oder so sagt es: Ihr Cookie gesetzt wird 0 Hier ist der Code, den ich es verwende, in dem ein Kampf Skript:

<?php 
if(isset($_SESSION["Archer"])){ 
echo "The Archer is with you"; 
exit; 
} 
else{ 
echo "You have no Mercenary to help You!"; 
} 
?> 

Wenn ich ein Monster zu kämpfen, heißt es: Sie haben keine Söldner, um dir zu helfen! Kann jemand bitte erklären, wie man das richtig macht?

Vielen Dank im Voraus

Ich habe diesen Beitrag bearbeitet, weil ich bin verwirrt zu werden. Ich habe eine globale session_start(); in einer Header-Datei, die in jedem Skript enthalten ist, das ich anrufe. Ich habe jeden Vorschlag ausprobiert und kann immer noch nicht die Antwort finden, tut mir leid, jemanden verärgert zu haben, wenn ich es getan habe. Ich versuche nur, eine Lösung zu finden.

+0

printr _SESSION $ –

+0

zuerst sicherstellen, dass Sie die Sitzung –

+0

und den zusätzlichen Zitat hier 'value = "1"" 'gestartet könnte <<< negative Auswirkungen haben –

Antwort

0

Session Start erfordert Klammern, sonst php Fehler für eine Konstante.

session_start(); 
$key = 'my_key'; 
// check to see if session variable is set 
if(isset($_SESSION[$key])){ 
    $val = $_SESSION[$key]; 
    echo "Key is set. The value is: $val"; 
}else{ 
    // not set, setting a session variable at a specific key 
    $_SESSION[$key] = 'Some Value'; 
} 
+0

Ich habe das versucht und es kam nur mit einer 0 zurück, also heißt das, dass es auf 0 gesetzt ist oder meinen NULL bedeutet? –

+0

@TerryJ. schau dir meinen Code an. Schau deine an. Sie setzen die Ini-Cookie-Lebensdauer. Dies zeigt nur an, wie lange es dauern soll. (Was ich nicht einmal sicher bin, ist richtig, aber ich bin nicht bereit, weiter zu schauen.) Nirgends setzen Sie eine Session-Variable. Sehen Sie sich meine obige else-Klausel an. Dies ist, wie Sie es einstellen, nachdem Sie session_start() – MackProgramsAlot

+0

Ihren Code funktioniert hat, setzt er den Wert zu Archert von der geposteten Form dank. Jetzt muss ich nur herausfinden, wie man ein Zeitlimit dafür setzt. –

0

Ein Wort der Beratung, der Sie jede Sitzung Art von Sachen tun (in der Tat nur tun dies immer), die erste Aussage machen in Sie session_start; dh Datei:

<?php 
    session_start; 
    // other stuff here 
?> 

Das startet eine Sitzung, wenn ein existiert noch nicht, und wenn es einen gibt, verwendet es die existierende Sitzung.

+0

Ich habe das versucht, es hieß, dass die Sitzung bereits gestartet wurde, ich benutze eine globale Sitzung _Anfang(); in meiner Header-Datei. –

+0

Sie können die Funktion session_start nicht mehrmals in einer Datei verwenden. In der Regel wird der Fehler "Sitzung wurde bereits gestartet" angezeigt, wenn Sie diese Anweisung mehrmals in einer Datei platzieren. Dies gilt auch, wenn Sie eine PHP-Datei einschließen, die bereits eine session_start-Anweisung enthält. –

Verwandte Themen