2015-03-29 3 views
-2

Я уже загрузил свою страницу в 000webhost.com, исправил подключения, но столкнулся с проблемой с моей страницей администратора. Он имеет эту ошибку.mysql_real_escape_string() ожидает, что параметр будет строкой

Предупреждение: mysql_real_escape_string() ожидает параметр 1, чтобы быть строка, данный объект в /home/a8431834/public_html/admin_area/login.php на линии 36

Ниже мой код.

<?php 
session_start(); 

?> 
<!DOCTYPE> 
<html> 
<head> 
    <title>Login Form</title> 
<link rel="stylesheet" href="styles/login_style.css" media="all" /> 

</head> 
<body> 
<div class="login"> 
<h2 style="color:white; text-align:center;"><?php echo @$_GET['not_admin']; ?></h2> 


<h2 style="color:white; text-align:center;"><?php echo @$_GET['logged_out']; ?></h2> 

<h1>Admin Login</h1> 
<form method="post" action="login.php"> 
    <input type="text" name="email" placeholder="Email" required="required" /> 
    <input type="password" name="password" placeholder="Password" required="required" /> 
    <button type="submit" class="btn btn-primary btn-block btn-large" name="login">Login</button> 
</form> 
</div> 


</body> 
</html> 
<?php 

include("includes/db.php"); 

if(isset($_POST['login'])){ 

    $email = mysql_real_escape_string($con, $_POST['email']); 
    $pass = mysql_real_escape_string($con, $_POST['password']); 

$sel_user = "select * from admins where user_email='$email' AND user_pass='$pass'"; 

$run_user = mysqli_query($con, $sel_user); 

$check_user = mysqli_num_rows($run_user); 

if($check_user==1){ 

$_SESSION['user_email']=$email; 

echo "<script>window.open('index.php?logged_in=You have successfully Logged in!','_self')</script>"; 
} 
else { 
echo "<script>alert('Password or Email is wrong, try again!')</script>"; 
} 

} 
?> 
+0

Вы смешиваете 'mysql' с' mysqli'. Оба API отличаются. –

ответ

0

То, что вы делаете, вы смешиваете устаревшее mysql_ вместе с mysqli_* поэтому вместо того, чтобы использовать mysql_real_escape_string использовать mysqli_real_escape_string()

$email = mysqli_real_escape_string($con, $_POST['email']); 
$pass = mysqli_real_escape_string($con, $_POST['password']); 

и вы можете узнать больше о mysqli_real_escape_string() on PHP manual

И остерегайтесь используя устаревшую версию, если вы сделали где-либо еще, прежде всего обновите эти функции с помощью нового

Смежные вопросы