PHP如何更好更有效實現---使用者註冊頁面

來源:互聯網
上載者:User

當程式員的人應該都去過論壇,都在應該註冊過論壇的使用者吧.論壇上使用者註冊的步驟分為幾部:
第一步 協議頁面, 只有同意這個協議才可以進入下一步註冊
第二步 表單輸入頁面, 輸入使用者的註冊資訊
第三步 註冊結果頁面,提示註冊成功


在實際工作中,假如我們要開發實現這種註冊頁面,要注重很多的問題:

1使用者跳過"第一步",沒有閱讀協議頁面,直接通過第二步的url直接存取表單輸入頁面.
2使用者在完成"第三步"的時候,不停的重新整理頁面,這個使用者輸入的資訊就在每重新整理一次的時候被重新儲存一次
3使用者在完成"第三步"的時候,點擊後退,修改某個資訊後,再次提交.


類似這種得表單在web開發的過程中會經常碰到, 對於第3點, 幾乎目前所有的論壇中都有這個問題存在,;第2點在一些留言板中經常碰到, 但是怎麼作才可以避免上述的問題呢?


今天老闆讓我幫別人做個檔案上傳的東西, 答應任何人來上傳符合要求檔案, 頁面模板已經設計好了, 就是和使用者註冊的步驟是一樣的, 分三步驟. 以前做過類似的東西, 但是防重新整理機制設計的不是很好. 反正今天沒事做, 就稍微研究一下, 看看如何?代碼可以避免上述的問題.
-----------------------------------------------
-----------------------------------------------
下面是個人設計的實現代碼,可以避免上述的問題. 通過瀏覽器訪問register.php,在輸入"使用者名稱"和"地址"的時候, 兩個都不可為空,為空白的時候,會提示錯誤資訊; 當兩個輸入框都不為空白的時候, 可以提交成功,提交成功以後,你再進行重新整理和後退,看看是不是達到了效果了.


檔案一: config.inc.php

<?php

//開始session
session_start();

//設定不進行本機快取
header('Expires: '.date('D,d M Y H:i:s',mktime(0,0,0,1,1,2000)).' GMT');
header('Last-Modified:'.gmdate('D,d M Y H:i:s').' GMT');
header('Cache-control: private, no-cache,must-revalidate');
header('Pragma: no-cache');

?>


檔案二: register.php

<?php

require_once "config.inc.php";

if(isset($_SESSION[step2]) && isset($_POST[step2])) {
//註冊的最後一步
$errorStr = formStep3();
if($errorStr!=null){
require_once('step2.html');
}else{
require_once('step3.html');
unset($_SESSION[step2], $_SESSION[step1]);
}

} else if(isset($_SESSION[step1]) && isset($_GET[step1])) {
//註冊的第二步
require_once('step2.html');
$_SESSION[step2] = 1;

} else {

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.