php+mysql实现简单登录注册修改密码网页

对于php和mysql的连接在许多blog上都有说明,为了将mysql中的查询,修改,插入等操作掌握,本文介绍了一下如何采用mysql做一个登录注册修改密码的网页。

其中,如下

1.登录-即为对数据库中的内容给予查询,并验证html中的信息与数据库是否匹配;
2.注册-即为对数据库中的内容进行插入,注册帐号与密码;
3.修改密码-即为对数据库中的内容进行修改。

这三个操作,我用了8个php和html文本来建立 具体见代码部分
1.登录的主界面index.html:

<p>
  </p><pre name="code" class="html">
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录注册修改密码系统主页</title>
<style type="text/css">
form {
  text-align: center;
}
</style>
</head>
<body>
  <form action="enter.php" method="post" onsubmit="return enter()">
    用户名<input type="text" name="username" id="username"><br> 密码<input
      type="password" name="password" id="password"><br> <input
      type="submit" value="登录">  <input type="button"
      value="注册" onclick="register();"> 

  </form> 

  <script type="text/javascript">
    function enter()
    {
      var username=document.getElementById("username").value;//获取form中的用户名
      var password=document.getElementById("password").value;
      var regex=/^[/s]+$/;//声明一个判断用户名前后是否有空格的正则表达式
      if(regex.test(username)||username.length==0)//判定用户名的是否前后有空格或者用户名是否为空
        {
          alert("用户名格式不对");
          return false;
        }
      if(regex.test(password)||password.length==0)//同上述内容
      {
        alert("密码格式不对");
        return false;
      }
      return true;
    }
    function register()
    {
      window.location.href="register.html";//跳转到注册页面
    }
  </script>
</body>
</html>

2.登录的后台操作enter.php:

<!doctype html>
<html>
<head>
  <meta charset="UTF-8">
  <title>登录系统的后台执行过程</title>
</head>
<body>
  <?php
    session_start();//登录系统开启一个session内容
    $username=$_REQUEST["username"];//获取html中的用户名(通过post请求)
    $password=$_REQUEST["password"];//获取html中的密码(通过post请求) 

    $con=mysql_connect("localhost","root","root");//连接mysql 数据库,账户名root ,密码root
    if (!$con) {
      die('数据库连接失败'.$mysql_error());
    }
    mysql_select_db("user_info",$con);//use user_info数据库;
    $dbusername=null;
    $dbpassword=null;
    $result=mysql_query("select * from user_info where username ='{$username}' and isdelete =0;");//查出对应用户名的信息,isdelete表示在数据库已被删除的内容
    while ($row=mysql_fetch_array($result)) {//while循环将$result中的结果找出来
      $dbusername=$row["username"];
      $dbpassword=$row["password"];
    }
    if (is_null($dbusername)) {//用户名在数据库中不存在时跳回index.html界面
  ?>
  <script type="text/javascript">
    alert("用户名不存在");
    window.location.href="index.html";
  </script>
  <?php
    }
    else {
      if ($dbpassword!=$password){//当对应密码不对时跳回index.html界面
  ?>
  <script type="text/javascript">
    alert("密码错误");
    window.location.href="index.html";
  </script>
  <?php
      }
      else {
        $_SESSION["username"]=$username;
        $_SESSION["code"]=mt_rand(0, 100000);//给session附一个随机值,防止用户直接通过调用界面访问welcome.php
  ?>
  <script type="text/javascript">
    window.location.href="welcome.php";
  </script>
  <?php
      }
    }
  mysql_close($con);//关闭数据库连接,如不关闭,下次连接时会出错
  ?>
</body>
</html>

3.登录成功后的欢迎界面welcome.php:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>欢迎登录界面</title>
</head>
<body> 

<?php
session_start ();
if (isset ( $_SESSION ["code"] )) {//判断code存不存在,如果不存在,说明异常登录
  ?>
欢迎登录<?php
  echo "${_SESSION["username"]}";//显示登录用户名
  ?><br>
您的ip:<?php
  echo "${_SERVER['REMOTE_ADDR']}";//显示ip
  ?>
<br>
您的语言:
<?php
  echo "${_SERVER['HTTP_ACCEPT_LANGUAGE']}";//使用的语言
  ?>
<br>
浏览器版本:
<?php
  echo "${_SERVER['HTTP_USER_AGENT']}";//浏览器版本信息
  ?>
<a href="exit.php">退出登录</a>
<?php
} else {//code不存在,调用exit.php 退出登录
  ?>
<script type="text/javascript">
  alert("退出登录");
  window.location.href="exit.php";
</script>
<?php
}
?>
<br>
  <a href="alter_password.html">修改密码</a> 

</body>
</html>

4.修改密码的主界面alter_password.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改密码</title>
<style type="text/css">
  form{
    text-align: center;
  }
