在开发注册系统时,代码已写好,但页面显示如下

李壬 2019-07-12 11:07:19

<?php

session_start();

header("Content-type:text/html;charset=utf-8");

$link = mysqli_connect('localhost','123654lgh','etjyr2bm','123654lgh');

if (!$link) {

die("连接失败:".mysqli_connect_error());

}

$sql = "select * from login";

$result = mysqli_query($link, $sql);

$rows = mysqli_fetch_array($result);



$username = $_POST['username'];

$password = $_POST['password'];

$confirm = $_POST['confirm'];

$email = $_POST['email'];



if($username == "" || $password == "" || $confirm == "" || $email == "")

if ((strlen($username) < 3)||(!preg_match('/^\w+$/i', $username)))

{

echo "<script>alert('信息不能为空!重新填写');window.location.href='zhuce.html'</script>";

} elseif ((strlen($username) < 3)||(!preg_match('/^\w+$/i', $username))) {

echo "<script>alert('用户名至少3位且不含非法字符!重新填写');window.location.href='zhuce'</script>";

//判断用户名长度

}elseif(strlen($password) < 5){

echo "<script>alert('密码至少5位!重新填写');window.location.href='zhuce.html'</script>";

//判断密码长度

}elseif($password != $confirm) {

echo "<script>alert('两次密码不相同!重新填写');window.location.href='zhuce.html'</script>";

//检测两次输入密码是否相同

} elseif (!preg_match('/^[\w\.]+@\w+\.\w+$/i', $email))

echo "<script>alert('邮箱不合法!重新填写');window.location.href='zhuce.html'</script>";

//判断邮箱格式是否合法

elseif(mysqli_fetch_array(mysqli_query($link,"select * from login where username = '$username'"))){

echo "<script>alert('用户名已存在');window.location.href='zhuce.html'</script>";

} else{

$sql= "insert into login(username, password, confirm, email)values('$username','$password','$confirm','$email')";

//插入数据库

if(!(mysqli_query($link,$sql))){

echo "<script>alert('数据插入失败');window.location.href='zhuce.html'";

}else{

echo "<script>alert('注册成功');window.location.href='yonghu.html'</script>";

}

}

?>
...全文
266 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
toorup 2019-08-03
  • 打赏
  • 举报
回复
你这个写法是真有问题,实际中没有去用这种写法实现。
但你既然这样写了,那给你提示一下吧
首先,提交前检测用户名长度,密码位数,两次密码重合否,邮箱格式,这些都是本地行为,可以写成一个JS函数来完成,失败了就返回不提交
用户名是否已被使用,这是服务器行为,是在上面这一本地验证通过了进行提交后服务器进行的验证,在另一页去写,yonghu.php,

你把本地行为和服务器行为放在一起逻辑上就有问题,验证失败后跳转到本页,这就想当是刷新,所以会出现你那个提示重新提交。
你非行要写在一个页面,也不是不可以,表单提交部分和接受数据写入数据库部份,要分别用过程或函数包装分开。
qq_39047451 2019-08-01
  • 打赏
  • 举报
回复
一个页面只做单纯一件事情,不要一个页面做全部
董哥007 2019-07-29
  • 打赏
  • 举报
回复
你先改回去再说后面的事
还是个小家伙 2019-07-20
  • 打赏
  • 举报
回复
这个有什么问题?只是一个表单重填的提示而已啊
w15926357 2019-07-16
  • 打赏
  • 举报
回复
现在都是用AJAX提交,很少用这种传统的了,体验差
董哥007 2019-07-16
  • 打赏
  • 举报
回复
你这个写法首先就不专业了,你见过谁php代码里面又是写js代码的

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