php - 检查数据库中是否已存在用户名和电子邮件
问题描述
我刚开始使用 php,如果您键入已经存在的用户名或密码,我尝试创建系统以拒绝“创建帐户”。谢谢,抱歉我的英语不好。 我已经试过了。不工作:链接
这是我的 php:
<?php
session_start();
$db = mysqli_connect("localhost", "root", "", "itsnikola");
if (isset($_POST['register_btn'])) {
$name = mysqli_real_escape_string($db, $_POST['name']);
$lastname = mysqli_real_escape_string($db, $_POST['lastname']);
$username = mysqli_real_escape_string($db, $_POST['username']);
$email=mysqli_real_escape_string($db, $_POST['email']);
$password=mysqli_real_escape_string($db, $_POST['password']);
$password2=mysqli_real_escape_string($db, $_POST['password2']);
if ($password == $password2) {
session_start();
$password = ($password);
$sql="select * from account_info where (username='$username' or email='$email')";
if (mysqli_num_rows($res) > 0) {
$row = mysqli_fetch_assoc($res);
if ($username==$row['username'])
{
$_SESSION['message'] = "Username je vec registrovan";
}
else($email==$row['email']){
$_SESSION['message'] = "Email je vec registrovan"
}
else
{
$sql = "INSERT INTO users(name, lastname, username, email, password) VALUES('$name' , '$lastname' , '$username' , '$email' , '$password')";
mysqli_query($db, $sql);
$_SESSION['message'] = "Sada si ulogovan";
$_SESSION['message'] = $username;
header("location:login.php");
}else {
$_SESSION['message'] = "Ne podudaraju se lozinke!";
}
}
?>
解决方案
您在此行之前错过了非常重要的行if (mysqli_num_rows($res) > 0)
$sql="select * from account_info where username='$username' or email='$email' ";
$res = mysqli_query($db, $sql); // you're missing this line to query by $sql
if (mysqli_num_rows($res) > 0) {
// you're other code goes here
}
推荐阅读
- python - 如何使用 tf.one_hot 计算一种热编码?
- bash - 如何在 Jenkins 运行的 bash 脚本中转义单引号?
- sql - Rails 按关联记录数选择
- ruby-on-rails - 在数据库设计中管理多个类别的最佳方法
- ios - 如果未附加调试器,则 React Native 应用程序在启动时无响应
- flutter - Flutter:地图依赖使应用程序崩溃
- vue.js - 如何使用 @mouseover 更改 v-img 组件上的图像?
- php - 发送多个同名数据
- linux - 如何根据 2 个或更多列值拆分文件
- shiny - 在“rdrop2”中找不到文件问题(闪亮)