作者jakevin (真。假凱文)
看板PHP
標題[請益] 似乎是SESSION值 無法跨頁傳送
時間Wed Sep 1 21:33:40 2010
Login.php
<?php
if (isset($_SESSION['userid'])){
echo "<p>hi ".$_SESSION['username']."你好阿!!</p>";?>
<form name='formlogout' method='post' action='logout.php'>
<input type='submit' name='button' value='登出' />
</form>
<form name='formupdate' method='post' action='update_user.php'>
<input type='submit' name='button' value='修改會員資料' />
</form>
?>
<?php
}else{
echo "<form name='formlogin' method='post' action='connect.php'>";
echo "密碼:<input type='password' name='pw' size='17'/><br/>";
echo "<input type='submit' name='button' value='登入' /> ";
echo "</form>";
}?>
Login_finish.php
<?php
$id = $_POST['id'];
$pw = md5($_POST["pw"]);
$result = mysql_query($sql);
$row = @mysql_fetch_assoc($result);
if (md5($id)==$row['userno'] && $pw == $row['password']){
$_SESSION['username'] = $row['username'];
$_SESSION['userid'] = $row['userid'];
echo '登入完成!';
echo '<meta http-equiv=REFRESH CONTENT=2;url=Login.php>';
}else{
echo '登入失敗!<br/>';
echo '<meta http-equiv=REFRESH CONTENT=1;url=Login.php>';
}
?>
狀況是
Login.php 地方我會判斷是否有沒有取得到 $_SESSION['userid']
有取得userid 表示登入成功 顯示可以 登出跟修正會員資料的按鈕
沒取得userid 就顯示 帳號密碼的輸入框 跟登入按鈕
請朋友幫我測試 大概10人會有 1人遇到
登入成功後 又還是繼續顯示帳號密碼輸入框 跟登入按鈕
研判是 有取得userid 但沒辦法傳回SESSION 的值過去
PHP.ini 已經設定 SESSION是 auto_star
而且每一頁最前端也有 session_star() 了
請問這樣的問題要怎麼解決呢??
感謝板友幫忙!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.124.75.85
※ 編輯: jakevin 來自: 140.124.75.85 (09/01 21:34)
1F:→ shadowjohn:Login_finish.php 裡面怎沒看到 session_start(); ? 09/01 23:02
2F:推 shadowjohn:然後登入錯誤的話,記得把 session 清掉 09/01 23:04
3F:→ jakevin:session_start(); 已經放在最前面了 我沒放上去 09/01 23:34
4F:→ jakevin:目前還是陸陸續續再不同的使用者 發生同樣的問題 orz 09/02 14:37
5F:→ dctray:我之前有發生過類似是因為產生session的client端和login的 09/11 10:44
6F:→ dctray:主機位置不一樣 當時架構是 前台=>資料處理=>資料庫 妳可以 09/11 10:46
7F:→ dctray:主機放SESSION的資料夾比對一下有錯誤和沒錯誤的SESSION 09/11 10:47