-1

ユーザー名とパスワードが一致するかどうかを確認できるクエリを実行しようとしています。一致する場合は、管理者ページに移動します。私が抱えている問題は、クエリが正しい結果を与えていないと思うことです。データベース テーブルは admin と呼ばれ、adminname と passadmin があります。データベースにISを入力しているユーザーです。パスワードは暗号化されています。

<?php

    $f_user = $_POST['f_user'];
    $f_pass = $_POST['f_pass'];

    $status = authenticate($f_user, $f_pass);

    if ($status == 1)
    {
        include("../connections/config.php");

        session_start();
        //session_register("SESSION_UNAME");
        $_SESSION['SESSION_UNAME'] = $f_user;
        $SESSION_UNAME = $f_user;
        header("Location: unoadmin.php");
        exit();
    }
    else
    {
        $mensa= "Informaci&oacute;n Incorrecta...Int&eacute;ntelo de Nuevo";
        header("Location: register.php?mensa=$mensa");
        exit();
    }

    function authenticate($user, $pass)
    {
        include("../connections/config.php");

        $connection = mysql_connect($mach,$userna,$paso) or die ("Unable to connect!");
        $query = "SELECT * from admin WHERE adminame = '$f_user'";
        mysql_select_db($db);
        $result = mysql_query($query, $connection) or die ("Error in query: $query. " . mysql_error());
        $num_results = mysql_num_rows($result);

        if ($num_results == 1)
        {
            for($i=0; $i < $num_results; $i++)
            {
                $row = mysql_fetch_array($result);
                $pas = $row["passadmin"];
            }
            if(crypt($pass,$pas) == $pas)
            {
                return 1;
            }
            else
            {
                return 0;
            }
        }
        else
        {
            return 0;
        }
    }
?>

誰かがエラーを教えてもらえますか? 「情報が正しくありません。Intentelo de nuevo」または英語で「間違った情報です。もう一度やり直してください」というメッセージが表示されます。

4

3 に答える 3

1

この質問の簡単な解決策は、ユーザー名とパスワードを変数に入れ、それをデータベースと照合することです。結果が 1 より大きい値の場合、管理ページに移動します。例えば

    $myusername=addslashes($_POST['username']); 
            $mypassword=addslashes($_POST['password']); 

            $sql="SELECT * FROM admin WHERE username='$myusername' and password=md5('$mypassword')";
$query = mysql_query($sql);
$row = mysql_num_rows($query);
if($row>0) {
  header("location:administrator.php");
}
else {
 echo"Please check username and password";
}
于 2012-10-26T13:26:25.300 に答える