Rumah  >  Artikel  >  pembangunan bahagian belakang  >  用 php 及 SQL 实现简单的注册及登录效果

用 php 及 SQL 实现简单的注册及登录效果

WBOY
WBOYasal
2016-06-20 12:26:561160semak imbas

说明:

  1. 本方法只是进行基本的原理讲解,并不可用做实际项目运用。
  2. 在阅读本方法前应阅读:PHP:注册信息存储/登录信息验证基本原理,一些重复操作将不再注明。
  3. 系统运行环境应已调试完毕,可进行数据库操作。

一. 注册功能

1. HTML(register.html)

<!DOCTYPE html><html> <head>  <meta charset="UTF-8">  <title>Register</title> </head> <body>  <form action="registerHandler.php" method="post">   注册用户:<input type="text" name="user"/><br>   注册密码:<input type="text" name="pass"/><br>   <input type="submit" value="注册"/>  </form> </body></html>

2. php(registerHandler.php)

首先应进行数据库的创建,下面代码在创建完成后删除即可,否则反复创建,会反复提示创建失败,影像使用效果。

<?php $result = mysql_query("create database `sqlTest` character set 'utf8' collate 'utf8_general_ci' "); if ($result) echo "创建成功"; else echo "创建失败" . $result;?>
<?php header("Content-type:text/html;charset=utf-8"); $user = $_POST["user"]; $pass = $_POST["pass"]; $link = mysql_connect("localhost", "root"); // 先选择了这个数据库进行操作 mysql_select_db("N_&_P", $link); // 创建表 $result = mysql_query("create table if not exists `N_&_P` (username  varchar(255) primary key, password text) default charset=utf8", $link); mysql_query("set names utf8", $link); if ($result) {  echo "成功";  $r = mysql_query("insert into `N_&_P` values ('{$user}', '{$pass}')");  if ($r) echo "成功" . "<hr>";  else echo "失败" . "<hr>"; }?>

通过以上代码,多次输入可在表单 N_&_Q 中创建如图的数据 待登录时可做验证使用

二. 登录功能

1. HTML(login.html)

<!DOCTYPE html><html> <head>  <meta charset="UTF-8">  <title>Register</title> </head> <body>  <form action="loginHandler.php" method="post">   登录用户:<input type="text" name="user"/><br>   登录密码:<input type="text" name="pass"/><br>   <input type="submit" value="登录"/>  </form> </body></html>

2. php(loginHandler.php)

<?php header("Content-type:text/html;charset=utf-8"); $user = $_POST["user"]; $pass = $_POST["pass"]; $link = mysql_connect("localhost", "root"); mysql_select_db("N_&_P", $link); $re = mysql_query("select * from `N_&_P` where username = '{$user}' and password = '{$pass}'"); $obj = mysql_fetch_object($re); if ($obj) echo "登录成功了!"; else echo "登录失败了!";?>

三. 代码解释

在这里放一整段 php 与 SQL 协同对数据库操作的代码,包含用到的代码解释。与上文无直接关系。

<?phpheader("Content-type:text/html;charset=utf-8");// 数据库操作// 1. 打开数据库,进行数据库链接// 参数1: 数据库的位置:localhost// 参数2:默认的用户名:root 还有密码,因为是默认的,所以没有密码$link = mysql_connect("localhost", "root");//// 2. 创建数据库// 使用 SQL 语句,进行创建数据库sqlTest,并且选取了不能出现乱码的字符集// 只有第一次创建是成功的,再刷新就是失败的,因为已经有重名数据库了// 已经创建完了,就给注了,不然来会提示创建失败也是很烦人的//$result = mysql_query("create database `sqlTest` character set 'utf8' collate 'utf8_general_ci' ");//if ($result) {// echo "创建成功";//} else {// echo "创建失败" . $result;//}////// 选择数据库// 不填也可以,语句会选最近的进行选择,但是不推荐mysql_select_db("sqlTest", $link);// 创建表 text不可以设置为主键// 在数据库中,执行 sql 语句,创建表$result = mysql_query("create table if not exists `AAA` (id integer primary key,name text) default charset=utf8", $link);// 将所有列和内容的字符集设置为 utf8mysql_query("set names utf8", $link);if ($result) { echo "成功"; $r = mysql_query("insert into `AAA` values (1, 'aa')"); if ($r) {  echo "成功" . "<hr>"; } else {  echo "失败" . "<hr>"; } // 查询语句(select) $re = mysql_query("select * from `AAA`"); // mysql_fetch_object($result); // 每次都从结果中取出一条数据(对象的形式) // mysql_fetch_array($result); // 以数组的形式(索引和关联) while ($obj = mysql_fetch_object($re)) {  // 每次取出一个对象  var_dump($obj);  echo '<hr>'; }} else { echo "失败";}// 如果要让文本类型当主键,必须要指定文本的长度// 推荐适用类型:vasrchar// sql 举例:// create table xxx(username varchar(255) primary key);?>
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn