【发布时间】:2018-04-03 09:58:47
【问题描述】:
我正在尝试制作带有验证的注册表单。我在我的 html 和 css 代码中添加了一些 php 代码。一切都是好的。它验证用户或电子邮件是否已经存在。如果验证通过,则数据将保存在数据库中,但无法正常工作。不知道是什么问题。
这是我的代码:
<?php
if (isset($_POST['submit'])) {
require 'connect.php';
$username = ($_POST['username']);
$email = ($_POST['email']);
$password = ($_POST['password']);
$passwordconf = ($_POST['passwordconf']);
$errorfields = "<p class='errormsg'>Please fill out all the fields!</p>";
if (empty($username) || empty($email) || empty($password) ||
empty($passwordconf))
{
echo "$errorfields";
}
$check = mysqli_query($con, "SELECT username FROM users WHERE
username='$username' ");
if (mysqli_num_rows($check) >= 1) {
echo "username already exists"."</br>". "</br>";
}
$erroremail = "<p class='errormsg'>Email is not in name@domain format! </p>";
$regex = "/^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+.[a-z]{2,}$/i";
if(!preg_match($regex, $email))
{
echo "$erroremail";
}
$errorpassword = "<p class='errormsg'>You passwords do not match!</p>";
if ($password != $passwordconf)
{
echo "$errorpassword";
}
$check = mysqli_query($con, "SELECT email FROM users WHERE email='$email' ");
if (mysqli_num_rows($check) >= 1) {
echo "email already exists";
}
} else {
$con = mysqli_connect('localhost' , 'root', '');
if(!$con) {
echo "not connected";
}
if (!mysqli_select_db($con, "new accounts")) {
echo "database not selected";
}
$username= (isset($_POST['username']));
$email= (isset($_POST['email']));
$password= (isset($_POST['password']));
mysqli_query($con, "INSERT INTO users (username, email, password) VALUE ('$username', '$email', '$password')") or die ( "cannot insert in databse");
}
?>
首先,我写了$username = ($_POST['username'])
然后它向我显示错误,所以我将其更改为此。它没有向我显示错误,但它没有在数据库中插入任何内容。有人能告诉我如何解决这个问题吗?谢谢。
【问题讨论】:
-
我正在考虑稍后添加它们。添加它们可以帮助我解决这个问题。抱歉,我是 php 新手,所以不太了解它。请告诉我@mickmackusa
-
你能告诉我如何修复@mickmackusa
-
您插入的代码在错误的条件括号中 - 当您没有提交表单时。这就是插入不起作用的原因。
-
您正在插入布尔值。
isset()返回真/假布尔值(零长度字符串)
标签: php validation post mysqli submission