0

phpでログインページを作りました。ユーザー名とパスワードを数字として使用しても問題ありません。ただし、ユーザー名とパスワードに文字を使用すると問題が発生し、次のエラーが発生します。

「Where句」の列「列名」が不明です

どんな助けでも大歓迎です

アップデート :

私は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 );
  }
}
?>
4

2 に答える 2

2

データベース名、テーブル名、および列名のスペルが正しいことを mysql ステートメントで確認してください。

column nameエラーが示すように、あなたの db テーブルのスペルが間違っていると確信しています。チェックしてください。しかし、それを確認するために、SQL ステートメントを示してください。

試してみてください。

$LoginRS__query="SELECT * FROM users WHERE user = '$loginUsername' AND pass = '$password'";
$LoginRS = mysql_query($LoginRS__query) or die(mysql_error());
于 2012-09-08T14:32:04.033 に答える
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'";

ただし、yout SQL クエリに問題がある場合は、それと関連する PHP コードを投稿してください。そうしないと、何が起こっているのか推測せざるを得なくなります。この場合、質問番号の最初の部分は変数を引用符で囲んでいるように見えますが、不明な列名の部分はタイプミスがあることを示しています。

于 2012-09-08T14:32:31.317 に答える