我創建了一個很棒的登錄表單。但是我意識到我的用戶所指向的頁面仍然可以被任何人訪問。如何保護被訪問的頁面只能被登錄的用戶查看?如何僅爲登錄用戶保護頁面?
我是否需要在成功頁面上放置腳本?
這裏是我的check_login.php:
<?php
$host="localhost"; // Host name
$username="xxx"; // Mysql username
$password="xxx"; // Mysql password
$db_name="xxx"; // Database name
$tbl_name="xxx"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password") or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// username and password sent from form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
$user_info = mysql_fetch_assoc($result);
if(isset($user_info['url'])) {
session_register("myusername");
session_register("mypassword");
header('Location: ' . $user_info['url']); //Redirects to the supplied url from the DB
} else {
header("location:error.htm");
}
?>
不是你正在尋找的答案,但你會想要修復你的查詢,或者你可能有一個SQL注入攻擊,妥協你的數據庫。另外,在發送位置標題時,養成從腳本退出的習慣。 – sberry
@ sberry2A:對於'exit'的建議,我沒有發現SQL的問題,只有+1。 – Dor