2017-02-05 3 views
-1

Ich brauche Hilfe herauszufinden, warum ich zwei Einträge in meine Datenbank mit dem folgenden Code erhalten. Zu diesem Zeitpunkt wird der vollständige Datensatz und ein leerer Datensatz in die Datenbank eingegeben. Nicht sicher warum. Kann mir jemand in die richtige Richtung zeigen, wo ich falsch liege? Vielen Dank.PHP Post Echo Zwei Sql Einträge

Form und PHP-Code

<form method="post" action="cu.php"> 

    <input type="text" name="name" value size="35" 
      placeholder="Name">&nbsp&nbsp 
    <input type="text" name="email" value size="35" placeholder="Email"> 
    <br><br> 
    <select name="dropdown"> 
     <option value="0">Comment Type</option> 
     <option value="A">Accounting</option> 
     <option value="FAQ">FAQ</option> 
     <option value="GQ">General Question</option> 
     <option value="TS">Technical Support</option> 
    </select> 
    <br><br> 

    <textarea name="comments" rows="10" cols="60" style"border: 3px solid #555" 
    placeholder="Comments"></textarea> 
    <br><br> 

    <input type="submit" value="Submit" id="btn"> 
    <input type="reset" value="Reset" id="btn"> 

</form> 
</one> 
</div> 

<?php 
if ($_POST) { 

    $name = $_POST['name']; 
    echo "User Has submitted the form and entered this name : <b>$name</b>"; 
    echo "<br>You can use the following form again to enter a new name."; 
} 

$con = mysql_connect("mysql", "username", "pswd"); 

if (!$con) { 
    die('Could not connect: ' . mysql_error()); 
} 

/* Prevent duplicate submissions */ 
if (isset($_COOKIE['FormSubmitted'])) { 
    show_error('You may only submit this form once per session!'); 
} 

mysql_select_db("communication", $con); 

$sql = "INSERT INTO contact (name, email, cusno, dropdown, comments) 

     VALUES 

     ('$_POST[name]', '$_POST[email]', '$_POST[cusno]', '$_POST[dropdown]',    
     '$_POST[comments]')"; 

if (!mysql_query($sql, $con)) { 
    die('Error: ' . mysql_error()); 
} 

mysql_close($con); 
+1

ausgeführt werden, weil jedes Mal Ihre Seite geladen - mysql Abfrage ausgeführt wird. –

+0

Hinweis: Dies ist keine Live-oder Go Live-Site, oder? –

Antwort

3

Das liegt daran, dass jedes Mal die Seite zu laden, php SQL-Insert-Code ausgeführt wird. Dies geschieht, weil Sie nicht überprüfen, ob das Formular übergeben wurde, und führen Sie dann die SQL-Abfrage aus.

wie folgt tun:

hinzufügen Name Ihre Submit-Button:

<input type="submit" value="Submit" id="btn" name="submit"> 

dann in php, wickeln Sie das SQL einfügen in if-Anweisung

// check if submit button is POST, then run query 
if(isset($_POST['submit'])) 
{ 
    $sql = "INSERT INTO contact (name, email, cusno, dropdown, comments) 

     VALUES 

     ('$_POST[name]', '$_POST[email]', '$_POST[cusno]', '$_POST[dropdown]',    
     '$_POST[comments]')"; 

    if (!mysql_query($sql, $con)) { 
     die('Error: ' . mysql_error()); 
    } 
} 
-1

aktualisieren Diese Linien

if (!mysql_query($sql, $con)) { 
die('Error: ' . mysql_error()); 
} 

bis

if (!empty($_POST) && !mysql_query($sql, $con)) { 
die('Error: ' . mysql_error()); 
} 

Auch nehme ich an, dass Sie Browser Favicon-Datei anfordert und die vorderen kann der Code zweimal