0

私はこの問題を抱えています。私のphpページにログインしたいとき、テキストボックスだけがクリアされ、他には何もありません..私はこの問題を解決しようとしていますが、解決策が見つかりません. コードは次のとおりです。

<?php
include_once ("db.php");
include_once("session.php");

$username=$_POST['uporabnisko']; 
$pass=$_POST['geslo'];

    if ((!empty($username)) && (!empty($pass)))
    {
        $pass=sha1($pass); // zakodiramo geslo

        /*$query=mysql_query("SELECT username, password FROM users WHERE username='$username' AND password='$pass'");
        $username=mysql_real_escape_string($username);
        $pass=mysql_real_escape_string($pass);*/

        $query = sprintf("SELECT username, password FROM users WHERE username = '%s' AND password = '%s'",                   
                    mysql_real_escape_string($username), mysql_real_escape_string($pass));

        $result=mysql_query($query);

            if(mysql_num_rows($result) == 1) // preveri, če je uporabnik v bazi 
            {
                $user = mysql_fetch_array($result);

                $_SESSION['prijavljen'] = 1;
                $_SESSION['id_user'] = $user['id'];
                $_SESSION['username'] = $user['username'];

                echo   // preusmeri na index.php
                ("<SCRIPT LANGUAGE='JavaScript'>
                window.alert('Uspešna prijava!')
                window.location.href='index.php'
                </SCRIPT>");
            }
            else
            {
                echo 
                ("<SCRIPT LANGUAGE='JavaScript'>
                window.alert('Napačno uporabniško ime /geslo..')
                window.location.href='prijava.php'
                </SCRIPT>");
            }
    }
    else
    {
        echo 
        ("<SCRIPT LANGUAGE='JavaScript'>
        window.alert('Niste izpolnili vseh polj!')
        window.location.href='prijava.php'
        </SCRIPT>");
    }
?>

何が問題なのかわかりません..

4

2 に答える 2

0

スクリプトが実際に含まれていることを確認するには、include_once タグを require_once タグに変更する必要があります。

また、SQL インジェクション攻撃から身を守るために、少なくともログインには mysqli または準備済みステートメントを使用する必要があります。

ページをリダイレクトするには、php のヘッダー関数を使用できます。

$result=mysql_query($query);

        if(mysql_num_rows($result) == 1) // preveri, če je uporabnik v bazi 
        {
            $user = mysql_fetch_array($result);

            $_SESSION['prijavljen'] = 1;
            $_SESSION['id_user'] = $user['id'];
            $_SESSION['username'] = $user['username'];

            header("location:index.php");
         } else {
         echo("Napačno uporabniško ime /geslo..");
         header("location:prijava.php");
         }

これらの変更を試してみてください。

于 2013-02-21T08:53:46.540 に答える
0

あなたが行方不明です; 各Javascript行の後。あなたが必要

echo ("<SCRIPT LANGUAGE='JavaScript'>
                window.alert('Napačno uporabniško ime /geslo..');
                window.location.href='prijava.php';
                </SCRIPT>");
于 2013-02-21T08:28:31.867 に答える