2010-03-24 71 views
0

我在登錄時很新,什麼都不是在我這裏裸露大聲笑,但我得到了學習,所以不要阻止我。PostGreSQL和PHP登錄腳本無法正常工作

這個我試過到目前爲止

<?php 

$error = ""; 

$conn = pg_connect("host=localhost dbname=brittains_db user=brittains password=XXXX"); 

$sql = "SELECT * FROM logins"; 
$result = pg_query($conn, $sql); 

if($_SERVER["REQUEST_METHOD"] == "GET") { 
    $userName=""; 
    $password=""; 
} 

else if($_SERVER["REQUEST_METHOD"] == "POST") { 

    $userName=trim($_POST["userNameLogin"]); 
    $password=trim($_POST["passwordLogin"]); 

    if(pg_fetch_result($results, $userName, "userName")==true 
     && pg_fetch_result($results, $password, "userName")==true) { 
     setcookie("userIDforDV", $userName, time()+43200); 
    } 
    else { 
     $error = "Your username and or password is incorrect"; 
    } 

} 

$userName = $_COOKIE['userIDforDV']; 

if(isset($userName) && $userName!="") { 
    echo "Welcome " . $userName; 
} 

echo $error; 

?> 

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
    <table> 
     <tr> 
      <td class="signupTd"> 
       User Name:&nbsp; 
      </td> 
      <td> 
       <input type="text" name="userNameLogin" value="" size="20" /> 
      </td> 
     </tr> 
     <tr> 
      <td class="signupTd"> 
       Password:&nbsp; 
      </td> 
      <td> 
       <input type="password" name="passwordLogin" value="" size="20" /> 
      </td> 
     </tr> 
     <tr> 
      <td class="signupTd" colspan="2"> 
       <input type="submit" name="submit" value="Submit"/> 
      </td> 
     </tr> 
    </table> 
</form> 

這是我想出了主意...但它可能是一個非常糟糕的主意,它不工作...我會如何正確這個?我需要非常詳細的描述。

順便說一句,我的SQL是:

CREATE TABLE logins(
    userName VARCHAR(25) NOT NULL PRIMARY KEY, 
    password VARCHAR(25) NOT NULL, 
    firstName VARCHAR NOT NULL, 
    lastName VARCHAR NOT NULL, 
    ageDay INTEGER NOT NULL, 
    ageMonth INTEGER NOT NULL, 
    ageYear INTEGER NOT NULL, 
    email VARCHAR(255) NOT NULL, 
    createDate DATE 
); 

和我的登記表已經作出並正在和我有我的數據庫中的用戶......他們只是無法登錄。

+0

你介意澄清一下你認爲的問題是什麼?否則,它有點像你要求某人爲你做功課。 – BenTrofatter 2010-03-24 03:36:30

+0

哦,這是我自學,把東西放在一起從我在網上看到的教程什麼不是...所以它不是作業...而我的問題是脯氨酸我要這樣做的方式。但要具體...我的抓取不起作用。我的cookie導致錯誤。和即時獲取未定義的變量... – MrEnder 2010-03-24 03:39:28

回答

3

檢查http://php.net/manual/en/function.pg-fetch-result.php的評論。 編輯: 密碼應該是varchar(32)並使用md5密碼(甚至更好64和使用sha1)。 也我一般不熟悉pgSQL,但IMO正確的方法是使用sql查詢來檢查而不是使用pg_fetch_result。

$query = "SELECT * FROM logins WHERE userName = '$userName' AND password = md5('$password');"; 
$result = pg_query($conn, $query); 
if(pg_num_rows($result) != 1) { 
    // do error stuff 
} else { 
    // user logged in 
} 
+0

上帝的人不斷送我在那裏,它的喜歡試圖緩慢decypher克林貢...我很擅長與JS我可以編程任何東西在JS中,我去這樣的網站,即使與JS和它混淆了我的廢話。 – MrEnder 2010-03-24 03:40:36

+0

基本上這個網站是讓我盡我所能,我無法得到任何進一步爲什麼我試圖在這裏得到幫助,但最欣賞的答案 – MrEnder 2010-03-24 03:43:34

0

如果你想看到一個phenominal登錄腳本在行動(從而從中吸取教訓)退房jpmaster77的核心:http://evolt.org/node/60384它具有很強的階級基礎設施爲基礎,並充分利用你的面向對象的背景。它開箱即用&是免費的。

glhf

+0

鏈接不起作用:頁面未找到 – Sam 2016-06-04 01:48:39