Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Button fürs speichern und neu Site laden erstellen

Empfohlene Antworten

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

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.

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]

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]

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]

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

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

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.

danke an alle, ich habe die Sache gelösst.

MfG max

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.