madmax00 Geschrieben 6. August 2006 Teilen Geschrieben 6. August 2006 Hallo Leute, ich habe eine "große", mindestens für mich, Problem, die ich schon seit paar Tagen versuche zu lösen und zwar: auf meine Seite habe ich ein Formular erstellt, wo man seinen Daten einträgt. Wenn auf Button "Speichern" geklickt wird, werden die Daten nach Gültigkeit geprüft. Wenn alle Kriterien stiemen, werden die in ein MySQL - Datenbank gespeichert. Jetzt ist aber die Frage. Ich möchte, wenn auf Button "Speichern" geklickt wird, sollen die Daten in Datenbank gespeichert werden und eine andere Seite aufgerufen sein soll, wo ein Bestätigung steht, dass die Daten gespeichert sind. Ich habe schon mit onclick versucht , aber wenn type="submit" steht, wird neu Site nicht geöffnet. <form action="table.php" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="2000000"> <input type="button" onclick="javascript:window.location.href='MyRusTel/test.php'" value="Speichern" /> </form> [/PHP] und wenn ich ohne [b]onclick[/b] , aber bei [b]form action[/b] Seite habe die ich aufrufen möchte, werden die Eingaben nicht nach Gültigkeit geprüft, sonst wird neu Seite direkt aufgemacht. wie kann ich meine Problem lösen? MfG max Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 7. August 2006 Teilen Geschrieben 7. August 2006 Mittels href werden keine Daten übergeben. Wenn schon eine Aktion bei onclick ausgeführt wird, dann muss das die submit-Funktion deines Formulars sein. Dann werden auch die Daten übermittelt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
madmax00 Geschrieben 7. August 2006 Autor Teilen Geschrieben 7. August 2006 Das ist kleine Ausschnit aus meine code. Ich macho doch auch mit submit und Verweis auf andere Site. <body > <form action="Registrierung.php" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="2000000"> Bitte fühlen Sie alle mit * gekennzeichnete Felder ein <tr> <td><br>Name*<br> <span id="print_rot"> <?php // Wenn der Button speichern gedrueckt wurde if (isset($_POST['btnSpeichern'])) { if ($_POST['Name'] == ""){ print ('Bitte geben Sie einen Namen ein'); } } ?> </span></td> <td> <input type="text" name="Name" size="30" value="<? echo $_POST['Name']; ?>"></td> </tr> <tr> <td>Beschreibung </td> <td><textarea name="Beschreibung" cols="32" rows="8" ><? echo $_POST['Beschreibung']; ?></textarea></td> </tr> <tr> <td>Strasse*<br> <span id="print_rot"> <?php // Wenn der Button speichern gedrueckt wurde if (isset($_POST['btnSpeichern'])) { if ($_POST['Strasse'] == ""){ print ('Bitte geben Sie eine Strasse ein'); } } ?></span></td> <td><input type="text" name="Strasse" size="30" value="<? echo $_POST['Strasse']; ?>"></td> </tr> <tr> <td>PLZ*<br> <span id="print_rot"> <?php // Wenn der Button speichern gedrueckt wurde if (isset($_POST['btnSpeichern'])) { if ($_POST['PLZ'] == ""){ print ('Bitte geben Sie gültige Postleitzahl ein'); } if($_POST['PLZ'] != "" && !eregi("^[0-9]{5,5}", $_POST['PLZ'])){ echo ("ungültige PLZ"); } } ?></span></td> <td><input type="text" name="PLZ" size="30" value="<? echo $_POST['PLZ']; ?>"></td> </tr> <tr> <td>Ort*<br> <span id="print_rot"> <?php // Wenn der Button speichern gedrueckt wurde if (isset($_POST['btnSpeichern'])) { if ($_POST['Ort'] == ""){ print ('Bitte geben Sie einen Ort ein'); } } ?></span></td> <td><input type="text" name="Ort" size="30" value="<? echo $_POST['Ort']; ?>"></td> </tr> <tr> <td colspan="2"><br><br><input type="submit" value="speichern" size="30" name="btnSpeichern" onClick="javascript:window.location.href='MyRusTel/test.php'"> <input type="reset" value="Löschen" name="btnLoeschen" ></td> </tr> <?php // Wenn der Button speichern gedrueckt wurde if (isset($_POST['btnSpeichern'])) { if ($_POST['Name'] == ""){ exit; } elseif ($_POST['Strasse'] == ""){ exit; } elseif ($_POST['PLZ'] == ""){ exit; } elseif(!eregi("^[0-9]{5,5}", $_POST['PLZ'])){ exit; } elseif ($_POST['Ort'] == ""){ exit; } $insert_sql= "INSERT INTO kundendaten SET"; if(!empty($_POST['Name'])) { $insert_sql.=" Name='".mysql_real_escape_string($_POST['Name'])."'" ; //$insert_sql.="' Name='".htmlentities($_POST['Name'], ENT_NOQUOTES); } if(!empty($_POST['Beschreibung'])) { $insert_sql.=", Beschreibung='".mysql_real_escape_string($_REQUEST['Beschreibung'])."'"; //$insert_sql.="', Beschreibung='".htmlentities($_REQUEST['Beschreibung'], ENT_NOQUOTES); } if(!empty($_POST['Strasse'])) { $insert_sql.=", Strasse='".mysql_real_escape_string($_REQUEST['Strasse'])."'"; //$insert_sql.="', Strasse='".htmlentities($_REQUEST['Strasse'], ENT_NOQUOTES); } if(!empty($_POST['PLZ'])) { $insert_sql.=", PLZ='".mysql_real_escape_string($_REQUEST['PLZ'])."'"; //$insert_sql.="', PLZ='".htmlentities($_REQUEST['PLZ'], ENT_NOQUOTES); } if(!empty($_POST['Ort'])) { $insert_sql.=", Ort='".mysql_real_escape_string($_REQUEST['Ort'])."'"; //$insert_sql.="', Ort='".htmlentities($_REQUEST['Ort'], ENT_NOQUOTES); } ?> [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
madmax00 Geschrieben 7. August 2006 Autor Teilen Geschrieben 7. August 2006 Das ist kleine Ausschnit aus meine code. Ich mache doch auch mit submit und Verweis auf andere Site. <body > <form action="Registrierung.php" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="2000000"> Bitte fühlen Sie alle mit * gekennzeichnete Felder ein <tr> <td><br>Name*<br> <span id="print_rot"> <?php // Wenn der Button speichern gedrueckt wurde if (isset($_POST['btnSpeichern'])) { if ($_POST['Name'] == ""){ print ('Bitte geben Sie einen Namen ein'); } } ?> </span></td> <td> <input type="text" name="Name" size="30" value="<? echo $_POST['Name']; ?>"></td> </tr> <tr> <td>Beschreibung </td> <td><textarea name="Beschreibung" cols="32" rows="8" ><? echo $_POST['Beschreibung']; ?></textarea></td> </tr> <tr> <td>Strasse*<br> <span id="print_rot"> <?php // Wenn der Button speichern gedrueckt wurde if (isset($_POST['btnSpeichern'])) { if ($_POST['Strasse'] == ""){ print ('Bitte geben Sie eine Strasse ein'); } } ?></span></td> <td><input type="text" name="Strasse" size="30" value="<? echo $_POST['Strasse']; ?>"></td> </tr> <tr> <td>PLZ*<br> <span id="print_rot"> <?php // Wenn der Button speichern gedrueckt wurde if (isset($_POST['btnSpeichern'])) { if ($_POST['PLZ'] == ""){ print ('Bitte geben Sie gültige Postleitzahl ein'); } if($_POST['PLZ'] != "" && !eregi("^[0-9]{5,5}", $_POST['PLZ'])){ echo ("ungültige PLZ"); } } ?></span></td> <td><input type="text" name="PLZ" size="30" value="<? echo $_POST['PLZ']; ?>"></td> </tr> <tr> <td>Ort*<br> <span id="print_rot"> <?php // Wenn der Button speichern gedrueckt wurde if (isset($_POST['btnSpeichern'])) { if ($_POST['Ort'] == ""){ print ('Bitte geben Sie einen Ort ein'); } } ?></span></td> <td><input type="text" name="Ort" size="30" value="<? echo $_POST['Ort']; ?>"></td> </tr> <tr> <td colspan="2"><br><br><input type="submit" value="speichern" size="30" name="btnSpeichern" onClick="javascript:window.location.href='MyRusTel/test.php'"> <input type="reset" value="Löschen" name="btnLoeschen" ></td> </tr> <?php // Wenn der Button speichern gedrueckt wurde if (isset($_POST['btnSpeichern'])) { if ($_POST['Name'] == ""){ exit; } elseif ($_POST['Strasse'] == ""){ exit; } elseif ($_POST['PLZ'] == ""){ exit; } elseif(!eregi("^[0-9]{5,5}", $_POST['PLZ'])){ exit; } elseif ($_POST['Ort'] == ""){ exit; } $insert_sql= "INSERT INTO kundendaten SET"; if(!empty($_POST['Name'])) { $insert_sql.=" Name='".mysql_real_escape_string($_POST['Name'])."'" ; //$insert_sql.="' Name='".htmlentities($_POST['Name'], ENT_NOQUOTES); } if(!empty($_POST['Beschreibung'])) { $insert_sql.=", Beschreibung='".mysql_real_escape_string($_REQUEST['Beschreibung'])."'"; //$insert_sql.="', Beschreibung='".htmlentities($_REQUEST['Beschreibung'], ENT_NOQUOTES); } if(!empty($_POST['Strasse'])) { $insert_sql.=", Strasse='".mysql_real_escape_string($_REQUEST['Strasse'])."'"; //$insert_sql.="', Strasse='".htmlentities($_REQUEST['Strasse'], ENT_NOQUOTES); } if(!empty($_POST['PLZ'])) { $insert_sql.=", PLZ='".mysql_real_escape_string($_REQUEST['PLZ'])."'"; //$insert_sql.="', PLZ='".htmlentities($_REQUEST['PLZ'], ENT_NOQUOTES); } if(!empty($_POST['Ort'])) { $insert_sql.=", Ort='".mysql_real_escape_string($_REQUEST['Ort'])."'"; //$insert_sql.="', Ort='".htmlentities($_REQUEST['Ort'], ENT_NOQUOTES); } ?> [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 7. August 2006 Teilen Geschrieben 7. August 2006 PHP? function checkData() { // überprüfe die übergebenen Daten } if (!checkData()) { // z.B. Meldung, daß Daten fehlerhaft sind } else { //wegspeichern writeDataToDB(); // auf Bestätigungsseite leiten header("location:daten_okay.php"); }[/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
madmax00 Geschrieben 7. August 2006 Autor Teilen Geschrieben 7. August 2006 wenn ich jetzt am ende denn quell-code header("location:daten_okay.php"); eintrage, kommt ein fehler. Warning: Cannot modify header information - headers already sent by (output started at D:\program files\xampp\htdocs\MyRusTel\Registrierung_rus.php:26) in D:\program files\xampp\htdocs\MyRusTel\Registrierung_rus.php on line 412 MfG max Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 7. August 2006 Teilen Geschrieben 7. August 2006 Sorry, ich vergaß zu erwähnen. Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. http://de2.php.net/manual/en/function.header.php Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
madmax00 Geschrieben 7. August 2006 Autor Teilen Geschrieben 7. August 2006 Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. verstehe nicht so ganz. noch ein versuch header("location:http://localhost/danke.php"); header("location:http://localhost/MyRusTel/Registrierung.php", false); [/PHP] aber kommt wieder gleiche fehler MfG max Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 7. August 2006 Teilen Geschrieben 7. August 2006 Du machst deine Überprüfung einfach mit Javascript im onsubmit. Die Funktion dort liefert False zurück wenn die Daten nciht gültig sind und der Browser führt dann kein Submit aus. In deinem PHP-Skript speichert du die Daten und machst als erste Ausgabe header("location: zielseite.php"); und nur 1 mal. Damit wird der Browser ja angewiesen die zielseite.php zu laden. Wie soll er denn mt 2 location Anweisungen direkt nacheinander umgehen? EDIT: Das ist kleine Ausschnit aus meine code. Ich mache doch auch mit submit und Verweis auf andere Site. Da machst du ja schon etliche Ausgaben bevor überhaupt PHP Code abgearbeitet wird. Nochmal: Header-Anweisungen müssen die ersten Ausgaben der Seite sein! HTML (und auch nur eine Leerzeile) vor dem PHP-Code wird ausgegeben. Und nach einer Ausgabe kann man keinen Header mehr verändern, weil der da schon längst weg ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
madmax00 Geschrieben 13. August 2006 Autor Teilen Geschrieben 13. August 2006 danke an alle, ich habe die Sache gelösst. MfG max Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.