Member 13155332 Ответов: 2

Почему я получаю решение этого " notice: undefined index: user in C:\wamp\www\S_WEB\login.php на линии 6"


<?php 
    require_once'connection/dbcon.php'; 
    	if (isset($_POST['login']))
    		{
    			$username = mysqli_real_escape_string($db, $_POST['user']);
    			$password = mysqli_real_escape_string($db, $_POST['pass']);
                
                $query 		= mysqli_query($db, "SELECT * FROM users WHERE  password='".$password."' and username='".$username."'");
    			$row		= mysqli_fetch_assoc($query);
    			$num_row 	= mysqli_num_rows($query);
                // var_dump($row);
                // var_dump($num_row);
                // exit;
    			if ($num_row > 0) 
    				{			
    					$_SESSION['user_id']=$row['sn'];
    					header('location:home.php');
     
    				}
    			else
    				{
    					echo 'Invalid Username and Password Combination';
    				}
    		}
>


Что я уже пробовал:

я просто пытался решить эту проблему, но до сих пор не получил решения.

2 Ответов

Рейтинг:
2

Patrice T

Никогда не создавайте SQL-запрос путем конкатенации с пользовательскими вводами, он называется "SQL-инъекция", он опасен для вашей базы данных и подвержен ошибкам.
Одна кавычка в имени - и ваша программа рухнет. Если пользовательский ввод типа "Брайан О'Коннер" может привести к сбою вашего приложения, то это уязвимость SQL-инъекции.
SQL-инъекция-Википедия[^]
SQL-инъекция[^]


Рейтинг:
1

David_Wimbley

Похоже, что ваша проблема здесь, вероятно

$username = mysqli_real_escape_string($db, $_POST['user']);


Ваше сообщение об ошибке не совпадает с кодом, который вы опубликовали, но оно довольно ясно. Ваш пост в login.php не содержит поля "пользователь". Проверьте, что вы публикуете, чтобы убедиться, что "пользователь" является одним из передаваемых vars формы login.php.

Вы можете использовать такие инструменты, как fiddler, chrome dev tools или firebug/firefox dev tools, чтобы увидеть, что публикуется.