Ich habe ein Formular und ich nicht clientseitige Validierung als required
Attribut. Ich mache die Validierung auf der Serverseite.Redirect und POST zur gleichen Zeit
lyrics/add.php
<form action="../scripts/lyrics/submit_lyrics.php" id="lyricsForm" method="post" autocomplete="off" enctype="multipart/form-data">
Formulardaten in einer separaten PHP-Datei verarbeitet wird. Abrufen und Validierung der Formulardaten auf folgende Weise:
Skripte/Texte/submit_lyrics.php
$form_data = new FormData(["artist", "album", "song", "year", "track_no", "lyrics"], "sssiis");
$form_data->validate();
Was die validate
Methode tut, ist
public function validate() {
$valid = $this->check_form_data($fields);
$fields = implode(",", $fields);
if (!$valid) {
header("location: ".BASE."lyrics/add?status=error&problem=input&specifics=$fields");
exit;
}
}
Überprüfen Sie die Daten Form und umleiten die Seite ( scripts/lyrics/submit_lyrics.php) zur Formularseite (lyrics/add.php) mit den Informationen auf Validierung (wenn es fehlgeschlagen ist). Dann gebe ich eine Fehlermeldung aus, die anzeigt, dass etwas mit der Eingabe unter Verwendung der GET
Methode falsch ist.
Ich bin gespannt, ob ich dies mit POST
tun kann. Ich müsste diese Linie
header("location: ".BASE."lyrics/add?status=error&problem=input&specifics=$fields");
ändern machen es die Seite zu BASE."lyrics/add"
umleiten und die Validierungsinformationen senden zu dieser Seite mit POST
. Also würde ich immer noch den Validierungsfehler ausgeben können, aber POST
anstelle von GET
verwenden.
Ist das möglich?
Werte in einer Sitzung speichern. –
Kann Curl für diese –
verwenden, gibt es http 307, die mit dem gleichen 'Verb' umgeleitet wird, um die ursprüngliche URL aufzurufen. also wenn du auf "foo.php" poste und es 307's auf "bar.php" schreibst, bekommt der browser einen post in bar.php, kein get. –