Automatisches Aktualisieren verhindern

CreativPur

Erfahrenes Mitglied
Hi,
Ich habe eine Seite mit einem Formular.
In diesem Formular werden Daten einer PDO-Tabelle geändert, bzw. aktualisiert.
Mein Problem besteht darin, dass schon beim Aufrufen dieser Seite eine Aktualisierung stattfindet, indem die im Formular stehenden Inputfelder logischer Weise noch leer sind und somit in der Tabelle die Daten gelöscht werden.
Das sollte aber nicht so sein, sondern nur im Fall, dass der Submitbutton geklickt wird.

Was muss ich dabei beachten ?
PHP:
$showFormular = true; 

if($showFormular) {
 
$firma_an_geantwortet = $_POST['firma_an_geantwortet'];
$firma_an_antwort = $_POST['firma_an_antwort'];
$firma_an_sonstiges = $_POST['firma_an_sonstiges'];
$firma_an_sonstiges2 = $_POST['firma_an_sonstiges2'];
$bewerbungstermin1 = $_POST['bewerbungstermin1'];
$bewerbungstermin2 = $_POST['bewerbungstermin2'];
$firma_an_anrede = $_POST['firma_an_anrede'];
$firma_an_vorname = $_POST['firma_an_vorname'];
$firma_an_nachname = $_POST['firma_an_nachname'];
 
 
$statement = $pdo->prepare("UPDATE users_email_versenden SET firma_an_geantwortet = :firma_an_geantwortet, firma_an_antwort = :firma_an_antwort, firma_an_sonstiges = :firma_an_sonstiges, firma_an_sonstiges2 = :firma_an_sonstiges2, bewerbungstermin1 = :bewerbungstermin1, bewerbungstermin2 = :bewerbungstermin2, firma_an_anrede = :firma_an_anrede, firma_an_vorname = :firma_an_vorname, firma_an_nachname = :firma_an_nachname  WHERE bewerbungscode = :bewerbungscode");
$statement->execute(array('bewerbungscode' => htmlspecialchars($_GET['bewerbungscode']), 'firma_an_geantwortet' => $firma_an_geantwortet, 'firma_an_antwort' => $firma_an_antwort, 'firma_an_sonstiges' => $firma_an_sonstiges, 'firma_an_sonstiges2' => $firma_an_sonstiges2, 'bewerbungstermin1' => $bewerbungstermin1, 'bewerbungstermin2' => $bewerbungstermin2, 'firma_an_anrede' => $firma_an_anrede, 'firma_an_vorname' => $firma_an_vorname, 'firma_an_nachname' => $firma_an_nachname));

$datum_geantwortet = date("Y-m-d");
?>

PHP:
echo'
<form action="#" method="post">
                                <div style="display: '.(($user['firma_an_anrede'] === 'Sehr geehrte Damen und Herren') ? 'block' : 'none').'; margin-top:-25px; margin-left:-17px;">
                                    <div class="col-lg-4">
                                        <select class="form-control" name="firma_an_anrede">
                                          <option>Anrede</option>
                                          <option value="Frau">Frau</option>
                                          <option value="Herr">Herr</option>
                                        </select>
                                    </div>
                                    <div class="col-lg-4">
                                        <div class="form-group">
                                            <input type="text" name="firma_an_vorname" class="form-control" placeholder="Ihr Vorname">
                                        </div>
                                    </div>
                                    <div class="col-lg-4">
                                        <div class="form-group">
                                            <input type="text" name="firma_an_nachname" class="form-control" placeholder="Ihr Nachname">
                                        </div>
                                    </div>
                                   </div>
<input type="submit" id="danke_senden" value="Auf diese Bewerbung antworten" class="btn btn-success col-lg-5 col-xs-12" />
</form>
                                '

PHP:
 <?php
}
$pdo = null;//Ende von if($showFormular)
?>
 
Zuletzt bearbeitet:
Einmaleins von PHP mit Formularen. Ist eigentlich in fast jedem Beispiel mit Formularen drin.
Du musst prüfen ob danke_senden gesendet wurde.
 
OK.. Das habe ich nicht berücksichtigt..
Das stimmt.. Ich möchte ja einerseits die Daten mit submit in die Datenbank speichern und eine Weiterleitung zum Formmailer erzeugen.
Richtig ?

Boah...
Da muss ich bestimmt wieder so ne schwierige IF-Anweisung bezüglich der "danke_senden.php" einrichten ?
 
Ich habe es jetzt so geändert.
Dabei werden zwar die Daten nicht gelöscht, aber sie werden auch nicht aktualisiert wenn man auf den Submit.Button klickt.
PHP:
<?php
$showFormular = true; //Variable ob das Registrierungsformular anezeigt werden soll

if($showFormular) {   

if(isset($_POST['submit'])){
   
$firma_an_geantwortet = $_POST['firma_an_geantwortet'];
$firma_an_antwort = $_POST['firma_an_antwort'];
$firma_an_sonstiges = $_POST['firma_an_sonstiges'];
$firma_an_sonstiges2 = $_POST['firma_an_sonstiges2'];
$bewerbungstermin1 = $_POST['bewerbungstermin1'];
$bewerbungstermin2 = $_POST['bewerbungstermin2'];
$firma_an_anrede = $_POST['firma_an_anrede'];
$firma_an_vorname = $_POST['firma_an_vorname'];
$firma_an_nachname = $_POST['firma_an_nachname'];
    
    
$statement = $pdo->prepare("UPDATE users_email_versenden SET firma_an_geantwortet = :firma_an_geantwortet, firma_an_antwort = :firma_an_antwort, firma_an_sonstiges = :firma_an_sonstiges, firma_an_sonstiges2 = :firma_an_sonstiges2, bewerbungstermin1 = :bewerbungstermin1, bewerbungstermin2 = :bewerbungstermin2, firma_an_anrede = :firma_an_anrede, firma_an_vorname = :firma_an_vorname, firma_an_nachname = :firma_an_nachname  WHERE bewerbungscode = :bewerbungscode");
$statement->execute(array('bewerbungscode' => htmlspecialchars($_GET['bewerbungscode']), 'firma_an_geantwortet' => $firma_an_geantwortet, 'firma_an_antwort' => $firma_an_antwort, 'firma_an_sonstiges' => $firma_an_sonstiges, 'firma_an_sonstiges2' => $firma_an_sonstiges2, 'bewerbungstermin1' => $bewerbungstermin1, 'bewerbungstermin2' => $bewerbungstermin2, 'firma_an_anrede' => $firma_an_anrede, 'firma_an_vorname' => $firma_an_vorname, 'firma_an_nachname' => $firma_an_nachname));
}

$datum_geantwortet = date("Y-m-d");
?>
 
Deine Taste hatt noch keinen Name. Woher soll also PHP wissen welche Taste gedrückt wurde?
HTML:
<input type="submit" Name="submit"........ />
 
Ich habe jetzt wieder ein Formular, wo die Daten auch eingetragen werden.
Sowie ich aber in "action" eine Weiterleitung "danke.php" eingebe, werde ich zwar weitergeleitet, aber es wird nichts abgespeichert..

Gibt es dafür auch ein ZAUBER-Code ?
 
Hi,

wenn Dein Formular auf eine andere php-Datei verweist, muss der entsprechende php-code zur Validierung und für den execute auch in der Zieldatei liegen.
 
Zurück