我對PHP很新穎(大多數實際上根本不做Web開發),並且最近已經涉足它。我正在嘗試創建一個登錄頁面,用於在登錄後將用戶重定向到鏈接到用戶的唯一網址。所以我想在數據庫中說4列:id,用戶名,密碼和重定向。在成功登錄後,URL將重定向到存儲用戶URL的數據庫中的重定向列。問題是我一直在努力的代碼。爲了使登錄我不能似乎有它重定向到使用標題(「位置:)行的數據庫列這裏是我的代碼也許你們能好心幫我:PHP:使用標頭從數據庫打開網址
<?php
$host="sql1om"; // Host name
$username="b33_1033"; // Mysql username
$password="b33_1033"; // Mysql password
$db_name="test"; // Database name
$tbl_name="members"; // Table name
// Connect to server and select databse.
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);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// 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_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
?>
,所以我不能圖如何分貝列變量中的重定向列在
header("location:login_success.php);
添加到輸出的URL每次我嘗試在該行沒有任何一個變量發生 任何幫助,將不勝感激。請仔細解釋,我是新手at php。Thank-you!
Here is edited co去把我弄得工作(的幫助):
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="members"; // Table name
// Connect to server and select databse.
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);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// 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;
$_SESSION['password'] = $mypassword;
$result = mysql_query("SELECT redirect FROM members");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
header("Location: " . $row['redirect']);
}
exit();
}
else {
echo "Wrong Username or Password";
}
?>
是,'退出()'是一個很好的建議,也.. – Filkor 2012-03-11 22:46:52
謝謝你的信息回答。我嘗試添加var。在腳本中輸入正確的用戶和密碼後不會發生重定向。除了$ result ['redirect']這行之外,我還需要添加其他任何內容嗎?謝謝 – domsl 2012-03-11 22:51:24
@ user1232264:你使用過'mysql_fetch_assoc()'嗎? '$ result'只指向一個SQL資源。您需要使用'mysql_fetch_assoc()'將值檢索到關聯數組中。 – F21 2012-03-11 22:53:52