Ich habe zwei Arten von Anmeldeformular für zwei Benutzertypen, Surveyee und Client. Sie haben Ähnlichkeiten, wenn es darum geht, das gleiche Feld zu haben, aber Surveyee hat mehr. Daher möchte ich, dass mein Umfrageteilnehmer Code einfügt, um eine Spalte zu vermeiden, da sie nur für den Client-Benutzertyp gilt.Wie überspringe ich einige Tabellenspalten beim Einfügen in PHP?
<?php
if(isset($_POST['submit'])){
include("connection.php");
$username = $_POST['username'];
$fullname = $_POST['fullname'];
$email = $_POST['email'];
$age = $_POST['age'];
$password = $_POST['password'];
$confirmpassword = $_POST['confirmpassword'];
$gender = $_POST['gender'];
$occupation = $_POST['occupation'];
$user = mysqli_query($con, "SELECT username from user WHERE username = '".$username."'");
$count = mysqli_num_rows($user);
if($password != $confirmpassword){
echo "Password does not match!";
}
else{
if($count != 0){
echo "Username already exists!";
}
else{
$insert = mysqli_query($con, "INSERT INTO `user` (`username`,`fullname`,`email`,`companyname`,`age`,`password`,`gender`,`occupation`,`usertype`) VALUES (`$username`,`$fullname`,`$email`,``,`$age`,`$password`,$gender`,`$occupation`,`Surveyee`)");
if(!$insert){
echo mysqli_errno();
}
else{
echo "Records have been saved!";
}
}
}
}
?>
Ich habe versucht, die Spalte Firmennamen zu vermeiden, aber ich erhalte eine Fehlermeldung. Warnung: mysqli_errno() erwartet genau 1 Parameter, 0 in Zeile 29, was das if (! $ Insert) ist { echo mysqli_errno(); } Teil
$insert = mysqli_query($con, "INSERT INTO `user` (`username`,`fullname`,`email`,`companyname`,`age`,`password`,`gender`,`occupation`,`usertype`) VALUES (`$username`,`$fullname`,`$email`,``,`$age`,`$password`,$gender`,`$occupation`,`Surveyee`)");
if(!$insert){
** niemals Passwörter im Klartext gespeichert werden! ** Bitte verwenden Sie PHP [eingebaute Funktionen] (http://jayblanchard.net/proper_password_hashing_with_PHP.html) Passwortschutz zu handhaben . Wenn Sie eine PHP-Version kleiner als 5.5 verwenden, können Sie das 'password_hash()' [compatibility pack] (https://github.com/ircmaxell/password_compat) verwenden. Stellen Sie sicher, dass Sie *** [Kennwörter nicht entgehen] (http://Stackoverflow.com/q/36628418/1011527) *** oder verwenden Sie einen anderen Bereinigungsmechanismus vor dem Hashing. Wenn Sie dies tun, * ändert * das Passwort und verursacht unnötige zusätzliche Codierung. –
[Little Bobby] (http://bobby-tables.com/) sagt *** [Ihr Skript ist für SQL Injection Attacks gefährdet.] (Http://stackoverflow.com/questions/60174/how-can- i-prevent-sql-injection-in-php *** Erfahren Sie mehr über [vorbereitete] (http://en.wikipedia.org/wiki/Prepared_statement) Anweisungen für [MySQLi] (http://php.net/manual /mysqli.quickstart.prepared-statements.php). Sogar [die Zeichenfolge zu entkommen] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) ist nicht sicher! [Glauben Sie es nicht?] (Http://stackoverflow.com/q/38297105/1011527) –
Fügen Sie entweder eine NULL ein oder haben Sie eine separate Abfrage für jeden Benutzertyp. –