2012-04-29 8 views
0

ユーザーログインをphpで認証しようとしています。私は正しい情報を使用したとしても、単に 'index2.php'に送られています。どのように私はこれをデバッグするか、私は何をする必要がありますか?sql/php - ユーザーログインを認証します。

しかし、まだだ "($結果> 1){場合" おかげ

は**私はまた、顧客

FROM SELECT COUNT(ID)、にクエリを変更し、if文に設定します'index2.php'に送信されました

<?php 

// ---------------------- 
// Retrieve login information 

    include("db_info.php"); 

// ---------------------- 
// Connect to database 

$conn = oci_connect($db_user, $db_pwd, '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=*****.edu)(Port=1521)))(CONNECT_DATA=(SID=asuka)))'); 

if (!$conn) { 
$e = oci_error(); 
print_r($e); 
exit(); 
} 

// ---------------------- 
// Authenticate User 

// Create query 
$sql = "SELECT COUNT(ID) FROM CUSTOMER WHERE EMAIL='$email' AND PASSWORD='$password'"; 

// Create database query statement 
$statement_id = oci_parse($conn, $sql); 

// Execute query statement 
$result = oci_execute($statement_id, OCI_COMMIT_ON_SUCCESS); 

// Check for successful authentication 
if ($result==1) { 
    if ($email=="[email protected]") { 
     $db_login_status = 2; 
     header("location: index1.php"); 
    } else { 
     $db_login_status = 1; 
     header("location: index.php"); 
    } 
} else { 
    header("location: index2.php"); 
} 

// ---------------------- 
// Close connections 

oci_free_statement($statement_id); 
oci_close($conn); 
+1

古き良きmysql_ *関数を使って新しいコードを書いてください。彼らはもはや維持されておらず、コミュニティは[非推奨プロセス](http://news.php.net/php.internals/53799)を始めました。代わりに、準備されたステートメントについて学び、[PDO](http://php.net/pdo)または[MySQLi](http://php.net/mysqli)を使用する必要があります。あなたが学びたい人は[ここではPDO関連の非常に良いチュートリアルです](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)。 –

+0

ユーザーパスワードをプレーンテキストで保存していますか? [それは悪い考えです](http://stackoverflow.com/questions/1581610/how-can-i-store-my-users-passwords-safely)。 *編集*:実際にチェックする前に '$ result'に値を代入していませんか? – DCoder

+0

クエリでOracle拡張機能(oci)を使い、mysql_error()を使ってエラーを取得したい! –

答えて

0

ここにいくつかの問題があります。 1つは、if($ email = "[email protected]")です。それはa)== b)それに後ろに中括弧を付けるべきです。もう1つの問題は、HTTPロケーションヘッダーを変更する前にテキストを出力できないため、エコーステートメントを取り除く必要があることです。 3番目の問題は、index1.phpに転送するように管理者チェックを行う前にindex.phpにリダイレクトすることです。

+0

ありがとう、私はすべてを更新しました。毎回 "index.php"に送られてきました。何か案は? – Meowbits

関連する問題