PHP+Mysql 实现用户登录,注册界面

目标: 实现用户的登录 、注册 、修改密码、重置密码、添加书签,显示书签,删除书签 等功能

进一步目标: 实现对 用户输入信息的控制,具体表现在 对注册信息、登录信息的 的过滤,具有简单的防sql注入的功能

 

首先明确结构:把自定义的函数集中放在两个脚本 bm_functions.php 和 output_functions.php 中

完成后的各个界面:

登录界面:

注册界面:

用户首页:

还有 更改密码界面 、 添加书签界面、重置密码界面、以及退出登录界面,不再上图

需要的源代码:

需要源代码的同学可以 去网盘里下载:

链接:链接: https://pan.baidu.com/s/1QLJNy7OuVzpSLZXRLNbZAw 提取码: xvk3

 

首先肯定是要建立数据库了,建立数据库的shell脚本压缩包里面也有,打开cmd用mysql执行

注意:里面的sql文件为  创建 数据库的shell脚本  需要打开cmd 用 mysql 去执行脚本程序,生成 相应的数据库(具体操作自行百度)

部分源码:(其中诸多的函数都包含在两个自定义的函数库里面了)

login.php


<?php
 require_once('bm_functions.php');
 do_html_header('');
?>

<body>
<ul>
    <li><h3>这是我完成的第一个实战项目!</h3></li>
    <li><h3>看起来很简单,实际上手却不简单(包括14个php文件和1个sql文件,近1000行的代码)</h3></li>
    <li><h3>功能包括:用户登录、注册、修改密码、重置密码、添加书签、显示书签、删除书签和一些简单的 用户名、密码、邮件地址、书签URL地址的过滤!</h3></li>
    <li><h3>因为HTML学的浅,CSS还没开始学,所以页面没有美化!</h3></li>
</ul>
<br>
<br>

<form method="post" action="member.php" >
    <table bgcolor="#cccccc" align="center" height="200" width="600" >
        <tr>
            <td colspan="2" align="right"><h2>登录</h2></td>
        <tr>
            <td><b>账  户:</b></td>
            <td><input type="text" name="username" size="30" maxlength="16"/></td>
            <td>(由汉字、数字、字母、下划线构成,6~16个字符)</td></tr>
        <tr>
            <td><b>密  码:</b></td>
            <td><input type="password" name="passwd" size="30" maxlength="16"/></td>
            <td>(由数字、字母、下划线构成,6 ~ 16个字符)</td></tr>
        <tr>
            <td colspan="2" align="center">
                <input type="submit" value="submit"/></td></tr>
        <tr>
            <td colspan="2"><a href="forgot_form.php">忘记密码 ?</a></td>
            <td colspan="2"><a href="register_form.php">还没有账户 ?</a></td>
        </tr>
    </table>
</form>
</body>

登录界面后台处理程序+用户首页   member.php

<?php

//导入函数库
require_once('bm_functions.php');
session_start();

$username = $_POST['username'];
$passwd = $_POST['passwd'];

if ($username && $passwd) {
  try  {

      if(!preg_match("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]{6,16}+$/u",$username)){
          throw new Exception('用户名包含非法字符或长度错误,请重新输入!');
      }
      if(!preg_match("/^[A-Za-z0-9_]{6,16}+$/u",$passwd)){
          throw new Exception('密码包含非法字符或长度错误,请重新输入!');
      }
      //验证用户信息
      login($username, $passwd);
      //将用户信息存入会话
      $_SESSION['valid_user'] = $username;
  }
  catch(Exception $e)  {
    do_html_header('Problem:');
    echo $e->getMessage();
    do_html_url('login.php', '重新登陆');
    do_html_footer();
    exit;
  }
}

//登陆成功后
do_html_header('Home');
//验证会话注册信息
check_valid_user();
//输出所有书签
if ($url_array = get_user_urls($_SESSION['valid_user'])) {
  display_user_urls($url_array);
}
//输出页面底部的快捷菜单
display_user_menu();
?>

注册表单:register_form.php

<?php
 require_once('bm_functions.php');
 do_html_header('用户注册');

?>
<form method="post" action="register_new.php">
    <table bgcolor="#cccccc" align="center" width="600">
        <tr>
            <td colspan="2" align="right"><h2>用户注册</h2></td></tr>
        <tr>
            <td><b> 用户名: </b></td>
            <td><input type="text" name="username" size="30" maxlength="30"/></td>
            <td>(由数字、字母、下划线构成,16个字符以内)</td></tr>
        <tr>
            <td><b> 密码: </b></td>
            <td ><input type="password" name="passwd" size="30" maxlength="30"/></td>
            <td>(由数字、字母、下划线构成,6 ~ 16个字符 )</td></tr>
        <tr>
            <td><b> 确认密码: </b</td>
            <td><input type="password" name="passwd2" size="30" maxlength="30"/></td>
            <td>(由数字、字母、下划线构成,6 ~ 16个字符)</td></tr>
        <tr>
            <td><b> Email 地址: </b</td>
            <td><input type="text" name="email" size="30" maxlength="100"/></td>
            <td>(email 有过滤呦!)</td></tr>
        <tr>
            <td colspan=2 align="right">
                <input type="submit" value="Submit"></td></tr>

    </table>
</form>
<?php
do_html_footer();
?>

注册后台处理程序: register_new.php

<?php
 //导入自定义的函数库
  require_once('bm_functions.php');

  $email=$_POST['email'];
  $username=$_POST['username'];
  $passwd=$_POST['passwd'];
  $passwd2=$_POST['passwd2'];
  // 开启会话
  session_start();
  try   {
    // 调用函数检查表单是否填写
      if (!filled_out($_POST)) {
      throw new Exception('您的表单没有填写完,请继续填写!');
      }
      //过滤用户名
      if(!preg_match("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]{6,16}+$/u",$username)){
          throw new Exception('用户名包含非法字符或长度错误,请重新输入!');
      }

      // 过滤密码
      if ($passwd !== $passwd2) {
          throw new Exception('两次输入的密码不一致,请重新输入!');
      }
      if(!preg_match("/^[A-Za-z0-9_]{6,16}+$/u",$passwd)){
          throw new Exception('密码包含非法字符或长度错误,请重新输入!');
      }
      if(!preg_match("/^[A-Za-z0-9_]{6,16}+$/u",$passwd2)){
          throw new Exception('密码包含非法字符或长度错误,请重新输入!');
      }
      // 过滤邮件地址
      if (!valid_email($email)) {
      throw new Exception('这不是一个有效的邮件地址,请重新填写!');
      }

      // 调用自定义函数向数据库插入注册信息
      register($username, $email, $passwd);
      // 保存用户会话信息
      $_SESSION['valid_user'] = $username;


      do_html_header('Registration successful');
      echo '注册成功!开始你的征程吧!';
      do_html_url('member.php', '重新登陆');


  }
  catch (Exception $e) {
     do_html_header('Problem:');
     echo $e->getMessage();
     do_html_footer();
     exit;
  }
?>

 

新手小白做的第一个项目,代码诸多缺漏,不喜勿评。

 

  • 46
    点赞
  • 453
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值