Web表单与会话技术_用户注册

1、创建用户表

create table `user`(
	`id` int unsigned primary key auto_increment,
	`username` varchar(10) not null unique,
	`password` char(32) not null,
	`email` varchar(40) not null
)charset=utf8;

2、编写用户注册页面(register.html)

判断密码的两次输入是否一致,可以使用JavaScript实现。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>用户注册</title>
</head>
<body>
<form action="./register.php" method="post">
    <table>
        <tr><th>用户名</th><td><input type="text" name="username" placeholder="请输入用户名"/></td></tr>
        <tr><th>邮箱</th><td><input type="text" name="email" placeholder="请输入邮箱"/></td></tr>
        <tr><th>密码</th><td><input type="password" name="password" placeholder="请输入密码"/></td></tr>
        <tr><th>确认密码</th><td><input type="password" placeholder="请再次输入密码"/></td></tr>
        <tr><td colspan="2">
            <input type="submit" value="提交注册"/>
            <input type="reset" value="重新填写"/>
        </td></tr>
    </table>
</form>
</body>
</html>

3、编写用户注册功能(register.php)。接收表单数据,将表单数据保存到数据库中

<?php
header('Content-Type:text/html; charset=utf-8');
require '../chapter3/public_function.php';
/*
//获取表单数据,注册人的IP地址、浏览器和请求来源
echo '<h2>表单数据:</h2>';
echo '<p>用户名:'.$_POST['username'].'</p>';
echo '<p>密码:'.$_POST['password'].'</p>';
echo '<p>邮箱:'.$_POST['email'].'</p>';
echo '<p>IP地址:'.$_SERVER['REMOTE_ADDR'].'</p>';
echo '<p>浏览器环境:'.$_SERVER['HTTP_USER_AGENT'].'</p>';
echo '<p>请求来源:'.$_SERVER['HTTP_REFERER'].'</p>';
*/

//连接数据库,设置字符集,选择数据库
dbInt();
//接收表单数据
$username=$_POST['username'];
$password=$_POST['password'];
$email=$_POST['email'];
//过滤用户输入数据
$username=safeHandle($username);
$email=safeHandle($email);

//判断用户名是否已经存在
$sql="select `id` from `user` where `username`='$username'";
$res=query($sql);
$res=mysql_fetch_row($res);
if(!empty($res)){
    //用户名已存在,不允许注册,停止运行程序
    die('用户名已存在,请更换用户名。');
}else{
    //用户名不存在,可以注册。
    $password=md5($password);//使用MD5增强密码安全性
    //拼接插入数据的SQL语句
    $sql="insert into `user` (`username`,`password`,`email`) values ('$username','$password','$email')";
    $res=query($sql);
    echo $username.',您已成功注册。';
}

4、知识点

(1)HTTP协议

(2)HTTP请求方式

GET方式(URL):

<a href="#"?参数名=参数值&参数名=参数值></a>

“?”后的内容就是参数信息,参数由参数名和参数值组成,多个参数之间用“&”分隔。

对普通用户而言,使用GET方式提交的数据是可见的。

POST方式(Web表单):

<form method="post">

......

</form>

当省略method属性时,表单默认以GET方式提交。

对普通用户而言,使用POST方式提交的数据是不可见的。

GET方式传递数据大小受限,POST方式传递数据大小理论上不受限。

POST请求方式比GET请求方式安全,POST方式传递的参数隐藏在实体内容中,GET方式传递的参数会在URL中明文显示。

(3)获取表单数据

通过GET方式传递的数据会保存在$_GET数组中,通过POST方式传递的数据会保存在$_POST数组中。

判断是否有表单通过POST方式提交:

if(empty($_POST)){//是空数组,说明没有表单提交}else{//非空数组,说明有表单提交}

查看通过表单提交的数据:

var_dump($_POST);

查看某字段的值:

echo $_POST['字段'];

(4)超全局变量

$_GET获取由HTTP GET方式提交至PHP脚本的变量
$_POST获取由HTTP POST方式提交至PHP脚本的变量
$_FILES获取由HTTP POST文件上传方式提交至PHP脚本的变量
$_SERVER获取当前服务器的信息,以及HTTP的请求信息
$_COOKIE获取由HTTP提交至PHP脚本的Cookie信息
$_SESSION获取或设置用户的会话信息
$_REQUEST获取由GET、POST和COOKIE方式提交至PHP脚本的变量

 

(5)获取注册人的IP地址、浏览器和请求来源

IP地址:$_SERVER['REMOTE_ADDR'];
浏览器环境:$_SERVER['HTTP_USER_AGENT'];
请求来源:$_SERVER['HTTP_REFERER'];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值