Stop-leere Werte aus input-Boxen eingefügt, die in meiner Datenbank? PHP
Dies ist die html-Formular - (register.php):
<html>
<body>
<form action="handle_registration.php" method="post">
<fieldset><legend>Enter your
information in the form below:</legend>
First Name: <input type="text" name="fname" size="20" maxlength="40"><br>
Last Name: <input type="text" name="lname" size="20" maxlength="40"><br>
Username: <input type="text" name="uname" size="20" maxlength="40"><br>
Password: <input type="text" name="pword" size="20" maxlength="40"><br>
<input type="submit" name="submit" value="submit my info">
</form>
</body>
</html>
Dies ist das php-Skript verarbeitet die Registrierung (handle_registration.php):
<?php
//Create a shorthand for the form data:
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$uname = $_POST['uname'];
$pword = $_POST['pword'];
//Create the connection variables:
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "registration_info";
$con = mysqli_connect("$db_host", "$db_user", "$db_pass", "$db_name");
//Check the connection:
if (mysqli_connect_errno ())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
//Make sure all of the input boxes have a value:
if (empty($fname)) {
die('You forgot to enter your first name!');
}
if (empty($lname)) {
die('You forgot to enter your last name!');
}
if (empty($uname)) {
die('You forgot to choose a username!');
}
if (empty($pword)) {
die('You forgot to choose a password!');
}
//Insert the data from the form into the DB:
$sql = "INSERT INTO basic_information (First_Name, Last_Name, Username, Password)
VALUES
('$_POST[fname]', '$_POST[lname]', '$_POST[uname]', '$_POST[pword]')";
//Enter the info the end user type if everything is ok:
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
else
{
echo "Record has been added";
}
//Close the connection:
mysqli_close($con);
?>
Hier ist das problem:
Möchte ich übermitteln Sie die eingegebenen Werte in meiner Datenbank, wenn alle input-Felder haben einen Wert, aber wenn ich die die-Funktion nach der überprüfung, um zu sehen, wenn Sie leer sind, dann tötet er die Schrift. Ich will einfach nur, um zu töten, die Teil waren es fügt es in meine Datenbank, wenn ein oder mehrere Felder leer sind & display eine Fehlermeldung, die sagt, das Feld war leer. Ich bin mir nicht sicher, wie man das umgehen kann und jede Hilfe wird sehr geschätzt.
- finden Sie diese url ein: w3schools.in/php-tutorial/form-validation
- 1. Speichern Sie alle Fehler in einem array. wenn das array leer ist insert in die Datenbank ein, sonst drucken Sie das array-Inhalte.
- Sie bekommen wahrscheinlich ein paar Kommentare, die sagen, Sie watch out für SQL-injection und security. Das ist ein Problem, sollten Sie auch suchen. Ein weiterer ist, ob es vielleicht eine bessere Idee, um die form-Felder rechts, wo Sie entstanden, also durch etwas JavaScript/jQuery-validator in dem browser Ihres Kunden. Auf diese Weise können Sie geben dem Benutzer eine schnellere Reaktion im Falle eines Fehler (oder fehlende Werte), und Sie halten, unnötigen Verkehr von Ihrem server.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Lösung ist relativ einfach. Nur speichern die Fehlermeldung in eine variable und vor dem einfügen von Zeilen in die DB - check Wetter der Fehler gesetzt ist, oder wenn es leer ist. Wenn es leer ist, - können wir die Zeile einzufügen. Ansonsten - schauen wir uns mal die Fehlermeldung.
Verwenden Sie nicht sterben ,verwenden einige Variablen zum speichern von Fehlern und drucken Sie Sie später
Könnten Sie ein $Fehler variable, um den Fehler mit allen Feldern
Voll funktionsfähiges Beispiel zum stoppen der Einfügung der leeren Daten