2012-10-09 52 views
-3

我想傳遞一個參數到一個PHP函數 但是什麼都沒有發生,我的意思是代碼沒有通過index.php paramater到newPHPClass.php 和是否有可能調用一個函數形式的行動? 這裏是我的代碼。試圖通過一個參數,不工作:(

的index.php

<?php include '../con_db/connect.php'; ?> 
    <?php include '../class/newPHPClass.php'; ?> 

<form action="index.php" method="post"> 
     <label>Username:</label><input type="text" name="username"/><br/> 
     <label>Password:</label><input type="text" name="password"/><br/> 
     <input type="submit" value="Submit" name="submit"/> 
    </form> 

    <?php 
    if (isset($_POST['submit'])) { 
     $username = $_POST['username']; 
     $password = $_POST['password']; 
     $check = new newPHPClass(); 
     $check->checkLogin($username, $password); 
     } 
    ?> 

和類

include '../con_db/connect.php'; 

class newPHPClass { 

    public function checkLogin($username, $password) { 
     $select = mysql_query('SELECT * FROM users WHERE username = "' . $username . '" AND password = "' . $password . '"'); 
     if (count($select) > 0) { 
      echo "true"; 
      return true; 
     } else { 
      echo "false"; 
      return false; 
     } 
    } 
+1

-1有什麼問題? – sachleen

回答

1

INSERT語法不正確,

$select = mysql_query("INSERT FROM users (username, password) 
          VALUES ('$username', '$password')"); 

你當前的查詢是SQL Injection脆弱的,請花時間閱讀下面的文章,

Best way to prevent SQL injection in PHP?

更新1

$sql = "SELECT COUNT(*) totalCount 
     FROM users 
     WHERE username = '$username' AND password = '$password'"); 
$result = mysql_query($sql, $link) or die(mysql_error()); 
$row = mysql_fetch_assoc($result); 
if($row["totalCount"] > 0) 
{ 
    echo "true"; 
    return true; 
} 
else 
{ 
    echo "false"; 
    return false; 
} 
+0

抱歉,我的錯誤。應該是SELECT。因爲當用戶登錄。它會檢查用戶和密碼是否存在於數據庫中 – Catherine

+0

@凱瑟琳看到我的更新回答。 –

+0

非常感謝你的幫助,這就是我所要找的,再次感謝 – Catherine

0

類中的語法是comp letely搞砸了。首先,你爲什麼要調用INSERT來檢查登錄。其次,它是INSERT INTO,即使它是您在此需要的INSERT,事實並非如此。

$select = mysql_query("SELECT * FROM users WHERE username = '$username' AND password = '$password'"); 
if($select->num_rows()==1){ 
     echo "true"; 
     return true; 
    } else { 
     echo "false"; 
     return false; 
    } 
} 

不要在登錄時檢查> 0,你只希望返回一行。同時把查詢放在裏面「而不是」意味着它可以讀取變量,而不用像你這樣做連接查詢。

+0

抱歉,那應該是SELECT *不是INSERT,我喝了太多咖啡,呵呵。 – Catherine