Session Variable nicht übergeben
Dhyan
- php
Hallo,
ich hab grade angefangen den Umgang mit sessions zu lernen
und gleich der erste Versuch misslingt :-)
auf main.php wird die Variable noch ausgegeben, aber das geht
ja ohne sessions, auf main2.php dann nicht mehr.
http://a2-clan.cdaweb.de/lernen
oder kann es sein dass mein webspace keine sessions unterstützt?
wenn das so ist kennt jemand kostenlos space der mit sessions
umgehen kann? oooder *g* kann mir jemand zeigen wie ich den
apache so konfigurier dass ich da alles testen kann?
---index.php------
<html>
<head><title>Sessions</title></head>
<body>
<form method="GET" action="main.php">
<input type="text" name="name" size="20">
<input type="submit" value="Abschicken" name="B1"><input type="reset" value="Zurücksetzen" name="B2">
</form>
</body>
</html>
---main.php------
<?
session_save_path("./save");
session_start();
session_register("name");
?>
<html>
<head><title>Sessions</title></head>
<body>
Im Formular wurde
<?
echo $name;
?> eingegeben!
<a href="main2.php">nächste Ebene</a>
</body>
</html>
---main2.php------
<?
session_start();
?>
<html>
<head><title>Sessions</title></head>
<body>
Im Formular wurde <b>
<?
echo $name;
?>
</b> eingegeben!!
<a href="main3.php">Logout</a>
</body>
</html>
---main3.php------
<?
session_start();
session_unregister("name");
?>
<html>
<head><title>Sessions</title></head>
<body>
Sie sind jetzt ausgeloggt!
</body>
</html>
mfg Dhyan
Hallo,
hast Du schon mal ein ganz normale Post von einem Formular durchgeführt?
Wo stehen denn da die Variablen?
Wenn du ein Feld mit Namen "hallo" hast, kommt das dann beim Post-Empfänger in $hallo oder in $_POST["hallo"] an?
Wenn register_globals=off aist auf dem Server, dann ist das so und dann funktionieren die Sessions auch anders.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo Tom!
hast Du schon mal ein ganz normale Post von einem Formular durchgeführt?
Wo stehen denn da die Variablen?
Wenn du ein Feld mit Namen "hallo" hast, kommt das dann beim Post-Empfänger in $hallo oder in $_POST["hallo"] an?
Zitat aus dem Ausgabgspoting:
"auf main.php wird die Variable noch ausgegeben, aber das geht
ja ohne sessions, auf main2.php dann nicht mehr."
Daher versteh ich nicht das es fehlschlägt. Meines Wissens werden die Session-Variablen direkt bereitgestellt(da register-globals=on), auch in neueren Versionen von PHP. Und da anscheinend keine Fehlermeldung kommt wird der Session-Support wohl aktiviert sein. Wie ich das sehe müßte es so wie es da steht funktionieren, vielleicht stimmt was mit session.cookie/session.trans-SID nicht, das die session-id nicht übergeben wird. Man kann viele Sachen überprüfen, z.B.
print_r($_SESSION);
print_r($_COCKIES);
print_r($_GET);
print_r(session_id());
...
Dann sollte er mal nachgucken was in phpinfo() bzgl. Session steht, vor allem hinter
Session Support
session.use_cookies
session.use_trans_sid
und auch welche PHP-Version vorliegt wäre nicht uninteressant.
Außerdem würde ich am Anfang den eigenen session_savs_path mal weglassen, oder änderst Du den aus einem bestimmten Grund?
Ich würde dringend empfehlen Sessions wie unter folgendem Link zu verwenden: http://php-faq.de/q/q-sessions-wie.html
Ich würde mal die Beispiele von da 1:1 übernehmen zum ausprobieren.
Viele Grüße
Andreas
PS: Ich schreibe bis heute fast jedesmal das Wort "cookie" falsch, keine Ahnung weiso, ich denke immer es heißt cockie ;-)
Hi Andreas,
hast Du schon mal ein ganz normale Post von einem Formular durchgeführt?
Wo stehen denn da die Variablen?
Wenn du ein Feld mit Namen "hallo" hast, kommt das dann beim Post-Empfänger in $hallo oder in $_POST["hallo"] an?
Zitat aus dem Ausgabgspoting:
"auf main.php wird die Variable noch ausgegeben, aber das geht
ja ohne sessions, auf main2.php dann nicht mehr."
Ja, darum sollte er ja testen, ob register_globals=off ist. Das bekommt er entweder raus, wenn er
<?PHP #### Alle Variablen anzeigen - info.php ####
phpinfo();
?>
dieses Script mal hochlädt und startet und dann fleissig sucht oder indem er
<?PHP #### Get testen - show_get.php ####
echo "<pre>";
print_r($HTTP_GET_VARS);
echo "</pre>";
echo "Name: $name <br />";
echo "Nachname: $nachname <br />";
?>
dieses script hochlädt und mal die url aufruft:
http://........../show_get.php?name=willi&namname=Wunder
Dann müssten ja die beiden variablen
Array
(
[name] => willi
[nachname] => Wunder
)
so angezeigt werden.
Wenn hingegen
Name: Willi
Nachname: Wunder
auf dem Bildschirm steht, dann müsste auch seine Session so funktionieren wie vorgesehen.
Daher versteh ich nicht das es fehlschlägt. Meines Wissens werden die Session-Variablen direkt bereitgestellt(da register-globals=on),
Aber auch nur dann. Darum ging es ja.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hi Tom!
Das er POST verwendet kann man aus dem Forumlar in index.php entnehmen. Dass register-globals=on sind kann man main.php entnehmen, da die Variablen ohne $HTTP_POST_VARS oder $_POST wohl ausgegeben werden.
Grüße
Andreas
Bin ziemlich neu in Sachen PHP...
hast Du schon mal ein ganz normale Post von einem Formular durchgeführt?
Anstatt GET POST nehmen?
Wo stehen denn da die Variablen?
Wenn du ein Feld mit Namen "hallo" hast, kommt das dann beim Post-Empfänger in $hallo oder in $_POST["hallo"] an?
??? Heisst dann die Variable anders?
Wenn register_globals=off aist auf dem Server, dann ist das so und dann funktionieren die Sessions auch anders.
Kann ich das testen/herausfinden ?
danke, mfg