php - 如何用php和mysql制作注册表

标签 php mysql database forms validation

这是我的 php 注册表。这段代码有问题。当我输入数据时,我的代码没有将数据保存到数据库,并且它没有检查数据库中是否有相同的用户名或电子邮件,如果我输入密码1!=密码2,则有 “警告:mysqli_query() 期望参数 1 为 mysqli,第 27 行 C:\xampp\htdocs\tugas3\register.php 中给出的资源” “警告:mysqli_num_rows() 期望参数 1 为 mysqli_result,第 28 行 C:\xampp\htdocs\tugas3\register.php 中给出的 null”。帮我解决这个问题。我的数据库使用 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>

最佳答案

首先检查您正在与 mysql 连接的连接,并使用 mysqli 选择您的数据库,这会产生问题,而且您正在使用 mysqli 执行查询,因此您无法从那里获得正确的结果 用户 mysql 用于选择数据库并执行查询。

$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
$sql = "select * from Users where email='$email' AND username='$username";

mysql_select_db('TugasPPW');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
    print_r($row);
} 
echo "Fetched data successfully\n";
mysql_close($conn);
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!!";
    }

关于php - 如何用php和mysql制作注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26908537/

相关文章:

php - 如何将 Web 应用程序的访问权限限制在一台机器上?

sql - 序列生成的主键似乎不能很好地与 select 语句配合使用

php - 使用数组选择多行,然后插入到另一个语句

php - openssl_pkey_new() 抛出错误——为 php 正确设置 openssl.cnf

PHP mysql 查询使用通配符

php - 是否可以使用 MySQL 中的 PHP 脚本填写 pdf 可填写表单

mysql - 如何解决MySQL中的汉字显示问题?

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

php - 只能通过 MySQL 来实现这一点

java - 当光标指向特定行时,如何获取 JTable 中的行和列?