[PHP] register.php?do=register wie?

-=Renegade=-

Lt. Junior Grade
Registriert
Nov. 2006
Beiträge
434
Hallo!

Also ich arbeite gerade an einem Anmeldeformular, wobei ich mich ein wenig an dem von vBulletin hier im Forum inspirieren hab lassen.

Ich hab auch mal so die erste Seite mit den Regeln zum akzeptieren. (Möglicherweise muss man sich ausloggen, um die Seite korrekt anzeigen zu lassen)

Wenn man nun auf Registrieren (Submit) klickt, ändert sich die URL in register.php?do=register und je nachdem, ob man ein Häckchen oder nicht gesetzt hat, öffnet sich eine neue Seite mit einer Fehlermeldung oder der eigentlichen Registriermöglichkeit.

Wie kann ich das realisieren, ohne ein neues Dokument zu erstellen?


so far
thx & mfg
 
Du musst die Seite in PHP programmieren und Abfragen, welchen Wert die Variable $_GET["do"] hat. Je nachdem zeigst du dann etwas anderes an.
 
Die Vorgehensweise ist falsch, d.h. du zeigst nicht eine Fehlermeldung oder die Registriermöglichkeit, sondern die Seite mit den Regeln ggf. mit einer Fehlermeldung oder die Registriermöglichkeit, d.h. die Fehlermeldung ist Teil des jeweiligen Formulars und erscheint nur dann, wenn tatsächlich ein Fehler vorliegt. Das hat nicht nur den Vorteil, daß sich zur Not alles innerhalb des jeweiligen Formulars abhandeln läßt (Eingabe, Validierung, Fehlermeldung), sondern der Benutzer muß nicht erst zurück navigieren, sondern kann die Fehler umgehend beseitigen.

greetings, Keita
 
AoE-Maniac schrieb:
Du musst die Seite in PHP programmieren und Abfragen, welchen Wert die Variable $_GET["do"] hat. Je nachdem zeigst du dann etwas anderes an.

Ja, die Seite ist schon PHP.

Ich hab mich mehr gefragt, wie man eine neue Seite erstellen kann.

<form action='register.php?do=register' method='post'>

ruft dann die Seite register.php?do=register, die so aussieht wie die Seite register.php.

Genügt es dann, einfach am unteren Ende der Seite (oder am Anfang?) die Variable abzufragen und dann die Seite zu programmieren?

@Keita: Du meinst eine JavaScript Funktion über OnSubmit() aufzurufen, welche die Eingaben überprüft?

so far
thx & mfg
 
Nein, das geschieht mittels PHP:
was angezeigt wird, entscheidet in diesem Fall der GET-Parameter do, d.h. wenn bspw. $_GET['do'] den Wert 'register' hat, wird das Anmeldeformular angezeigt, wenn er nicht existiert oder einen anderen Wert hat, wird die Seite zur Akzeptanz der Regeln angezeigt:

PHP:
// vereinfachter Code
$error = false;
$do = isset($_GET['do']) ? $_GET['do'] : 'rules';
if ($do == 'register' && !isset($_GET['agree'])) {
  $error = true;
  $do    = 'rules';
}
include $do . '.php';
Du prüfst also zunächst, ob der Parameter do gesetzt ist und weist der Variable $do seinen Wert bzw. 'rules' zu. Wenn do den Wert 'register' hat und kein Häkchen gesetzt wurde, sprich der Parameter agree nicht existiert, überschreibst du den Wert von $do mit dem Wert 'rules', damit die Regel-Seite angezeigt wird. Zusätzlich wird die Variable $error auf true gesetzt, so daß du im Formular 'rules.php' eine Fehlermeldung anzeigen kannst:
PHP:
// rules.php
if (!empty($error)) {
  // Fehlermeldung ausgeben
}
// Regeln anzeigen

greetings, Keita
 
Zurück
Oben