2012-09-08 96 views
0

我用php做了一個登錄頁面。當我使用用戶名和密碼作爲數字時,沒有問題。但如果我用一個字母用戶名和密碼,它會導致一個問題,它給這個以下錯誤:在「Where子句」登錄頁面錯誤

任何幫助將不勝感激

未知列「列名」

更新:

我使用Dreamweaver和我做這些步驟的登錄頁面:

插入 - >數據Objects(對象)>用戶認證 - >登錄用戶

更新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); 
    } 
} 
?> 
+0

這與你的SQL語句有關。你可以請張貼嗎? – Devos50

+0

沒有您提供所有相關信息,無法幫助您。 – PeeHaa

+0

@ Devos50查看更新 – aliboy38

回答

2

檢查你的mysql聲明中表示,DATABSE名,表名和列名拼寫正確。

我確定您的db表的column name,因爲錯誤說是拼寫錯誤。覈實。但要確認它,向我們展示sql語句。

試一下;

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

看到更新... – aliboy38

+0

在記事本中打開你的php文件,並尋找包含sql,mysql語句的一些行 –

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代碼 - 否則,我們不得不猜測到底是怎麼回事。在這種情況下,您的問題的第一部分數字還好吧似乎暗示了變量周圍的引號,而未知列名稱部分意味着您有拼寫錯誤。

+0

查看更新... – aliboy38

+0

@ aliboy38更新並沒有多大的幫助。如果你可以顯示錶格結構和查詢,我有一個有趣的感覺,就像在魚缸裏拍攝魚一樣:) – Fluffeh

+0

參見更新2 – aliboy38