Сервер не осуществляет проверку имени в БД и все равно регистрирует пользователя, в чём проблема???

<?php   	
			/*ini_set('display_errors', 1); 	
			ini_set('display_startup_errors', 1);*/
   	
   	$connect = mysqli_connect("localhost", "", "") or die('Не удалось подключиться');
   	
   	mysqli_select_db($connect, "");
   	
   	session_start();
   	
   	$email = $_POST['email'] ;
   	$login = $_POST['login'];
   	$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
   	$tel = $_POST['tel'];
   	$id = $_POST['id'];
		 	if (isset($_POST['submit-reg'])) {
		 	$query =  mysqli_query($connect, "SELECT id FROM users WHERE login='$login' LIMIT 1,1"); 
		 	$fetch = mysqli_fetch_array($query);
		 	if ($fetch == 0) {
		 	$fill = mysqli_query($connect, "INSERT INTO users (id,tel,email,login,password) VALUES ('','$tel 	
		 		email','$login','$password')");
		 	$arr = array('$login','$tel','$email');
echo "<div style='color:green; font-family: 'Lobster', cursive;'><p style='margin:0; display:inline-block;'>Добро пожаловать,</ 	
		 			p>".$login."<p style='margin:0;display:inline-block;'>!</p></div>";
		 			$_SESSION['logged_user'] = $arr;
		 		}
		 	}elseif ($fetch != 0) {
		 		echo "<div style='color:red; font-family: 'Lobster', cursive;'>"."<p style='margin:0;'>Пользователь с таким именем уже существует! 	
		 		p>"."</div>";
		 	}
		 	} 	
		 	?>
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
LIMIT 1,1

Т.е. разрешено два пользователя с одним именем.

И никогда не подставляйте данные в текст запроса. Используйте prepared statements.

$arr = array('$login','$tel','$email');

Без комментариев. Посмотрите, что в переменной записано, удивитесь.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@zRrr
Вместо
$connect = mysqli_connect("localhost", "", "") or die('Не удалось подключиться');
   	
   	mysqli_select_db($connect, "");

Попробуй
$connect = mysqli_connect("localhost","ЛОГИН","ПАРОЛЬ","НАЗВАНИЕ БАЗЫ ДАННЫХ");
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы