안녕하세요, 저는 로그인 스크립트에 PDO를 삽입하여 SQL 인젝터로부터 안전하게 보호하려고합니다. 그러나 메신저 내가 그 메신저는 사용자가 실제 있는지 확인하기 위해 행을 계산하려고하기 때문에 생각 흰색 페이지를 ..... 점점 PHP 간단한 로그인 스크립트 흰색 페이지
// Here we inculde the function page
include 'functions/functions.php';
// Here we connect to the db
$db = mysqlconnect();
$password = md5($_POST['mypassword']);
$statement = $db->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$statement->execute(array($_POST['myusername'], $password));
// Replace counting function based on database you are using.
$count = $statement->rowCount();
// If result matched $myusername and $mypassword, table row must be 1 row
if($count == 1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
$_SESSION['username'] = $myusername ;
//Test if it is a shared client
if (!empty($_SERVER['HTTP_CLIENT_IP'])){
$ip=$_SERVER['HTTP_CLIENT_IP'];
//Is it a proxy address
}elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$ip=$_SERVER['REMOTE_ADDR'];
}
$updateinfo=mysql_query("UPDATE `users` SET lastip ='$ip' WHERE `username` = '".$_SESSION['username']."'");
mysql_query("INSERT INTO user_log
(username, ip) VALUES('".$_SESSION['username']."', '$ip') ")
or die(mysql_error());
header("Location: home.php");
} else {
echo "Wrong Username or Password";
}
echo"<p> </p>";
임되지 않은 오류가 발생하는 것은 단지 흰색 페이지입니다.
또한 여기에 내가 안구에 붙어 코드에서 일의 부부가있다
function mysqlconnect(){
global $db;
$host = 'localhost';
$port = 3306; // This is the default port for MySQL
$database = '';
$username = '';
$password = '';
// Construct the DSN, or "Data Source Name". Really, it's just a fancy name
// for a string that says what type of server we're connecting to, and how
// to connect to it. As long as the above is filled out, this line is all
// you need :)
$dsn = "mysql:host=$host;port=$port;dbname=$database";
// Connect!
$db = new PDO($dsn, $username, $password);
}
'global' 키워드 사용을 중지하십시오. 그리고'md5()'를 어떻게 사용하고 있습니까? 그리고 오류보고를 사용하도록 설정 했습니까? – PeeHaa
예 오류 오류보고가 켜져 있습니다. 그리고 $ db를 반환하십시오. 쇼는 db가 선택되어 있지 않습니다 (int 함수 파일이있을 때) 그리고 사용자 비밀번호가 md5이기 때문에 md5를 사용합니다 ... – user1405062
당신은 여전히 mysql_query를 사용하고 있습니다. 무엇을 성취하려고합니까? db로 연결하는 데 PDO를 사용하고 있는데, 그 외의 mysql_query를 사용하는 것을 볼 수 있습니다. –