【问题标题】:PHP Form Validator/MySQL InsertPHP 表单验证器/MySQL 插入
【发布时间】:2010-09-24 04:31:10
【问题描述】:

我编写了一个小的 PHP 文件来获取发布到它的信息,然后检查以确保它不为空。如果它不为空,它会检查以确保用户名不存在。如果是,它会重定向。如果没有,它会将信息添加到 MySQL 数据库中。我不知道问题是什么,但是在按下表单上的提交按钮后尝试导航到它时,浏览器会显示一个错误,指出无法显示该页面。这是代码。

<?php
$firstname = $_POST['fname'];
$lastname = $_POST['lname'];
$email = $_POST['email'];
$username = $_POST['user'];
$password = $_POST['pass'];


$con = mysql_connect("localhost","USER","PASS");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("zach_blogin", $con);

$query="SELECT username FROM members WHERE username=$username";



if (mysql_num_rows($username) > 0 ) {
  header("Location: register.php?invalid");
} else {
  $sql=("INSERT INTO members (username, password, FirstName, LastName, Email)
  VALUES ($username, $password, $firstname, $lastname, $email)");
  if (!mysql_query($sql,$con))
    {
    die('Error: ' . mysql_error());
    }
else {
  header("Location: register.php?required");
}
?>

【问题讨论】:

    标签: php mysql login validation


    【解决方案1】:

    您没有执行查询:

    $query="SELECT username FROM members WHERE username=$username";
    //You need to execute the query here before you get num of rows.
    if (mysql_num_rows($username) > 0 ) // also mysql_num_query takes an object.
    

    类似:

    $query="SELECT username FROM members WHERE username=$username";
    if(($result = mysql_query($query)) !== false) {
      if (mysql_num_rows($result) > 0 ) {
       .....
      }
    }
    

    【讨论】:

    • 我已经尝试了这两种解决方案,但脚本仍然无法正常工作。也许我的脚本中还有另一个错误?
    • 好的,抱歉。我想通了...我有一个错字。但是,我遇到了问题。我在那里使用了您的(@codaddict)脚本,但是现在当用户名已被使用时,它只会显示一条消息,说明重复条目...。我需要它重定向到 register.php?invalid
    【解决方案2】:

    改变这个

    if (mysql_num_rows($username) > 0 ) {
    

    if (mysql_num_rows(mysql_query($query)) > 0 ) {
    

    【讨论】:

    • 在继续之前检查 mysql_query 的返回值总是更好。这使得调试更容易。
    • 没错,但我认为一行有问题,所以如果可行的话,让我们在错误的行上给出解决方案
    • 我已经尝试了这两种解决方案,但脚本仍然无法正常工作。也许我的脚本中还有另一个错误?
    • 你可以在 jsfillde.net 上发帖并分享 url,我可以进一步建议
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 2014-04-14
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多