Я никогда ничего не делал с pdo, и мне очень трудно переключить mysql_ * на pdo в моем файле login.php. Есть ли какие-либо предложения, как это сделать и сделать мой логин безопасным от инъекций?
login.php:
session_start(); $username = $_POST ['username']; $password = $_POST ['password']; if ($username&&$password) { $connect = mysql_connect ("localhost","**********","***********") or die ("Couldn't connect"); mysql_select_db ("*********") or die ("DataBase does not exist"); $query = mysql_query("SELECT * FROM members WHERE username='$username'"); $numrows = mysql_num_rows ($query); if ($numrows!=0) { while ($row = mysql_fetch_assoc($query)) { $dbusername = $row['username']; $dbpassword = $row['password']; $firstname = $row['FirstName']; } if ($username==$dbusername&&$password==$dbpassword&&$numrows>0) { $_SESSION['name'] = $firstname; $_SESSION['username'] = $username; header( 'Location: admin.php' ) ; exit; } else echo "Incorrect Password!"; } else die ("User Doesn't Exist"); } else die("Please try again!"); ?>
Редакция:
dbconnect.php:
<?php $username = 'root'; $password = ''; $maininf = 'mysql:host=localhost;dbname=;charset=utf8'; $db = new PDO($maininf,$username,$password); ?>
это верно?
На самом деле такое преобразование – довольно простая задача. Вы делаете это только с неправильного конца. Скорее всего, вы просто не потрудились изучить PDO перед его использованием. Это получается довольно нелогичным актоном: разве вы не должны научиться управлять до получения лицензии? То же самое здесь – вы должны учиться первыми. Итак, найдите себе учебник , как один из tuts +, затем прочитайте его, затем выполните все примеры и упражнения. Затем попробуйте написать простой фрагмент кода и немного поиграть с ним. И с тех пор задача конверсии будет куском пирога!
Вы можете начать с wiki-файла PDO прямо здесь
Просто ради полноты.
session_start(); if ($_POST['password']) { include 'pdo.php'; $stmt = $pdo->prepare("SELECT * FROM members WHERE username=?"); $stmt->execute([$_POST['username']]); $row = $stmt->fetch(); if ($row && $row['password'] == $_POST['password']) { $_SESSION['user'] = $row; header( 'Location: admin.php' ) ; exit; } } die("Please try again!");