Problem mit online-Formular (php)

vom 22.05.2008, 20:05 Uhr

Hallo!

Ich habe ein Problem mit einem online-Formular. Hier erstmal der Quellcode:

Code: Alles auswählen
<form action=<?php if ($kID!="") {echo "new.php";} else {echo $PHP_SELF;}?> method="post">
Bitte gib deine User-ID ein: <input type="text" name="kID" value=""><br>
<input type="checkbox" name="PW" Value="pass"> checken?<br>
<input type="submit" name="go">
</form>
Ich will mit dem Formular eigentlich erreichen, dass die Seite new.php nur aufgerufen wird, wenn in dem Feld kID etwas eingetragen ist und auf den Button geklickt wird. Ist das Feld leer, soll nichts passieren.
Leider klappt das aber nicht, da bei drücken des Buttons immer versucht wird die folgende Seite aufzurufen:
<Teil wie bei wie formular>method=%22post%22?kID=&go=Anfrage+abschicken

Was mache ich denn da falsch? Oder kennt ihr evtl. eine bessere Möglichkeit, wie man das realisieren kann?
Ich hatte auch schon
Code: Alles auswählen
<form action=<?php ($kID!="") ? echo "new.php" : echo "" ?> method="post">
probiert, aber das klappt genau so wenig. Bitte helft mir.

Danke im Voraus.
Gruß

Benutzeravatar

» magic_eagle » Beiträge: 102 » Talkpoints: 0,89 » Auszeichnung für 100 Beiträge



Code: Alles auswählen
<?php if(isset($_POST['kID'])) {
$page = "new.php";
} else {
$page = $_SERVER['PHP_SELF'];
}
?>
<form action="<?php echo $page; ?>">


So oder so ähnlich würde ich es machen.
Allein schon auf Grund der Übersicht.

Mfg sim-value

» Sim-value » Beiträge: 181 » Talkpoints: 3,50 » Auszeichnung für 100 Beiträge


Leider klappt das auf deine Weise nicht, da ja dort überprüft wird, ob per POST an dieses Dokument kID übergeben wurde. Du hast mir trotzdem geholfen, ich hatte nämlich die Anführungszeichen vor bzw. nach der PHP-Anweisung vergessen. Der Code jetzt lautet

Code: Alles auswählen
<form action="<?php if ($kID!="") {echo "new.php";} else {echo $PHP_SELF;}?>"] method="post">

Problem jetzt, es wird immer die Seite selber aufgerufen. Was kann den nun verkehrt sein?

Benutzeravatar

» magic_eagle » Beiträge: 102 » Talkpoints: 0,89 » Auszeichnung für 100 Beiträge



magic_eagle hat geschrieben:
Code: Alles auswählen
<form action="<?php if ($kID!="") {echo "new.php";} else {echo $PHP_SELF;}?>"] method="post">


Da steht jetzt:
Wenn
kID = Leer dann
new.php aufrufen
sonst
nichts tun
ende

In deinem Eingangspost steht aber, dass du wenn etwas reingeschrieben wird in dein kID Feld, so soll dann new.php aufgerufen werden. Du hast da jetzt nur ein Dreher drinne, aktuell müsste wenn du nichts eingibst die new.php aufgerufen werden.

» Cekic » Beiträge: » Talkpoints: Gesperrt »



Cekic hat geschrieben:Da steht jetzt:
Wenn
kID = Leer dann
new.php aufrufen
sonst
nichts tun
ende

In deinem Eingangspost steht aber, dass du wenn etwas reingeschrieben wird in dein kID Feld, so soll dann new.php aufgerufen werden. Du hast da jetzt nur ein Dreher drinne, aktuell müsste wenn du nichts eingibst die new.php aufgerufen werden.


Ich will ja nichts sagen, aber da steht
Wenn kID != Leer ...
Das heißt, wenn kID nicht leer ist, soll new.php aufgerufen werden. So soll es ja auch sein, nur wenn etwas eingetragen wurde, soll auf new.php weitergeleitet werden. Leider klappt das aber trotzdem nicht. new.php wird nie aufgerufen. Egal, ob ich das Feld leer lasse, oder etwas rein schreibe, man landet immer auf der gleichen Seite, also muss da noch irgend etwas falsch sein. Bitte helft mir.

Benutzeravatar

» magic_eagle » Beiträge: 102 » Talkpoints: 0,89 » Auszeichnung für 100 Beiträge


Von woher kommt deine Variable kID ?

Normalerweise müsste es $_POST['kID'] lauten.

Mfg sim-value

» Sim-value » Beiträge: 181 » Talkpoints: 3,50 » Auszeichnung für 100 Beiträge


Die Variable kID soll eigentlich die Variable sein, welche den Wert des entsprechenden Formularfeldes hat. Und je nachdem, ob das Feld ausgefüllt ist, oder nicht soll bei drücken des Buttons eine andere Aktion ausgeführt werden.
Wenn ich das richtig verstanden habe, dachtest du, dass kID an die Seite mit dem Formular übergeben wird, oder?
Tut mir Leid, wenn wir uns da missverstanden haben.

Gruß
magic_eagle

Benutzeravatar

» magic_eagle » Beiträge: 102 » Talkpoints: 0,89 » Auszeichnung für 100 Beiträge



Die Variable kID soll eigentlich die Variable sein, welche den Wert des entsprechenden Formularfeldes hat


Hast du das vorher im Code definiert ?#
Wenn nein liegt da der Fehler.

Mfg sim-value

» Sim-value » Beiträge: 181 » Talkpoints: 3,50 » Auszeichnung für 100 Beiträge


Dann muss ich wohl gestehen, dass ich das nicht vorher extra im Quelltext angegeben habe, da ich irgendwo gelesen hatte, dass der Name eines Formularfeldes gleich einer Variablen mit dem gleichen Namen zugeordnet wird. Das ist wohl nicht so?

Wie muss ich das denn vorher definieren?

Benutzeravatar

» magic_eagle » Beiträge: 102 » Talkpoints: 0,89 » Auszeichnung für 100 Beiträge


Das stimmt allerdings nicht.
Du kannst entweder direkt $_POST['kID'] schreiben oder es so definieren.

Code: Alles auswählen
$kID = $_POST['kID'];

Dann sollte es gehen.

Mfg sim-value

» Sim-value » Beiträge: 181 » Talkpoints: 3,50 » Auszeichnung für 100 Beiträge


Ähnliche Themen

Weitere interessante Themen

^