2017-09-26 4 views
-1

Ich habe ein Formular mit vier Werten, player1, player2, awayTeam und homeTeam.PHP Formular senden

Nachdem überprüft wurde, ob Werte nicht leer sind, möchte es keine Ergebnisse an die Datenbank senden. Ich bin nicht sicher, warum es nicht einreichen will.

Es gibt auch zwei Zufallszahlen, die verglichen werden und basierend auf if num1 > num2 Datensatz sollte eingereicht werden.

<?php 
$link = mysqli_connect("localhost","test", "passowrd", "test"); 

if (mysqli_connect_error()) { 
    die ("DB has not been connected"); 
} 

// create two random numbers 
$Num1 = rand(); 
$Num2 = rand(); 

if (isset($_POST['submit'])) { 
    $playerOne = mysqli_real_escape_string ($link, $_POST['playerOne']); 
    $playerTwo = mysqli_real_escape_string ($link, $_POST['playerTwo']); 
    $awayTeam = mysqli_real_escape_string ($link, $_POST['awayTeam']); 
    $homeTeam = mysqli_real_escape_string ($link, $_POST['homeTeam']); 

    //check if player one is empty 
    if (empty($playerOne)) { 
     echo "Game Creator PSN required!" . "<br>"; 
    } 

    //check if player two is empty 
    if (empty($playerTwo)) { 
     echo "Second Player PSN required!"; 
    } 
} else { 
    //compare two numbers 
    if ($Num1 > $Num2) { 
     $sql = "INSERT INTO randomizer (playerOne, playerTwo, awayteam, homeTeam) VALUES (' $playerOne', '$playerTwo', '$awayTeam', '$homeTeam')"; 
     if ($link->query($sql) === true) { 
      echo "Record Added Sucessfully"; 
     } else { 
      echo "There was a problem"; 
     } 
    } else { 
     $sql = "INSERT INTO randomizer (playerOne, playerTwo, awayteam, homeTeam) VALUES (' $playerTwo', '$playerOne', '$awayTeam', '$homeTeam')"; 
     if ($link->query($sql) === true) { 
      echo "Record Added Sucessfully"; 
     } else { 
      echo "There was a problem"; 
     } 
    } 
} 
?> 
+0

Warum 2 'einfügen' Anweisungen? Was passiert mit der aktuellen Ausführung? – chris85

+1

** WARNUNG **: Wenn Sie 'mysqli' verwenden, sollten Sie [parametrisierte Abfragen] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) und [' bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), um Benutzerdaten zu Ihrer Abfrage hinzuzufügen. ** Verwenden Sie ** NICHT manuelle Entschlüsselung und String-Interpolation oder Verkettung, um dies zu erreichen, da Sie schwerwiegende [SQL-Injektionsfehler] (http://bobby-tables.com/) erstellen werden. Versehentlich ungenutzte Daten sind ein ernstes Risiko. Die Verwendung von gebundenen Parametern ist weniger ausführlich und einfacher zu überprüfen, um zu überprüfen, ob Sie es richtig machen. – tadman

+1

Versuchen Sie, sich aus der Angewohnheit zu machen, Ihren Code mit unnötigen Dingen wie '=== TRUE' aufzufüllen. Viele Funktionen sind so konzipiert, dass sie Werte zurückgeben, die als logisch wahr oder falsch bewertet werden, sodass sie redundant sind. Es ist auch eine schlechte Idee, Wegwerfvariablen wie '$ sql' zu erzeugen und sie dann sofort einer Funktion zu übergeben. Liefern Sie diese Zeichenfolge stattdessen direkt an die Funktion. – tadman

Antwort

0
  1. wenn Post-Daten null ist, hast du nichts. Ich habe nie Ausgang oder andere Ausgangswörter gesehen, in den SQL-Wörtern erhalten Sie Fehler

  2. was anders mit $ num1> $ num2 in Ihrem Code? sie führten die gleichen Codes aus