最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • PHP+MySql+PDO实现简单登录、注册

    正文概述 转载于:掘金(魁首)   2021-02-26   499

    php+MySql实现简单登录注册,看了很多简单案例后发现,很少关于使用PDO实现简单登录注册的帖子,要么是Mysql和MySqli实现,就算实现了意义也不大,js就可以做的事情,没必要放到PHP中去,我却偏偏不相信,保留着一股倔劲,简单的实现了登录注册,下面请看代码,有错误的地方希望大佬们指教!

    新建数据库名itcast , 表名user ,执行下面代码

    create table user(
           id int unsigned primary key auto_increment,
           username varchar(10) not null comment '用户名',
           password char(20) not null comment '密码',
           email varchar(40) not null comment '邮箱'
    )charset=utf8;
    
    insert into user (username,password,email) values
    ('张三','123456','zhangsan@qq.com');
    

    目录结构

    PHP+MySql+PDO实现简单登录、注册

    首先从注册前台页面register_html.php开始

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>欢迎注册</title>
    </head>
    <form action="./register.php" method="post">
    <table >
    	<tr><td class="title" colspan="2">欢迎注册新用户</td></tr>
    	<tr><th>用户名:</th><td><input type="text" name="username" /></td></tr>
    	<tr><th>邮箱:</th><td><input type="text" name="email" /></td></tr>
    	<tr><th>密码:</th><td><input type="password" name="password" id="pw1" /></td></tr>
    	<tr><th>确认密码:</th><td><input type="password" id="pw2" /></td></tr>
    	<tr><td colspan="2" class="td-btn">
    	<input type="submit" value="提交注册" class="button" />
    	<input type="button" value="返回登录" class="button" onclick="location.href='login.php'"  />
    	</td></tr>
    </table>
    </form>
    </html>
    

    注册后台页面register.php(注册即是新增)

    <?php 
    header ('Content-type:text/html;charset=utf-8');
    //数据库服务器主机名,端口号,选择的数据库,字符集
    $dsn = "mysql:host=localhost;dbname=itcast;charset=utf8";
    $user = 'root';         //数据库名
    $pwd = 'root';          //数据库密码
    
    try{
        $pdo = new PDO($dsn,$user,$pwd);
        
        //如果post表单不为空
        if(!empty($_POST)){
            
            //声明变量$fields,用来保存字段信息
            $fields = array('username','password','email');
            
            //声明$values,用来保存值信息
            $values = array();
            
            //遍历$fields,获取输入用户名、密码、邮箱的键和值
            foreach($fields as $k=>$v){
                
                $data = isset($_POST[$v]) ? $_POST[$v] : '';
                
                if($data=='') die($v.'字段不能为空!');
                
                //赋值给$fields数组
                $fields[$k] = "$v";
                
                //赋值给$values数组
                $values[] = "'$data'";
                
            }
            //将$fields数组以逗号连接,赋值给$fields,组成insert语句中的字段部分
            //implode — 将一个一维数组的值转化为字符串
            $fields = implode(',', $fields);
            
            //将$values数组以逗号连接,赋值给$values,组成insert语句中的值部分
            $values = implode(',', $values);
            
            //最后把$fields和$values拼接到insert语句中,注意要指定表名
            $sql = "insert into user ($fields) values ($values)";
            
            if($res = $pdo->query($sql)){
                //注册成功,自动跳转到会员中心
                echo '<script>alert("注册成功!");window.location.href="login_html.php";</script>';
            }else{
                die ('注册失败!');
            }
        }
        
    }catch(PDOException $e){
        echo $e->getMessage().'<br>';
        echo $e->getLine().'<br>';
        echo $e->__toString().'<br>';
    }
    define('APP', 'itcast');
    require './register_html.php';
    
    

    登录前台页面login_html.php

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>欢迎登录</title>
    </head>
    <body>
        <form method="post" action="./login.php">
            <table>
            	<tr><td>欢迎登录</td></tr>
            	<tr><th>用户名:</th><td><input type="text" name="username" /></td></tr>
            	<tr><th>密码:</th><td><input type="password" name="password" /></td></tr>
            	<tr><td>
            	<input type="submit" value="登录" />
            	<input type="reset" value="重新填写" />
            	</td></tr>
            </table>
        </form>
    </body>
    </html>
    
    

    登录后台页面login.php

    <?php
    header ('Content-type:text/html;charset=utf-8');
    //数据库相关信息
    $dsn = "mysql:host=localhost;dbname=itcast;charset=utf8";
    $user = 'root';         //数据库名
    $pwd = 'root';          //数据库密码,根据自己的密码更改
    
    try{
        $pdo = new PDO($dsn,$user,$pwd);
        
       //如果表单中不为空
        if(!empty($_POST)){
            
            //从表单中获取数据
            $username = isset($_POST['username']) ? trim($_POST['username']) : '';
            $password = isset($_POST['password']) ? ($_POST['password']) : '';
    
            //执行SQL语句
    		$sql = "select `id`,`password` from `user` where `username`='$username'";
    		
    		if($res = $pdo->query($sql)){          
    				//登录成功,自动跳转到会员中心
    				echo '<script>alert("登录成功");window.location.href="index.php";</script>';
    		}else{
    		    //否则提示登录失败
    		    die('登录失败!');
    		}
        }
    }catch(PDOException $e){
        //这段用于出错的时候,方便告诉我们那里错了
        echo $e->getMessage().'<br>';
        echo $e->getLine().'<br>';      //显示错误所在多少行
        echo $e->__toString().'<br>';
    }
    define('APP', 'itcast');
    require './login_html.php';
    
    ?>
    

    最后是我们登录成功的inex.php页面

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    		<h1>登录成功!</h1>
    </body>
    </html>
    
    

    这里做的并不是很美观,大家可以在这个基础上增加好看的样式,增加两次密码是否相同的判断,使用正则实现注册格式的判断等等,这里就不一一讲了,目的主要是能实现简单的登录注册,嘻嘻!

    输入注册信息

    PHP+MySql+PDO实现简单登录、注册

    点击注册

    PHP+MySql+PDO实现简单登录、注册

    注册成功,自动跳转到登录页面

    PHP+MySql+PDO实现简单登录、注册

    输入刚刚注册的信息

    PHP+MySql+PDO实现简单登录、注册

    点击登录

    PHP+MySql+PDO实现简单登录、注册

    成功跳转到index.php页面

    PHP+MySql+PDO实现简单登录、注册


    起源地下载网 » PHP+MySql+PDO实现简单登录、注册

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元