Это мой код для входа в систему. Запрос возврата не выполнен. Я не знаю, какой синтаксис неверен. Любая помощь ? Нужно ли мне выбирать все в моем столе? На моей странице входа есть только имя пользователя, пароль и роль. Но в моем столе есть другие вещи, как указано на моей $ _SESSION ниже. Нужно ли мне переписывать все в моем столе или что-то в этом роде? Потому что мое кодирование не может прочитать запрос. Синтаксической ошибки нет, но когда я пытаюсь войти в систему, запрос не отображается.Выберите оператор в логине. Запрос не выполнен
<?php
session_start();
require 'database.php';
//to store validation errors
$errmsg_arr = array();
//validation error flag
$errflag = false;
//function to sanitize values from the form. Preventing the SQL injection
function clean ($str){
$str = @trim($str);
if (get_magic_quotes_gpc()){
$str = striplashes ($str);
}
return mysql_real_escape_string($str);
}
//sanitize POST values
$myusername = clean ($_POST['username']);
$mypassword = clean ($_POST['password']);
$role = clean ($_POST['role']);
//input validations
if ($myusername = ''){
$errmsg_arr[] = 'Insert your username';
$errflag = true;
}
if ($mypassword = ''){
$errmsg_arr[]= 'Insert you password';
$errflag = true;
}
//if there are input validation, redirect back to home
if ($errflag){
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location:index.php");
exit();
}
$qry = "SELECT user_id, username, name, password, role FROM student WHERE username = '$myusername', password = '".md5($_POST['password'])."' AND role = '$role' ";
$result = mysql_query($qry);
if ($result){
if (mysql_num_rows($result)== 1){
session_regenerate_id();
$student = mysql_fetch_assoc($result);
$_SESSION['SESS_USER_ID']= $student['user_id'];
$_SESSION['SESS_NAME']= $student['name'];
$_SESSION['SESS_GENDER']= $student['gender'];
$_SESSION['SESS_MATRIC']= $student['matric'];
$_SESSION['SESS_COLLEGE']= $student['college'];
$_SESSION['SESS_FACULTY']= $student['faculty'];
$_SESSION['SESS_COURSE']= $student['course'];
$_SESSION['SESS_EMAIL']= $student['email'];
$_SESSION['SESS_PHONE']= $student['phone'];
session_write_close();
header("location: profile.php");
exit();
}else {
header ("location: login_failed.php");
exit();
}
}else {
die ("Query failed");
}
?>
** [Не используйте mysql_ *; используйте mysqli_ * или PDO] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php?rq=1). ** –
Вы проверяете возвращаемые значения вызовов вашей базы данных; но если они не удались, вы можете использовать 'mysql_error()' для получения фактического сообщения об ошибке из базы данных. – andrewsi