</style>
</head>
<body>
  <?php
    session_start();
  ?>
  <form action="alter_password.php" method="post" onsubmit="return alter()">
    用户名<input type="text" name="username" id ="username" /><br/> 旧密码<input
      type="password" name="oldpassword" id ="oldpassword"/><br/> 新密码<input
      type="password" name="newpassword" id="newpassword"/><br/> 确认新密码<input
      type="password" name="assertpassword" id="assertpassword"/><br/> <input
      type="submit" value="修改密码" onclick="return alter()">
  </form>
    <script type="text/javascript">
      document.getElementById("username").value="<? php echo "${_SESSION["username"]}";?>"
    </script> 

  <script type="text/javascript">
    function alter() { 

      var username=document.getElementById("username").value;
      var oldpassword=document.getElementById("oldpassword").value;
      var newpassword=document.getElementById("newpassword").value;
      var assertpassword=document.getElementById("assertpassword").value;
      var regex=/^[/s]+$/;
      if(regex.test(username)||username.length==0){
        alert("用户名格式不对");
        return false;
      }
      if(regex.test(oldpassword)||oldpassword.length==0){
        alert("密码格式不对");
        return false;
      }
      if(regex.test(newpassword)||newpassword.length==0) {
        alert("新密码格式不对");
        return false;
      }
      if (assertpassword != newpassword||assertpassword==0) {
        alert("两次密码输入不一致");
        return false;
      }
      return true; 

    }
  </script>
</body>
</html>

5.修改密码的后台操作alter_password.php:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>正在修改密码</title>
</head>
<body>
  <?php
  session_start ();
  $username = $_REQUEST ["username"];
  $oldpassword = $_REQUEST ["oldpassword"];
  $newpassword = $_REQUEST ["newpassword"]; 

  $con = mysql_connect ( "localhost", "root", "root" );
  if (! $con) {
    die ( '数据库连接失败' . $mysql_error () );
  }
  mysql_select_db ( "user_info", $con );
  $dbusername = null;
  $dbpassword = null;
  $result = mysql_query ( "select * from user_info where username ='{$username}' and isdelete =0;" );
  while ( $row = mysql_fetch_array ( $result ) ) {
    $dbusername = $row ["username"];
    $dbpassword = $row ["password"];
  }
  if (is_null ( $dbusername )) {
    ?>
  <script type="text/javascript">
    alert("用户名不存在");
    window.location.href="alter_password.html";
  </script>
  <?php
  }
  if ($oldpassword != $dbpassword) {
    ?>
  <script type="text/javascript">
    alert("密码错误");
    window.location.href="alter_password.html";
  </script>
  <?php
  }
  mysql_query ( "update user_info set password='{$newpassword}' where username='{$username}'" ) or die ( "存入数据库失败" . mysql_error () );//如果上述用户名密码判定不错,则update进数据库中
  mysql_close ( $con );
  ?> 

  <script type="text/javascript">
    alert("密码修改成功");
    window.location.href="index.html";
  </script>
</body>
</html>

6.注册帐号的主界面register.html:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>注册系统</title>
<style type="text/css">
form {
  text-align: center;
}
</style>
</head>
<body> 

  <form action="register.php" method="post" name="form_register"
    onsubmit="return check()">
    用户名<input type="text" name="username" id="username"><br>
    密码<input type="password" name="password" id="password"><br>
    确认密码<input type="password" name="assertpassword" id="assertpassword"><br>
    <input type="submit" value="注册"> 

  </form> 

  <script type="text/javascript">
    function check() {
      var username=document.getElementById("username").value;
      var password=document.getElementById("password").value;
      var assertpassword=document.getElementById("assertpassword").value;
      var regex=/^[/s]+$/; 

      if(regex.test(username)||username.length==0){
        alert("用户名格式不对");
        return false;
      }
      if(regex.test(password)||password.length==0){
        alert("密码格式不对");
        return false;
      }
      if(password!=assertpassword){
        alert("两次密码不一致");
        return false;
      }
    }
  </script>
</body>
</html>

7.注册帐号的后台操作register.php:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
  <title>注册用户</title>
</head>
<body>
  <?php
    session_start();
    $username=$_REQUEST["username"];
    $password=$_REQUEST["password"]; 

    $con=mysql_connect("localhost","root","root");
    if (!$con) {
      die('数据库连接失败'.$mysql_error());
    }
    mysql_select_db("user_info",$con);
    $dbusername=null;
    $dbpassword=null;
    $result=mysql_query("select * from user_info where username ='{$username}' and isdelete =0;");
    while ($row=mysql_fetch_array($result)) {
      $dbusername=$row["username"];
      $dbpassword=$row["password"];
    }
    if(!is_null($dbusername)){
  ?>
  <script type="text/javascript">
    alert("用户已存在");
    window.location.href="register.html";
  </script>
  <?php
    }
    mysql_query("insert into user_info (username,password) values('{$username}','{$password}')") or die("存入数据库失败".mysql_error()) ;
    mysql_close($con);
  ?>
  <script type="text/javascript">
    alert("注册成功");
    window.location.href="index.html";
  </script> 

