<?php
header("content-type:text/html;charset=utf-8");
$link = mysqli_connect('localhost','root','root');
mysqli_query("set names utf8");
mysqli_query("use user");
//接收方式
//trim — 去除字符串首尾处的空白字符(或者其他字符)
//strip_tags — 从字符串中去除 HTML 和 PHP 标记
$username = strip_tags(trim($_POST['username']));
$email = strip_tags(trim($_POST['email']));
$password = strip_tags(trim($_POST['password']));
//合法性验证
if (empty($username) || empty($email) || empty($password)) {
header("Location: http://域名.login.php");
die( "用户名、密码和邮箱都不能为空!");
}
// 判断用户名是是否存在
// addslashes — 使用反斜线引用字符串
$username = addslashes($username);
$sql = "select id from 用户表 where u_username = '{$username}'";
$flag = mysqli_query($sql);
$num = mysql_affected_rows();
if ($num>0) {
header("Location: http://域名.login.php");
die("当前用户名$username已经存在!");
}
// 判断邮箱是否存在
$email = addslashes($email);
$sql = "select id from 用户表 where u_email = '{$email}'";
// mysql_query() 仅对 SELECT,SHOW,DESCRIBE, EXPLAIN 和其他语句 语句返回一个 resource,如果查询出现错误则返回 FALSE。
// 对于其它类型的 SQL 语句,比如INSERT, UPDATE, DELETE, DROP 之类, mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。
// 返回的结果资源应该传递给 mysql_fetch_array() 和其他函数来处理结果表,取出返回的数据。
// 假定查询成功,可以调用 mysql_num_rows() 来查看对应于 SELECT 语句返回了多少行,或者调用 mysql_affected_rows() 来查看对应于 DELETE,INSERT,REPLACE 或 UPDATE 语句影响到了多少行。
// 如果没有权限访问查询语句中引用的表时,mysql_query() 也会返回 FALSE。
mysqli_query($sql);
$num = mysql_affected_rows();
if ($num>0) {
header("Location: http://域名.login.php");
die("当前邮箱$email已经使用过!");
}
// 数据入库
$password = md5($password);
$now = time();
$sql = "insert into 用户表 values(null,'{$username}','{$password}','{$email}',$now)";
$flag = mysqli_query($sql);
if ($flag) {
echo "注册成功!";
header("Location: http://域名.index.php");
}else {
echo "注册失败!";
header("Location: http://域名.login.php");
}
?>