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

说明:

  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 协同对数据库操作的代码,包含用到的代码解释。与上文无直接关系。

<?php
header("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);
// 将所有列和内容的字符集设置为 utf8
mysql_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);
?>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,646评论 4 366
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,979评论 1 301
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,391评论 0 250
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,356评论 0 215
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,740评论 3 293
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,836评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,022评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,764评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,487评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,728评论 2 252
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,200评论 1 263
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,548评论 3 260
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,217评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,134评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,921评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,919评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,766评论 2 274

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,585评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,105评论 18 139
  • 01开放性的坚持自我 要创造个人品牌,就应该给自己预定一个方向,而各方的意见就是为这个方向服务的。如果人云亦...
    Cathy童童阅读 103评论 0 0
  • 1.TTTAttributedLabel里的文字高度计算和普通label的动态高度不同,如果你用普通label的动...
    赵琛阅读 2,155评论 0 1
  • 游逸轩阅读 139评论 0 0