2013-04-07 17 views
2

ok我有簡單的文本字段輸入用戶/通過記住用戶複選框,但不知何故我不知道我做錯了什麼,當我檢查框時,cookie不會重新創建,並且當我重新訪問時不創建cookie網站的用戶名不會顯示....這是我使用PHP如何記住文本字段,並使用cookie來顯示它下次去網站?

function loginForm($userValue,$checkBox) 
{ 

echo "<form action='index.php' method='get'>"; 
echo "<p>Username: <input type='text' name='user' value='$userValue' /></p>"; 
echo "<p>Password: <input type='password' name='pass' /></p>"; 
echo "<p>Remember my username next time I visit this site <input type='checkbox' name='remember'" . $checkBox . "/></p>"; 
echo "<input type='submit' value='Log In' />"; 
echo "</form>"; 

} 

if((!(isset($_GET["user"]))) && (!(isset($_COOKIE["username"])))) 
{ 
    loginForm('',''); 
} 
if(isset($_GET["remember"])) 
{ 
    setcookie("username",$_GET["user"], time() + 60); 
    loginForm($_COOKIE["username"],"checked"); 
} 

回答

1

你60秒從當前時間的到期日設置您的Cookie。因此,當您重新訪問該網站時可能只是過期了。

2

它看起來像你有一些邏輯錯誤。首先,只要設置了$ _GET [「記住」],您只能檢查是否可以用cookie填寫表單,這可能意味着表單剛剛提交。以下是這可能是一個良好的開端修改後的版本:

function loginForm($userValue,$checkBox) 
{ 

echo "<form action='test.php' method='get'>"; 
echo "<p>Username: <input type='text' name='user' value='$userValue' /></p>"; 
echo "<p>Password: <input type='password' name='pass' /></p>"; 
echo "<p>Remember my username next time I visit this site <input type='checkbox' name='remember'" . $checkBox . "/></p>"; 
echo "<input type='submit' value='Log In' />"; 
echo "</form>"; 

} 

if (!isset($_GET["user"]) && !isset($_COOKIE["username"])) 
{ 
    loginForm('',''); 
} 
else if (isset ($_COOKIE["username"])) 
{ 
    loginform ($_COOKIE["username"], ''); 
} 
if (isset($_GET["remember"])) 
{ 
    setcookie("username",$_GET["user"], time() + 60); 
} 

的大問題,不過,肯定是,你只允許如果表單剛剛提交的cookie來工作。我剛剛發佈的代碼適用於我,並記住我的用戶名。

相關問題