2013-03-22 74 views
0

所以基本上我試圖運行一個登錄系統,並使用用戶的數據實時更新頁面,不幸的是我無法繼續會話,每次我嘗試回顯用戶沒有任何反應,這是我在日誌代碼。Php登錄,無法繼續會話

<?php 

$host="IPADRESS"; // Host name 
$username="web11-sign-up"; // Mysql username 
$password="w0lfbane01#"; // Mysql password 
$db_name="web11-sign-up"; // 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); 
$mypassword = md5($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["$myusername"]; 
$_SESSION["$mypassword"]; 
header("location:Scene-Selection/"); 
} 
else { 
echo "Wrong Username or Password"; 
} 
?> 

我不知道,這部分是不工作,直到我開始對網站的其他部分。我無法從數據庫中檢索任何信息。

+1

要補充的PHP函數'在session_start()'在使用會話數據的每個頁面的最頂端? – 2013-03-22 00:51:44

+0

是的,我想知道是否需要使session_start()更具體,因爲它似乎沒有記得誰登錄 – 2013-03-22 01:02:15

+0

@MattCornell它不是'記住'誰已經登錄,因爲你沒有初始化會話,所以你正在寫給一個不存在的世界,直到你告訴它。因此''session_start();'在你的整個頁面上 – 2013-03-22 01:04:05

回答

1

您是否在每頁頂部開始您的會話?

確保您打電話給session_start();您想要使用會話的每個頁面的頂部。

我個人包括application.php在每個頁面的頂部 - 其中包含數據庫連接信息,session_start();,全局函數等..

+1

謝謝大家的迅速回復,我做了一些改變,包括Session.php,謝謝大家的反饋,我做了一個print_r($ _ SESSION);出口;並發現它實際上讓用戶想到了現在的下一頁,我終於可以晚上睡覺了^ _ ^;感謝您的幫助,我一直在這個圈子裏忙碌了幾天。 – 2013-03-22 01:25:33

+0

沒問題 - 感謝接受答案:)(我的回答:P) – Interwebtual 2013-03-22 01:27:39

3

您在頁面頂部忘記

session_start(); 

+0

他可能已經在1頁的頂部包括了這個,但是因爲它在第二頁上工作,它也必須在頁面的頂部... – Interwebtual 2013-03-22 01:28:49

+0

確實,我通常會創建一個名爲common.php的文件,並將其包含在需要訪問任何數據庫/會話資源的頂部。 – 2013-03-22 01:34:14

3

你缺少

session_start();在會議上。

你也可以改變你的登錄來自:

// Register $myusername, $mypassword and redirect to file "login_success.php" 
$_SESSION["$myusername"]; 
$_SESSION["$mypassword"]; 

到:

$_SESSION['Username'] = $myusername; 
$_SESSION['Password'] = $mypassword; 

然後就可以在其他頁面;執行此:

include "Session.php"; 

session.php文件:

start_session(); 

if (!isset($_SESSION['Username'])) 
{ 
include "Logout.php"; 
exit; 
// session is not set, so enforce logout 
} 
+0

謝謝你的回答,它真的幫了我。現在我只需要回顧使用AJAX,Java,Php和Mysql的數據,不應該太難了吧? :p – 2013-03-22 01:28:23

+0

沒問題,您是否對您的登錄頁面進行了建議更改?不是將用戶名分配給密鑰,而是將密鑰分配給已知名稱和包含特定用戶數據的值? – 2013-03-22 01:33:25

+0

是的,我做了這些改變,我分配給你知道的名字的關鍵像你說的,它向前發展要容易得多,謝謝:) – 2013-03-22 10:34:40