这是我的php注册表 . 这段代码有问题 . 当我输入数据时,我的代码没有将数据保存到数据库,并且它没有检查数据库中是否有相同的用户名或电子邮件,如果我输入了密码1!= password2,则存在“警告:mysqli_query()期望参数1为mysqli,资源在第27行的C:\ xampp \ htdocs \ tugas3 \ register.php中给出“”警告:mysqli_num_rows()期望参数1为mysqli_result,在C:\ xampp \ htdocs \ tugas3 \ register中给出null第28行的.php“ . 帮我解决这个问题 . 我正在使用XAMPP作为我的数据库 . 我的数据库名称是TUGASPPW,表名是Users .
<?php
$error=''; // Variable To Store Error Message
$errorName='';
$errorPass='';
$errorEmail='';
if (isset($_POST['submit'])) {
if (empty($_POST['username']) || empty($_POST['password1']) || empty($_POST['password2']) || empty($_POST['email'])) {
$error = "Semua data harus terisi";
}
else {
// Define $username and $password
$username=$_POST['username'];
$password1=$_POST['password1'];
$password2=$_POST['password2'];
$email=$_POST['email'];
// Establishing Connection with Server by passing server_name, user_id and password as a parameter
$connection = mysql_connect("localhost", "root", "");
// To protect MySQL injection for Security purpose
$username = stripslashes($username);
$password1 = stripslashes($password1);
$password2 = stripslashes($password2);
$email = stripslashes($email);
$username = mysql_real_escape_string($username);
$password1 = mysql_real_escape_string($password1);
$password2 = mysql_real_escape_string($password2);
$email = mysql_real_escape_string($email);
// Selecting Database
$db = mysql_select_db("TugasPPW", $connection);
$query = ("select * from Users where email='$email' AND username='$username'");
$result = mysqli_query($connection,$query);
$numResults = mysqli_num_rows($result);
if($password1 != $password2){
$errorPass = "Password yang anda masukkan tidak sama";
}
elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) // Validate email address
{
$errorEmail = "Invalid email address please type a valid email!!";
}
elseif($numResults>=1){
$errorName = "Username or email already exsist";
}
else{
mysql_query("insert into users(name,email,password) values('".$username."','".$email."','".md5($password1)."')");
header("location: login.php");
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Login Form in PHP with Session</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="main">
<h1>Pendaftaran</h1>
<span><?php echo $error; ?></span>
<div id="login">
<form action="" method="post">
<label>UserName :</label>
<input id="name" name="username" placeholder="username" type="text"><span><?php echo $errorName; ?></span><br>
<label>Password :</label>
<input id="password1" name="password1" placeholder="**********" type="password"><span><?php echo $errorPass; ?></span><br>
<label>Ulangi Password :</label>
<input id="password2" name="password2" placeholder="**********" type="password"><span><?php echo $errorPass; ?></span><br>
<label>Email :</label>
<input id="email" name="email" placeholder="yourname@email.com" type="email"><span><?php echo $errorEmail; ?></span><br>
<input name="submit" type="submit" value=" Submit ">
</form>
</div>
</div>
5 回答
我修复了你的代码 . 下面用下面的代码验证并找出错误 .
尝试使用PDO连接......
没有梳理混合mysql_ *和mysqli_ *的变化
至
但最好使用mysqli或pdo
首先检查你的连接,你正在连接mysql和selcteing你的数据库与mysqli它创建问题也是你用mysqli驱逐你的查询所以你无法从用户mysql获得正确的结果选择数据库和执行查询 .