Unbekannte Variable bei Übergaben
Thomas Beck
- php
0 the-FoX0 Tom
0 Uschi Renziehausen0 Thomas Luethi
Hallo zusammen,
ich habe in PHP folgendes Problem:
Ich definieren eine Variable $variable. Diese wird bei einem erfolgreichen Login auf 1 gesetzt.
in meinem PHP-Teil des Dokuments ist folgende Abfrage enthelten:
<?php
if($variable==1)
{
if($_POST["send"] == "1")
{
include("Warenkorb.php");
}
else
{
if($_POST["send"] == "3")
{
include("mail.php");
}
else
{
include("getr_tab.php");
}
}
}
else echo "schlecht";
?>
Es soll also überhaupt erst die Verarbeitung geschehen, wenn $variable auf 1 steht. Beim ersten Programmdurchlauf funktioniert dies auch. Nur wenn ich in getr_tab.php (dieser Zweig wird als erstes durchlaufen) "send" auf 1 setze und wieder auf die Startseite verweise ist $variable nun unbekannt, ergo läuft er immer in den else-Zweig rein.
Ich tippe es liegt an der fehlenden Übergabe von $variable zurück an die Startseite, weiß aber auch nicht wie ich diese bewerkstelligen soll und wäre über Tips sehr dankbar!
Grüße,
Thomas
wie sieht denn getr_tab.php aus ? was passiert da genau ? Wie verweist Du wieder auf die Startseite ?
Eine Variable ist nur solange gesetzt, wie das Script aktiv ist.
Hallo, <-- heute mal nur ne kurze Begrüßung
wie sieht denn getr_tab.php aus ? was passiert da genau ? Wie verweist Du wieder auf die Startseite ?
Eine Variable ist nur solange gesetzt, wie das Script aktiv ist.
... oder man sie "durchschleppt" von Request-Response zu Request-Response...
Dazu eigenen sich ein als hidden_var übergebenes Array aller gesammelten Werte. Das hat(!) natürlich nur Sinn, wenn es sich nicht um manipulationsgefährdete Daten / Verfahren handelt.
Sonst hilft nur eine Session (siehe U.R.)
Grüße
<-- das ist jetzt eine kurze Schlußformel
Tom
Hallo,
du könntest das ja über eine Session-Variable regeln, die angelegt wird, wenn dein Userlein sich erfolgreich eingelogged hat.
if(alles in ordnung bei login) {
$_SESSION['variable'] = 1;
}
und statt if($variable == 1) machst du halt
if($_SESSION['variable'] == 1) { mach was }
Ich hoffe, das hilft Dir.
Liebe Grüße, Uschi
Hallo (auch) Thomas,
Ich tippe es liegt an der fehlenden Übergabe von $variable zurück an die Startseite, weiß aber auch nicht wie ich diese bewerkstelligen soll und wäre über Tips sehr dankbar!
Wenn Du "Ping-Pong" spielst (Formular - Server - Formular - Server), musst Du die Variable
z.B. in ein Hidden-Feld im Formular schreiben (wo es aber manipuliert werden kann!), oder
aber Du schreibst die in eine Session-Variable auf dem Server und gibst nur die Session-ID
als Hidden-Variable im Formular weiter.
Ein paar Seiten aus der d.c.l.p-FAQ:
Variablen und Formulare
http://www.dclp-faq.de/ch/ch-webvariablen.html
Das "Affenformular" - Formularverarbeitungen in Normalform
http://www.dclp-faq.de/q/q-stil-normalform.html
Sessions
http://www.dclp-faq.de/ch/ch-version4_session.html
Was sind Sessions und warum sind sie nützlich?
http://www.dclp-faq.de/q/q-sessions-zweck.html
Gruesse,
Thomas