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

你不见了在每个 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 回答
0

您应该将您的 include_once 标签更改为 require_once 标签,以确保您的脚本实际上被包含在内。

您还应该至少使用 mysqli 或准备好的语句进行登录,以保护自己免受 SQL 注入攻击。

要重定向页面,可以使用 php 中的 header 函数

$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 回答