2013-12-14 58 views
0

我只是創建一個簡單的登錄腳本來檢查用戶名/密碼,如果有數據庫匹配,然後它會登錄。我想我大部分都會打開數據庫,從登錄名中抓取用戶名/密碼。我想我也設置我的查詢,它也抓住了用戶名和密碼。我怎麼去比較它呢?我一直堅持這一點。我的抓取也不正確,它給了我一個錯誤。我對SQLite /數據庫很陌生,所以這可能看起來很糟糕的代碼,但我盡我所能。查詢和提取比較SQLite

<?php 

//opens database 
    class MyDB extends SQLite3 
    { 
     function __construct() 
     { 
     $this->open('UserAccounts.db'); 
     } 
    } 
    $db = new MyDB(); 

    //username and pw from index.html 
    $user = $_REQUEST['myusername'] ; 
    $pw = $_REQUEST['mypassword'] ; 

    //if there is a database, it opens. 
    if(!$db){ 
     echo $db->lastErrorMsg(); 
    } else { 
     //Test to see if things are working correctly. 
     echo "Opened database successfully\n"; 
     echo "$user"; 
     echo "$pw"; 

    } 
    $result = $db->query("SELECT * FROM login WHERE user = '$user' AND password = '$pw'"); 
    if ($result->fetchColumn() == $user) { 
    $_SESSION['loggedin'] = true; 
    echo "Success"; 
    }; 

    if(!$_SESSION['loggedin']){ 
     echo "Didn't Work"; 
     exit; 
    }; 
+2

你什麼錯誤? SQLite3類沒有函數:fetchColumn()您需要使用以下函數之一http://www.php.net/manual/en/class.sqlite3result.php – user602525

+0

致命錯誤:調用未定義的方法SQLite3Result ::第28行的/Applications/XAMPP/xamppfiles/htdocs/hcc-master/checklogin.php中的fetchColumn() 是的,你說的很對,很多人說它不存在。 我真的不知道發生了什麼事。大聲笑 – user2318083

+1

使用fetchArray() – user602525

回答

1

大概是這樣的:

$fromDB = $result->fetchArray(); 
if ($fromDB['user'] == $user) { 
+0

非常感謝您的幫助!對此,我真的非常感激!我現在全部工作了! :) – user2318083

+0

沒問題,祝你好運 – user602525