Не может показаться, что это так, не знаю, связано ли это с тем, что я использую v5 +, но «mysqli_num_rows ($ result)> 0» не работает так, как это предположим, что ... все же он все еще вводит переменные в базу данных.Проверьте базу данных, если имя пользователя уже существует. PHP v5
Ошибка я получаю это " Предупреждение: mysqli_num_rows() ожидает параметр 1, чтобы быть mysqli_result, булево приведены в C: \ XAMPP \ HTDOCS \ lichie \ register.php на линии 22 "
Другие примеры, которые я видел в stackoverflow, работают с методом «mysql_query», но я пытаюсь использовать его с «mysqli_query».
Вот код:
<?php
include "connect_db_users.php";
@$username = strtolower($_POST['user']);
@$email = strtolower($_POST['email']);
@$pass = $_POST['pass'];
@$confirmPass = $_POST['confirmPass'];
$ins_user = "INSERT INTO lichie_user(user_user,user_pass,user_email, user_date)"
. "VALUES ('" . $username . "' , '" . $pass . "' , '" . $email . "' , NOW())";
if(isset($_POST['submit'])){
if($username == !''){
if($email == !''){
if($pass == !''){
if($pass == $confirmPass){
$query = 'SELECT user_user FROM lichie_user WHERE user_user=$username';
$result = mysqli_query($connect,$query);
if (mysqli_num_rows($result) > 0){
echo "Username already exists!";
}else{
if(mysqli_query($connect, $ins_user)){
mysqli_close($connect);
/*header("Location: Success.php");*/
echo "INSERTED";
}else{
echo "FAILED!";
}
}
}else{
echo "Passwords do not match!";
}
}else{
echo "Password can not be empty!";
}
}else{
echo "Email can not be empty!";
}
}else{
echo "Username can not be empty!";
}
}
?>
<form method="POST">
<h2 align="center"> Register</h2>
<table id="table1"; cellspacing="5px" cellpadding="5%"; align="center">
<tr>
<td align="right">Username:</td>
<td><input type="text" name="user" /></td>
</tr>
<tr>
<td valign="top" align="right">Email:</td>
<td><input type="email" name="email" /></td>
</tr>
<tr>
<td valign="top" align="right">Password:</td>
<td><input type="password" name="pass" autocomplete="off" /></td>
</tr>
<tr>
<td valign="top" align="right">Confirm Password:</td>
<td><input type="password" name="confirmPass" autocomplete="off"/></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="submit"/></td>
</tr>
</table>
</form>
[. Ваш скрипт находится в опасности для SQL Injection атак] (http://stackoverflow.com/questions/60174/how- can-i-prevent-sql-injection-in-php) Узнайте о запросах [подготовленных] (http://en.wikipedia.org/wiki/Prepared_statement) для [MySQLi] (http://php.net/manual/ о/mysqli.quickstart.prepared-statements.php). –
Для защиты паролей используйте встроенные функции PHP (http://jayblanchard.net/proper_password_hashing_with_PHP.html). Если вы используете версию PHP менее 5.5, вы можете использовать 'password_hash()' [пакет совместимости] (https://github.com/ircmaxell/password_compat). –