Я хочу войти с помощью PHP и MySQL, но каждый раз, когда он собирается разделиться, хотя все user_name и user_pass поступают из базы данных и используют его как обычный текст без шифрования.
вот код для входа в систему:
<?php
include("config.php");
if(isset($_POST['login'])) {
$user_name = mysql_real_escape_string($_POST['user_name']);
$user_pass = mysql_real_escape_string($_POST['user_pass']);
//$encrypt=md5($user_pass);
$admin_query = mysql_query("select user_name,user_pass from admin where `user_name` = '$user_name' AND `user_pass` = '$user_pass' ");
//$run= mysql_query($admin_query);
$row = mysql_num_rows($admin_query); //if user_name and user_pass is correct it must return atlest one
$row_ar =mysql_fetch_array($admin_query);
if( $row == 1 && $row_ar['user_pass']==$user_pass) {
$_SESSION['user_name'] = $user_name;
echo "<script>window.open('index.php','_self')</script>";
} else {
echo"<script>alert('User name or password is incorrect!')</script>";
}
}
?>
в базе данных есть таблица admin и 3coloumns id , user_name ,user_pass
каждый элемент в текстовом виде.
использование mysqli
ИЛИ ЖЕ PDO
для выполнения операций с базой данных, потому что расширение mysql устарело. mysqli_real_escape_string()
Функция экранирует специальные символы в строке для использования в операторе SQL. Вы также должны передать объект соединения в качестве параметра.
include("config.php");
if(isset($_POST['login'])) {
$user_name = mysqli_real_escape_string($con,$_POST['user_name']);//$con is database connection object
$user_pass = mysqli_real_escape_string($con,$_POST['user_pass']);
//$encrypt=md5($user_pass);
$admin_query = mysqli_query("select user_name,user_pass from admin where `user_name` = '$user_name' AND `user_pass` = '$user_pass' ");
//$run= mysql_query($admin_query);
$row = mysqli_num_rows($admin_query); //if user_name and user_pass is correct it must return atlest one
$row_ar =mysqli_fetch_array($admin_query);
if( $row == 1 && $row_ar['user_pass']==$user_pass) {
$_SESSION['user_name'] = $user_name;
echo "<script>window.open('index.php','_self')</script>";
}
else {
echo"<script>alert('User name or password is incorrect!')</script>";
}
}
$admin_query = mysql_query("select user_name,user_pass from admin where `user_name` = '$user_name' AND `user_pass` = '$user_pass' ");
В приведенном выше заявлении вы используете user_name
= ‘$ user_name’ и user_pass
= ‘$ User_pass’. Вместо этого вы можете использовать:
$admin_query = mysql_query("select user_name,user_pass from admin where user_name = '".$user_name."' AND user_pass='".$user_pass."' ");