Я создал столбец с именем «permissions» в моей таблице базы данных со значением 1 для администратора и 2 для обычных пользователей. Проблема в том, что всякий раз, когда я вхожу в систему с обычным пользователем, он перенаправляет меня на страницу администратора.Сбой при входе на страницу PHP
<?php
$con=mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('user_registration') or die("cannot select DB");
if(isset($_POST["login"])){
if(!empty($_POST['user']) && !empty($_POST['pass'])) {
$user = strip_tags($_POST['user']);
$pass = strip_tags($_POST['pass']);
$query=mysql_query("SELECT * FROM users WHERE username='".$user."' AND password='".$pass."'");
$numrows=mysql_num_rows($query);
$permissions= "SELECT username FROM users WHERE permissions = '1'";
$result=mysql_query($permissions);
if($numrows!=0) {
while($row=mysql_fetch_assoc($query)) {
$dbusername=$row['username'];
$dbpassword=$row['password'];
}
if($user == $dbusername && $pass == $dbpassword) {
session_start();
$_SESSION['sess_user']=$user;
if (mysql_num_rows($result) == 1) {
header("Location: fullDB.php");
} else {
header("Location: member.php");
}
}
} else {
echo "Invalid username or password!";
}
} else {
echo "All fields are required!";
}
}
?>
Обратите внимание, что 'mysql_ *' теперь устарел от PHP7 из-за проблем с безопасностью. Предлагается переключиться на расширения mysqli_ * или 'PDO'. – Derek
[Little Bobby] (http://bobby-tables.com/) говорит, что [ваш скрипт подвержен риску инъекций SQL.] (Http://stackoverflow.com/questions/60174/how-can-i-prevent -SQL-инъекция-в-РНР). Даже [избегая строки] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) небезопасно! –
Пожалуйста, прекратите использование 'mysql_ *' функций] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). [Эти расширения] (http://php.net/manual/en/migration70.removed-exts-sapis.php) были удалены в PHP 7. Узнайте о [подготовленном] (http://en.wikipedia.org/ wiki/Prepared_statement) для [PDO] (http://php.net/manual/en/pdo.prepared-statements.php) и [MySQLi] (http://php.net/manual/en/mysqli.quickstart .prepared-statements.php) и подумайте над использованием PDO, [это действительно довольно легко] (http://jayblanchard.net/demystifying_php_pdo.html). –