仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1997|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网页设计php若何更好更无效的完成-----用户注册...

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:29:16 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我先把我自己学习PHP的过程做一下概括:页面|用户注册   当法式员的人应当都去过服装论坛,都在应当注册过服装论坛的用户吧.服装论坛上用户注册的步调分为几部:
第一步 \ 协定页面, 只要赞同这个协定才可以进入下一步注册
第二步 \ 表单输出页面, 输出用户的注册信息
第三步 \ 注册了局页面,提醒注册胜利
在实践任务中,假如咱们要开辟完成这类注册页面,要注重良多的成绩:
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 {
    //注册的第一步
    require_once('step1.html');
    $_SESSION[step1] = 1;
}
//判别用户提交的表单的数据的 正确性 和 保留提交数据 的函数
function formStep3(){
    $errors = array();
    $errorStr = null;
    if(strlen($_POST[username])<1) $errors[] = "用户名的长度不克不及为空";
    if(strlen($_POST[address])<1) $errors[] = "地址的长度不克不及为空";
    if(sizeof($errors)>0){
       $errorStr .= "<br><font color=\"red\" size=\"2\">";
       $errorStr .= "信息输出毛病:";
       foreach($errors as $error)
               $errorStr .= "<li>$error</li>";
       $errorStr .= "</font><br><br>";
    }else{
        //用来保留用户输出的信息到数据库或其他中央
        //这个保留的进程就略了
    }
    return $errorStr;
}
?>

模板文件一: step1.html
<font size="2"><strong>步调一 浏览《章程》</strong></font><br>
<textarea name="textarea" cols="20" rows="4" wrap="VIRTUAL">
第一条 不抽烟
第二条 不饮酒
第三条 不吃饭
</textarea>
<form name="form3" method="get" action="works.php"&
gt;
<input type="hidden" name="step1" value="1">
<input type="submit" value="我赞同">
<input type="button" value="我分歧意" >
</form>


模板文件二: step2.html
<strong><font size="2">步调二 提交挂号表</font></strong><br>
<form method="post" action="works.php">
<?=$errorStr ?>
<input type="hidden" name="step2" value="1">
输出挂号名:<input type="text" name="username" value="<?=htmlspecialchars($_POST[username]) ?>"><br>
输出地址:<input type="text" name="address" value="<?=htmlspecialchars($_POST[address]) ?>"><br>
<input type="submit" name="Submit4" value="提交">
</form>

模板文件三: step3.html
<font size="2"><strong>步调三 提交胜利</strong></font>
  在这里想谈谈自己这六个多月的PHP学习心得,希望对给比我还新的新手们有所帮助,讲的不是很深刻,甚至有的想法可能是错误的,希望不要误导新人才好,大家要有自己的主见。
海妖 该用户已被删除
沙发
 楼主| 发表于 2015-4-7 15:50:29 | 显示全部楼层
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-23 02:50

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表