[英]PHP Check if Username Exists
Ok so when i login on the page i get this error 好的,所以当我登录页面时出现此错误
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/a1982502/public_html/test3/register.php on line 55 警告:mysql_num_rows():第55行/home/a1982502/public_html/test3/register.php中提供的参数不是有效的MySQL结果资源
This is the PHP 这是PHP
<?php
if(isset($_POST['submit'])) {
$servername = "mysql10.000webhost.com";
$username = "a1982502_test";
$password = "";
$dbname = "a1982502_test";
$password1 = $_POST['password1'];
$password2 = $_POST['password2'];
$username1 = $_POST['username1'];
$email = $_POST['email'];
if(!empty($username) && !empty($password1) && !empty($password2) && !empty($email)) {
if($password1 == $password2) {
$conn = new mysqli($servername, $username, $password, $dbname);
//send data
$sql = "SELECT COUNT(*) FROM users WHERE user = '$username1'";
if (mysql_num_rows($sql) > 0) {
echo "Username already exists";
mysqli_close($conn);
exit();
} else {
$password1 = md5($password1);
$sql = "INSERT INTO users (id, user, email, pass) VALUES (NULL, '$username1', '$email', '$password1')";
if (mysqli_query($conn, $sql)) {
echo "Registered!";
}
mysqli_close($conn);
exit();
}
} else {
//error
Echo "Password is wrong";
exit();
}
}
}
?>
You did not run your query. 您没有运行查询。 After initializing $SQL do this, 初始化$ SQL之后,
$result = mysqli_query($conn, $sql);
Then you can call mysqli_num_rows($result). 然后,您可以调用mysqli_num_rows($ result)。
you need to change your query to select * from instead of select count(*) in order for mysql_num_rows() to work. 您需要更改查询以选择* from而不是select count(*)才能使mysql_num_rows()运行。
I see that your not calling mysql_query() anywhere. 我看到您没有在任何地方调用mysql_query()。 In order for the query to actually run you need to pass this function. 为了使查询实际运行,您需要传递此函数。 You can also use mysqli I havent used classic php in a while so here is an untested sample of something that should work 您也可以使用mysqli,我已经有一段时间没有使用经典的php了,所以这是一些未经测试的示例,应该可以正常工作
<?php
if(isset($_POST['submit']))
{
$servername = "mysql10.000webhost.com";
$username = "a1982502_test";
$password = "";
$dbname = "a1982502_test";
$password1 = $_POST['password1'];
$password2 = $_POST['password2'];
$username1 = $_POST['username1'];
$email = $_POST['email'];
if(!empty($username) && !empty($password1) && !empty($password2) && !empty($email))
{
if($password1 == $password2)
{
$conn = new mysqli($servername, $username, $password, $dbname);
//send data
$sql = mysql_query("SELECT * FROM users WHERE user = '$username1'");
if (mysql_num_rows($sql) > 0)
{
echo "Username already exists";
mysqli_close($conn);
exit();
}
else
{
$password1 = md5($password1);
$sql = mysql_query("INSERT INTO users (id, user, email, pass) VALUES (NULL, '$username1', '$email', '$password1')");
mysqli_close($conn);
exit();
}
}
else
{
//error
Echo "Password is wrong";
exit();
}
}
}
?>
Make correction like below 进行如下修改
$sql = "SELECT * FROM users WHERE user = '$username1'";
if ($result=mysqli_query($conn,$sql))
{
// Check no of rows
if(mysqli_num_rows($result))
{
echo "Username already exists";
mysqli_close($conn);
exit();
}else
{
// Register
$password1 = md5($password1);
$sql = "INSERT INTO users (id, user, email, pass) VALUES (NULL, '$username1', '$email', '$password1')";
if (mysqli_query($conn, $sql))
echo "Registered!";
mysqli_close($conn);
exit();
}
}else
{
// Query failed
echo("Error description: " . mysqli_error($conn));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.