以下是代码:
<?php
error_reporting(E_ALL & ~E_NOTICE);
require_once('dbcon.php');
if(isset($_POST["create"]))
{
if (isset($_POST['username']) && !empty($_POST['username'])) {
$username=mysqli_real_escape_string($conn,trim($_POST['username']));
}else{
$empty_username="Username Cannot be empty.";
echo $empty_username.'<br>';
}
if (isset($_POST['email']) && !empty($_POST['email'])) {
$email=mysqli_real_escape_string($conn,trim($_POST['email']));
}else{
$empty_email="Email cannot be empty.";
echo $empty_email.'<br>';
}
if (isset($_POST['category']) && !empty($_POST['category'])) {
$category=mysqli_real_escape_string($conn,trim($_POST['category']));
}else{
$empty_category="Category cannot be empty.";
echo $empty_category.'<br>';
}
if (isset($_POST['password']) && !empty($_POST['password'])) {
$psw=mysqli_real_escape_string($conn,trim($_POST['password']));
}else{
$empty_password="Password cannot be empty";
echo $empty_password.'<br>';
}
if (isset($_POST['re_password']) && !empty($_POST['re_password'])) {
$repsw=mysqli_real_escape_string($conn,trim($_POST['re_password']));
}else{
$empty_repassword="Retype password cannot be empty";
echo $empty_repassword.'<br>';
}
$password=password_hash('$psw',PASSWORD_BCRYPT);
$date=mysqli_real_escape_string($conn, trim('now()'));
if($psw!=$repsw)
{
echo"password not Matched";
}
$sql="select * from account_info where (username='$username' or email='$email');";
$res=mysqli_query($conn,$sql);
if (mysqli_num_rows($res) > 0) {
// output data of each row
$row = mysqli_fetch_assoc($res);
if ($username==$row['username'])
{
echo "Username already exists";
}
elseif($email==$row['email'])
{
echo "Email already exists";
}
else{
echo "alright";
}
}
}
?>
答案 0 :(得分:2)
如果条件
你就错了$sql="select * from account_info where (username='$username' or email='$email');";
$res=mysqli_query($conn,$sql);
if (mysqli_num_rows($res) > 0) {
// output data of each row
$row = mysqli_fetch_assoc($res);
if ($username==$row['username'])
{
echo "Username already exists";
}
elseif($email==$row['email']) // change it to just else
{
echo "Email already exists";
}
else{
echo "alright"; // don't put it here
}
}
要打印正常,请将您的其他内容放在if和更改elseif之外,就像这样:
$sql="select * from account_info where (username='$username' or email='$email');";
$res=mysqli_query($conn,$sql);
if (mysqli_num_rows($res) > 0) {
// output data of each row
$row = mysqli_fetch_assoc($res);
if ($username==$row['username'])
{
echo "Username already exists";
}
else($email==$row['email'])
{
echo "Email already exists";
}
} else{ // if condition ends here if it is new entry, echo will work
echo "alright";
}
答案 1 :(得分:1)
您只需要在正确的位置添加其他条件
试试这个: -
<?php
error_reporting(E_ALL & ~E_NOTICE);
require_once('dbcon.php');
if(isset($_POST["create"]))
{
$error = 0;
if (isset($_POST['username']) && !empty($_POST['username'])) {
$username=mysqli_real_escape_string($conn,trim($_POST['username']));
}else{
$error = 1;
$empty_username="Username Cannot be empty.";
echo $empty_username.'<br>';
}
if (isset($_POST['email']) && !empty($_POST['email'])) {
$email=mysqli_real_escape_string($conn,trim($_POST['email']));
}else{
$error =1;
$empty_email="Email cannot be empty.";
echo $empty_email.'<br>';
}
if (isset($_POST['category']) && !empty($_POST['category'])) {
$category=mysqli_real_escape_string($conn,trim($_POST['category']));
}else{
$error = 1;
$empty_category="Category cannot be empty.";
echo $empty_category.'<br>';
}
if (isset($_POST['password']) && !empty($_POST['password'])) {
$psw=mysqli_real_escape_string($conn,trim($_POST['password']));
}else{
$error = 1;
$empty_password="Password cannot be empty";
echo $empty_password.'<br>';
}
if (isset($_POST['re_password']) && !empty($_POST['re_password'])) {
$repsw=mysqli_real_escape_string($conn,trim($_POST['re_password']));
}else{
$error = 1;
$empty_repassword="Retype password cannot be empty";
echo $empty_repassword.'<br>';
}
$password=password_hash('$psw',PASSWORD_BCRYPT);
$date=mysqli_real_escape_string($conn, trim('now()'));
if($psw!=$repsw)
{
echo "password not Matched";
}
if(!$error) {
$sql="select * from account_info where (username='$username' or email='$email');";
$res=mysqli_query($conn,$sql);
if (mysqli_num_rows($res) > 0) {
// output data of each row
$row = mysqli_fetch_assoc($res);
if ($username==$row['username'])
{
echo "Username already exists";
}
elseif($email==$row['email'])
{
echo "Email already exists";
}
}else { //here you need to add else condition
echo "alright";
}
}
}
?>
答案 2 :(得分:0)
这可以帮助你进行验证我只会给你用户名复制它并为电子邮件制作这个ajax脚本在同一页面上运行不需要制作外部文件,我的意思是让我们说你正在验证login.php下面的Ajax在login.php上保留在同一页面上的所有脚本,将PHP代码更改为您的规范。细分,oninput = username说的是当用户开始输入时运行函数checkusername()并显示结果
<input type ="text" oninput="checkusername()" id="uname" placeholder="Your username for check" class="oshe">
<span id="usernamestatus"></span>
//ajax script on the same page do not make a new file function checkusername
<script> function checkusername(){
var status = document.getElementById("usernamestatus");
var u = document.getElementById("uname").value;
if(u != ""){ status.innerHTML = '<b style="color:red;">checking...</b>'; var hr = new XMLHttpRequest();
hr.open("POST", "a.php", true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
status.innerHTML = hr.responseText;
} }
var v = "name2check="+u; hr.send(v); } }
</script>
//the php script to search database
<?php
if(isset($_POST["name2check"]) && $_POST["name2check"] != ""){
include_once 'connect.php';
$username = ($_POST['name2check']);
$sql_uname_check = mysqli_query($con, "SELECT matric FROM users WHERE matric='$username' LIMIT 1");
$uname_check = mysqli_num_rows($sql_uname_check);
if (strlen($username) < 2) {
echo '<b style="color:white;">2 - 35 characters please</b>';
exit();
}
if (!filter_var($username, FILTER_VALIDATE_EMAIL) === false) {
echo '<b style="color:white;">Email not allowed</b>';
exit();
}
if (is_numeric($username[0])) {
echo '<b style="color:white;">First character must be a letter</b>';
exit();
}
if ($uname_check < 1) {
echo '<strong style="color:white; text-transform:lowercase!important;">' . $username . ' is available </strong> ';
exit();
} else {
echo '<strong style="color:white; text-transform:lowercase!important;">' . $username . ' is taken </strong>';
exit();
}
}
?>