2013-07-27 47 views
0

當用戶名/密碼與數據庫值匹配時,這是一個登錄表單,我們將其重定向到login_success.php頁面。

Checklogin.php

<?php 
include 'config.php'; 

// username and password sent from form 
$myusername=$_POST['email']; 
$mypassword=$_POST['password']; 


// 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 drsignup WHERE email='$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['email']=$myusername; 
$_SESSION['password']=$mypassword; 
header("location:login_success.php"); 
} 
else { 
echo "Wrong Username or Password"; 
} 
?> 

Login_success.php

這種形式顯示在誰和會話starts.In下面的代碼記錄用戶一個值得歡迎的消息,我不能夠使用歡迎字符串獲取$ _SESSION ['email']值並顯示未定義的索引電子郵件。

我試着從session_id()收集session_id;這個功能可以提供像e9ubrn9v239o60tfalag6e6kt4這樣的價值。 請讓我知道爲什麼我不能在這裏得到電子郵件ID。我可以如何將我的會話變量存儲在我的所有PHP頁面上。

<?php 
session_start(); 

echo session_id(); 
SESSION_WRITE_CLOSE(); 

if(isset ($_SESSION['email'])) 
{ 
echo "Welcome $_SESSION['email']"; 
} 
else 
{ 
header("location:Drlogin.php"); 
} 
?> 
+1

第一頁上的'session_start()'在哪裏? – deceze

+0

將'session_start()'添加到配置文件。 –

+1

[PHP會話變量不會傳到我的登錄頁面,但會話ID是]的可能重複(http://stackoverflow.com/questions/415005/php-session-variables-not-carrying-over-to-my在頁面中,但會話ID是) – mario

回答

3

您需要在Checklogin.php添加session_start()。您需要在每個使用會話的頁面上開始會話。

+0

它工作nycly ... –