У меня проблемы с обновлением PHP. Раньше я использовал PHP 5.2.0 и ниже; теперь я обновился до PHP 5.5.0. Некоторые из моих фрагментов не работают, как я ожидал.
Вот, например, один. он говорит,
Устаревший: mysql_real_escape_string ()
Я попробовал mysqli_real_escape_string()
и получил еще одну ошибку:
Предупреждение: mysqli_real_escape_string () ожидает ровно 2 параметра, 1 заданных в
Вот мой код:
<?php require_once("includes/session.php"); require_once("connections/connection.php"); require_once("includes/functions.php"); ?> <?php $username = $_POST['username']; $password = $_POST['password']; //$hashed_password= md5($password); ?> <!--Receive username password and authenticate whether the same or not with database one. --> <?php $username = stripslashes($username); $password = stripslashes($password); $username = mysqli_real_escape_string($username); $password = mysqli_real_escape_string($password); ?> <?php $query = "SELECT * FROM login WHERE username = '{$username}' AND password = '{$password}' AND status=1"; $result = mysql_query($query); $count = mysql_num_rows($result); if($count == 1){ //for the session $result_fetch= mysql_fetch_array($result); $_SESSION['user_id']= $result_fetch['id']; $_SESSION['user_name']= $result_fetch['username']; session_register("username"); session_register("password"); header("Location: dashboard.php"); exit; } else{ echo "The username or password is incorrect."; } ?> <?php //5.Close connection if(isset($connection)){ mysql_close($connection); } ?>
mysqli_real_escape_string
требуется два аргумента:
Синтаксис:
mysqli_real_escape_string($connection,$escapestring);
Вам нужно указать переменную соединения. Это выглядит
$connection=mysqli_connect("host","my_user","my_password","my_db");
Вы должны обновить свои знания PHP .
Альтернативным методом было бы использовать объект базы данных, поэтому вам не нужно каждый раз передавать детали соединения.