登录页面错误

时间:2012-09-08 14:30:04

标签: php login

我用php创建了一个登录页面。当我使用用户名和密码作为数字时,没有问题。但如果我使用一个字母作为用户名和密码,它将导致一个问题,它会出现以下错误:

'Where Clause'中的未知列'Column Name'

任何帮助将不胜感激

更新:

我使用Dreamweaver并使用以下步骤创建登录页面:

插入 - >数据对象 - >用户身份验证 - >登录用户

更新2:

 <?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['user'])) {
  $loginUsername=$_POST['user'];
  $password=$_POST['pass'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "ok.php";
  $MM_redirectLoginFailed = "login.php";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_cn3, $cn3);

  $LoginRS__query=sprintf("SELECT * FROM users WHERE `user`=%s AND pass=%s",
    GetSQLValueString($loginUsername, "-1"), GetSQLValueString($password, "text")); 

  $LoginRS = mysql_query($LoginRS__query, $cn3) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
     $loginStrGroup = "";

    if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;       

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];  
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>

2 个答案:

答案 0 :(得分:2)

检查你的mysql语句,数据库名称,表名和列名拼写正确。

我确信您的数据库表的column name,如错误所示,拼写错误。核实。但要确认它,请向我们展示sql语句。

试试;

$LoginRS__query="SELECT * FROM users WHERE user = '$loginUsername' AND pass = '$password'";
$LoginRS = mysql_query($LoginRS__query) or die(mysql_error());

答案 1 :(得分:2)

听起来好像你需要将变量封装在查询本身的引号中:

$var=3;
$sql="select someColumn from someTableName where userID=$var";

会工作但是

$var=bobby;
$sql="select someColumn from someTableName where userID=$var";

不行。它必须是:

$var=3;
$sql="select someColumn from someTableName where userID='$var'";

但是,如果您遇到SQL查询问题,请发布它和相关的PHP代码 - 否则我们不得不猜测发生了什么。在这种情况下,问题的第一部分数字正常似乎意味着围绕变量引用,而未知列名称部分暗示您有拼写错误。