</body>
</html>

8.非法登录时退出登录的操作exit.php:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<?php
session_start ();//将session销毁时调用destroy
session_destroy ();
?>
<script type="text/javascript">
 window.location.href="index.html";
</script>
</body>
</html>

9.mysql数据库搭建部分

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • MySQL密码正确却无法本地登录的解决方法

    MySQL root密码正确,却怎么也无法从本地登录MySQL,提示 复制代码 代码如下: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 这里后来经高人指点才发现mysql库中的user表缺少一个root指向host:localhost的数据项,只有一个root指向host:主机名的数据项,故怎么也无法利用root账户登录MySQL. 总结一点就是root账户缺失了访问loc

  • phpmyadmin报错:#2003 无法登录 MySQL服务器的解决方法

    通过phpmyadmin连接mysql数据库时提示:"2003 无法登录 MySQL服务器"...很明显这是没有启动mysql服务,右击我的电脑-管理-找到服务,找到mysql启动一下,,是不是启动有报错: "无法启动mysql服务 错误1067:进程意外中止 " 然后就baidu google吧,多是说禁远程连接,要改my.ini文件,也有说防火墙的,总之对症下药. 不过同样的报错,导致它的原因并不是都是同样的.这就是看自己的经验和对问题的钻研了,好了不多 说了,

  • php+MySQL实现登录时验证登录名和密码是否正确

    直入主题,先看php校验登录名和密码是否正确的代码: <?php $servername = "服务器名"; $username = "账户名"; $password = "密码"; $dbname = "数据库名"; ?> <?php // Session需要先启动. session_start(); //判断uname和pwd是否赋值 if(isset($_POST['uname']) &&

  • MySql登录时闪退的快速解决办法

    之前mysql用着好着,可是今天在启动mysql后输入密码出现了闪退,在任务管理器中发现mysql服务没有启动,当手动启动时提示拒绝访问.在网上查找原因发现问题所在. 问题原因:mysql服务没有安装. 解决办法: 在cmd操作下找到mysql的安装目录(注意要用管理员身份运行cmd) 在 mysql bin目录下 以管理员的权限 执行 mysqld -install命令 然后仍然以管理员的权限 net start mysql 开启Mysql服务了. 输入mysql -u root登录mysql

  • 解决 phpmyadmin #2002 无法登录 MySQL 服务器

    解决 .#2002 无法登录 MySQL 服务器 将config.sample.inc.php复制成config.inc.php 出现这个错误,表示没有连接到数据库.修改config.inc.php文件, 复制代码 代码如下: 将$cfg['Servers'][$i]['host'] = 'localhost'; 改为$cfg['Servers'][$i]['host'] = '127.0.0.1'; 或者 修改 php.ini : mysql.default_socket = /tmp/mys

  • mysql登录警告问题的解决方法

    一.前言 我们在登录mysql的时候经常会看到一句警告: Warning: Using a password on the command line interface can be insecure. 这让人看着很不舒服,并且当在写脚本的时候这个警告输出到屏幕上更让人感觉难受. 二.解决办法 这个警告是mysql自带的,他是想告诉你在屏幕上直接输入mysql密码并显示是不安全的. 1.解决办法一(看一下就行没有任何用) 这个解决办法相对简单,在你登录mysql的时候-p后面不紧跟任何字符串.

  • mysql登录遇到ERROR 1045问题解决方法

    在Windows系统中,mysql登录的时候出现了这样的错误:ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES) 从网上找了一些办法,终于得到了解决,现在记录一下具体的解决方法: 复制代码 代码如下: c:\>sc stop mysql c:\>mysqld --defaults-file="C:\MySQL\MySQLServer6.0\my.ini" --console -

  • 关于MYSQL 远程登录的授权方法 命令

    方法一.本地登入mysql,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改为"%" #mysql -u root -proot mysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user;

  • linux下讲解MySQL安装与登录方法

    Fedora5下配置MySQL (很有参考价值的 MySQL资料 包括如何在linux文件系统移动MySQL数据库的位置) 一.下载MySQL安装文件 完全安装MySQL需要下面6个文件: MySQL-server-community-5.1.26-0.rhel4.i386.rpm MySQL-client-community-5.1.26-0.rhel4.i386.rpm MySQL-shared-community-5.1.26-0.rhel4.i386.rpm MySQL-devel-co

  • mysql登录报错提示:ERROR 1045 (28000)的解决方法

    本文分析了mysql登录报错提示:ERROR 1045 (28000)的解决方法.分享给大家供大家参考,具体如下: 一.问题: 公司linux系统的mysql数据库root用户设置过密码,但常常用命令'mysql -u root -p'登录报错,有时又能登录.登录报错信息为: [root@localhost ~]# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localho

随机推荐