0

PHPでユーザーログインを認証しようとしています。正しい情報を使用しても、「index2.php」に送信されます。これをどのようにデバッグする必要があるか、または何をする必要があるか考えていますか? ありがとう

**クエリも SELECT COUNT(ID) FROM CUSTOMER に変更しました

if ステートメントを「if ($result>1) {」に設定します。

しかし、まだ「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=="admin@hotmail.com") {
        $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);
4

1 に答える 1

0

ここにはいくつかの問題があります。たとえば、if ($email="admin@hotmail.com")があります。それは a) == である必要があります b) その後に中括弧が必要です。もう 1 つの問題は、http ロケーション ヘッダーを変更する前にテキストを出力できないことです。そのため、echo ステートメントを削除する必要があります。3 つ目の問題は、管理者が index1.php に転送することを確認する前に、index.php にリダイレクトすることです。

于 2012-04-29T20:38:44.983 に答える