2017-01-20 3 views
-2

Ich versuche, Daten von PHP aus einem HTML-Formular zu mysql zu senden, aber aus irgendeinem Grund wird es automatisch eingereicht, bevor ich sogar auf den Absenden-Button klicken. Ich habe die PHP und HTML-Quelle enthalten. Ich habe hier etwas zu schreiben, so dass ich schreiben kann, wie es mir erzählt, dort zu viel Code und nicht genug Details xDÜbermitteln von Daten an mysql

<?php 

    $link = mysqli_connect("localhost", "db", "pass", "table"); 


    if($link === false){ 
     die("ERROR: Could not connect. " . mysqli_connect_error()); 
    } 


$id = mysqli_real_escape_string($link, $_POST['id']); 
$game = mysqli_real_escape_string($link, $_POST['game']); 
$server = mysqli_real_escape_string($link, $_POST['server']); 
$datetimepicker1 = mysqli_real_escape_string($link, $_POST['datetimepicker1']); 
$et = mysqli_real_escape_string($link, $_POST['et']); 
$sc = mysqli_real_escape_string($link, $_POST['sc']); 
$ss = mysqli_real_escape_string($link, $_POST['ss']); 
$ec = mysqli_real_escape_string($link, $_POST['ec']); 
$es = mysqli_real_escape_string($link, $_POST['es']); 
$dn = mysqli_real_escape_string($link, $_POST['dn']); 


    $sql = "INSERT INTO events (id, game, server, datetimepicker1, et, sc, ss, ec, es, dn) VALUES ('$id', '$game', '$server', '$datetimepicker1', '$et', '$sc', '$ss', '$ec', '$es', '$dn')"; 
    if(mysqli_query($link, $sql)){ 
     echo "Records added successfully."; 
    } else{ 
     echo "ERROR: Could not able to execute $sql. " . mysqli_error($link); 
    } 


    mysqli_close($link); 
    ?> 

    <div class="form-group"> 
       <label class="col-md-4 control-label" for="game">Game</label> 
       <div class="col-md-4"> 
        <select id="game" name="game" class="form-control"> 
         <option value="ets2mp">ETS2MP</option> 
         <option value="atsmp">ATS2MP</option> 

        </select> 
       </div> 
      </div> 

      <div class="form-group"> 
       <label class="col-md-4 control-label" for="server">Server</label> 
       <div class="col-md-4"> 
        <select id="server" name="server" class="form-control"> 
         <option value="12">Hong Kong #1</option> 
        </select> 
       </div> 
      </div> 


      <div class="form-group"> 
       <label class="col-md-4 control-label" for="datetimepicker1">Date & Time</label> 
       <div class="col-md-4"> 
       <div class='input-group date' id='datetimepicker1'> 
         <input type='text' class="form-control" required="" /> 
         <span class="input-group-addon"> 
          <span class="glyphicon glyphicon-calendar"></span> 
         </span> 
       </div> 
      </div> 
     </div> 

      <div class="form-group"> 
       <label class="col-md-4 control-label" for="et">Event Type</label> 
       <div class="col-md-4"> 
        <select id="et" name="et" class="form-control"> 
        <option value="1">Convoy</option> 
        </select> 
       </div> 
      </div> 


        <!-- Select Basic --> 
      <div class="form-group"> 
       <label class="col-md-4 control-label" for="sc">Start City</label> 
       <div class="col-md-4"> 
        <select id="sc" name="sc" class="form-control"> 
    <option value="12">Aalborg</option> 
    <option value="96">Aberdeen</option> 
    <option value="99">Wilnet Transport</option> 
        </select> 
       </div> 
      </div> 

      <div class="form-group"> 
       <label class="col-md-4 control-label" for="ec">End City</label> 
       <div class="col-md-4"> 
        <select id="ec" name="ec" class="form-control"> 
    <option value="12">Aalborg</option> 
    <option value="95">Zürich</option> 
        </select> 
       </div> 
      </div> 

      <div class="form-group"> 
       <label class="col-md-4 control-label" for="es">End Site</label> 
       <div class="col-md-4"> 
        <select id="es" name="endsite" class="form-control"> 
    <option value="76">Service Station</option> 
    <option value="99">Wilnet Transport</option> 
        </select> 
       </div> 
      </div> 

     <div style="width:29%; margin: 20px auto 0 auto;"> 
     <div class="form-group"> 
     <label for="dn">Description</label> 
     <textarea class="form-control" id="dn" rows="3"></textarea> 
     </div> 
     </div> 



      <!-- Button (Double) --> 
      <div class="form-group"> 
       <label class="col-md-4 control-label" for="submitButton"></label> 
       <div class="col-md-8"> 
        <input type="submit" value="Submit"> 
        <button id="cancelButton" name="cancelButton" class="btn btn-danger">Cancel</button> 
       </div> 
      </div> 

     </fieldset> 
    </form> 
+0

bitte vollständige Datei anzeigen, mit HTML-Formular – Bostjan

+0

Auch, warum * würde nicht * die Datenbank-Logik ausgeführt, wenn Sie nie überprüfen, ob das Formular gesendet wurde? –

+0

sicher gerne wissen auch, wie das Formular aussieht –

Antwort

1

Versuchen Sie es in einer if Anweisung Einwickeln zu sehen, ob $_POST eingestellt wurde. Im folgenden Code teste ich nur für id, aber Sie sollten für alle Felder testen, die Sie in Ihre Datenbank einfügen müssen.

<?php 

if(isset($_POST['id'])) { //Check to see if $_POST has been set 

    $link = mysqli_connect("localhost", "db", "pass", "table"); 


    if($link === false){ 
     die("ERROR: Could not connect. " . mysqli_connect_error()); 
    } 


$id = mysqli_real_escape_string($link, $_POST['id']); 
$game = mysqli_real_escape_string($link, $_POST['game']); 
$server = mysqli_real_escape_string($link, $_POST['server']); 

//You need to fix your variable's below: 
$datetimepicker1 = mysqli_real_escape_string($link, $_POST['datetimepicker1']); 
$et = mysqli_real_escape_string($link, $_POST['et']); 
$sc = mysqli_real_escape_string($link, $_POST['sc']); 
$ss = mysqli_real_escape_string($link, $_POST['ss']); 
$ec = mysqli_real_escape_string($link, $_POST['ec']); 
$es = mysqli_real_escape_string($link, $_POST['es']); 
$dn = mysqli_real_escape_string($link, $_POST['dn']); 


$sql = "INSERT INTO events (id, game, server, datetimepicker1, et, sc, ss, ec, es, dn) VALUES ('$id', '$game', '$server', '$datetimepicker1', '$et', '$sc', '$ss', '$ec', '$es', '$dn')"; 
if(mysqli_query($link, $sql)){ 
    echo "Records added successfully."; 
} else{ 
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link); 
} 


mysqli_close($link); 
} 
?> 
+0

Ich kann nicht sehen, wie diese Antwort die Frage löst. '$ Server' für die meisten Werte, wirklich? Das soll doch wohl ein Scherz sein. –

+0

Sie müssen Ihre Antwort entsprechend bearbeiten Moe. Die Variablen und Werte stimmen nicht überein und das OP hat seine Frage mit dem Code bearbeitet, den sie (wirklich) benutzen. –

+0

Aktualisiert. Prost – Moe

-1

einen Scheck für den $ POST innerhalb der if-Anweisung hinzufügen:

mysqli_query($link, $sql) && $_POST 

By the way, einen Scheck mit mysqli_query führt die Abfrage zu tun.

Verwandte Themen