2011-10-09 51 views
0

我有兩段代碼,一段是前端網站php代碼,用於呈現前端網頁,另一段代表後端api PHP代碼。在我的前端網站代碼中,我有session_start();session_id()在PHP上不輸出任何內容

我有一塊,一旦用戶登錄,然後我給他或她一個的SessionIDsessionid();

然而,當我使用$sessionid = session_id();echo $sessionid後端API代碼,什麼也沒有輸出。

$user="root"; 
$password=""; 
$database="test"; 
mysql_connect('localhost',$user,$password); 
@mysql_select_db($database) or die("Unable to select database"); 

$username = $first_param; 
$username = str_replace("UserName=", "", $username); 
$password = $second_param; 
$password = str_replace("Password=", "", $password); 
$query = "SELECT * FROM `user` WHERE username ='$username' AND password = '$password' "; 
$result=mysql_query($query); 
$num=mysql_num_rows($result); 

if (debug) { 
    echo "<br>"; 
    echo "--------the num of login is ----" .$num; 
} 

if ($num <1) { 

} 
else { 
    $sesid=session_id(); 
    if (debug) { 
    echo "<br>"; 
    echo "-----login sessionid is------" .$sesid; 
    echo "<br>"; 
    } 
    $query = "UPDATE `user` SET sessionid='$sesid' WHERE username ='$username' AND password = '$password'"; 
    mysql_query($query); 
} 
+0

你的session_start()在哪裏? –

回答

1

該函數被稱爲session_id(),注意下劃線。

此外,您的更新代碼似乎缺少呼叫session_start()。如果這是另一個被調用的另一個session_start的PHP文件,則需要在該文件的開始處再次調用它。

2

其實,當你嘗試這一點,它必須工作100%

<?php 
    session_start(); //This must be called before the session_id(); 
    $sessionid = session_id(); 
    echo $sessionid; 
?> 
3

確保代碼運行SESSION_ID()是在同一頁上或包含在頁面運行在session_start()。如果不是,則必須再次運行session_start()以獲取新頁面的會話。

+0

所以你可以使用盡可能多的session_start(),你想要沒有不良影響? – lilzz