ホームページ >バックエンド開発 >PHPチュートリアル >PHPでユーザーのログインと登録を実装するにはどうすればよいですか? (詳細な例)
この記事では、PHP を使用して簡単なログインと登録機能を実装する方法を説明します。この機能を実現するには、MySql 関連の知識が必要です。
PHP+ を使用する必要があります私の最近の研究では、MySql は単純なログインと登録を実装しています。多くの単純な事例を読んだ後、PDO を介した単純なログインと登録を実装している人はいないか、実装されているとしてもほとんど役に立たないことがわかりました。 PHPでできることは載せる必要はありませんが、意地を張って単純にログインと登録を実装しましたので、間違いがあれば参照してください。 、皆さんが私を啓発できることを願っています!
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');
nbsp;html> <meta> <title>欢迎注册</title>
<?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';
nbsp;html> <meta> <title>欢迎登录</title>
<?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'; ?>
nbsp;html> <meta> <title>Insert title here</title> <h1>登录成功!</h1>
興味がある場合は、「PHP ビデオ チュートリアル」をクリックしてください。学習の PHP について詳しく学びましょう。