我創建一個登錄表單中的index.php和形式的作用是loginform.php,所以我要在功能記得我複選框在登錄表單中添加「記住我」功能在PHP中。 this is loginform image如何使用PHP
如何使用PHP
回答
原始腳本
形式
> <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
> Username: <input type="text" name="username" maxlength="40"> Password:
> <input type="password" name="pass" maxlength="50"> <input
> type="submit" name="submit" value="Log in"> </form>
一個非常簡單的登錄表單與用戶名,密碼,當然還有一個提交按鈕領域。在這一點上我還應該提到,爲了簡化本教程,我使用「PHP_SELF」(表單動作代碼包含在同一文件中)。我建議將所有腳本保存在單獨的文件中以供實際開發。
的PHP
出於安全原因,所以我不放棄我所有的祕密,我不會在這裏分享整個登錄腳本。如果你仍然在閱讀本教程,我假設你對PHP有一定的瞭解,並且確實需要一個你正在嘗試改進的登錄腳本,所以這不應該是一個問題。
一次,我已經連接到我的數據庫,並進行了我的驗證檢查我繼續使用下面的代碼登錄校驗的用戶的:
$hour = time() + 3600;
setcookie('ID_my_site', $_POST['username'], $hour);
//then redirect them to the members area
header("Location:example-page.php");
以上我簡單地設置兩個cookie每次持續一小時一個用於用戶名,一個用於密碼,並將它們重定向到成員區域。
添加記得我的功能
形式
首先,我們需要真正爲我們的形式,其還記得我複選框。添加這使得我們的形式是這樣的:
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
Username:
<input type="text" name="username" maxlength="40">
Password:
<input type="password" name="pass" maxlength="50">
<input type="checkbox" name="remember" value="1">Remember Me
<input type="submit" name="submit" value="Log in">
</form>
的PHP
現在我們需要讓這個複選框做一些事情。也就是說,在選中時,請記住用戶的用戶名,並將其放置在每次對登錄頁面的相應訪問的用戶名字段中。爲此,我決定使用cookie。我無法使用上面設置的「ID_my_site」用戶名cookie,因爲每次用戶註銷時都會殺死它。該解決方案是創建一個名爲「記住」這也存儲了用戶名,像這樣一個額外的cookie:
$year = time() + 31536000;
setcookie('remember_me', $_POST['username'], $year);
上面我們已經加入這一額外的cookie,持續了一年,所以當它在用戶登錄創建一個附加的cookie保存用戶的用戶名。但目前尚未使用。更改:
<input type="text" name="username" maxlength="40">
到:
<input type="text" name="username" maxlength="40" value="<?php
echo $_COOKIE['remember_me']; ?>">
在我們的登錄表單
現在將存儲該用戶名的文本字段爲今後的訪問:
我們還沒有完成,但。目前,代碼正在爲每個用戶存儲這些信息。我們希望它只記住專門請求此功能的用戶。爲此,我們在創建其他Cookie之前進行簡單的檢查。此檢查會查看是否記住我的複選框已被選中,並且只會創建新的cookie(如果有)。像這樣:
if($_POST['remember']) {
setcookie('remember_me', $_POST['username'], $year);
}
elseif(!$_POST['remember']) {
if(isset($_COOKIE['remember_me'])) {
$past = time() - 100;
setcookie(remember_me, gone, $past);
}
}
上面的代碼也能處理,其中一個cookie存在的情況下,但用戶已經確定了,他們不再希望通過在過去塞汀任何現有的cookie的時間記住,本質殺死他們。
進一步改進
上面的代碼的確沒有達到這個教程的主要目的,記住用戶在日誌中用戶名的形式時,他們提出要求。但是,爲了進一步提高可用性,我希望在用戶請求記住時自動檢查複選框,而當用戶沒有記住時則不選中。添加到我們的表格給我們我們的最終形式代碼:
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
Username:
<input type="text" name="username" maxlength="40" value="<?php
echo $_COOKIE['remember_me']; ?>">
Password:
<input type="password" name="pass" maxlength="50">
<input type="checkbox" name="remember" <?php if(isset($_COOKIE['remember_me'])) {
echo 'checked="checked"';
}
else {
echo '';
}
?> >Remember Me
<input type="submit" name="submit" value="Log in">
</form>
- 1. 安卓:如何使用PHP使用PHP
- 2. 如何使用PHP
- 3. 如何使用PHP
- 4. 如何使用PHP
- 5. 如何使用PHP
- 6. 如何使用PHP
- 7. 如何使用PHP
- 8. 如何使用PHP
- 9. 如何使用PHP
- 10. 如何使用php
- 11. 如何使用PHP
- 12. 如何使用PHP
- 13. 如何使用php
- 14. 如何使用PHP
- 15. 如何使用PHP
- 16. 如何使用PHP
- 17. 如何使用php
- 18. 如何使用PHP
- 19. 如何使用php
- 20. 如何使用PHP
- 21. 如何使用php
- 22. 如何使用PHP
- 23. 如何使用PHP
- 24. 如何使用PHP
- 25. 如何使用PHP
- 26. 如何使用PHP
- 27. 如何使用Php
- 28. 如何使用PHP
- 29. 如何使用PHP
- 30. 如何使用php
請參考它被複制的來源。 –
謝謝你提供的東西和指導 – arshad