PDO prepare () ошибка Php / Mysql - PullRequest
       1

PDO prepare () ошибка Php / Mysql

1 голос
/ 04 августа 2011

PHP

session_start(); 
$username = $_POST['regduser']; 
$userpass = md5($_POST['regdpass']); 
$sql = $sql->prepare("SELECT * from Students WHERE regduser='$username' and regdpass='$userpass'");
$sql->bindParam(':username', $username);
$sql->bindParam(':userpass', $userpass);
$stmnt->execute();
$result = mysql_query($sql); 
if (mysql_num_rows($result)!= 1) { 
 $error = "Login failed"; 
 #include "loginform.php"; 
} else { 
    echo "<h1>exists</h1>";
 #$_SESSION['regduser'] = "$username"; 
 #$_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; 
 // any other data needed to navigate the site or 
 // to authenticate the user can be added here 
 #include "membersection.php"; 
}

?>

HTML:

<form action="inc/check_regUsr.php" method="post" id="userLogon">
    <div class="field required">
        Username: <input type="text" name="regduser" tabindex="1" /><br />
        </div>
        <div class="field required">
        Password: <input type="password" name="regdpass" tabindex="2" /><br />
        </div>
        <input type="submit" name="submitUser" />
</form>

Неустранимая ошибка: вызов функции-члена prepare () для non-объект в строке 9 Эта строка:

$sql = $sql->prepare("SELECT * from Students WHERE regduser='$username' and regdpass='$userpass'");

Что я здесь не так делаю?!

Ответы [ 2 ]

5 голосов
/ 04 августа 2011

Ооо, с чего начать ...

  1. Где установлено соединение с базой данных $sql?
  2. Используйте :placeholdername в подготовленных утверждениях, а не $placeholdername.
  3. Вы перезаписываете $sql, разрушая соединение с базой данных, если оно у вас когда-либо было.
  4. $stmnt не существует
  5. Что mysql_query делает там? У вас есть 3 варианта: mysql, mysqli или PDO. Придерживайтесь одного, не смешивайте и не сочетайте.
2 голосов
/ 04 августа 2011

$sql вообще не является объектом. Это должен быть объект, например, что-то из PDO , например $sql = new PDO(…).

Кроме того, вы должны не использовать хеши MD5 для паролей, см. Безопасный хеш и соль для паролей PHP .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...