其定义的功能在PHP“mysql_entities_fix_string”是没有得到所谓的(The

2019-10-22 07:06发布

<?php
require_once 'login.php';
require_once 'welcome.php';
$db_server = mysql_connect($db_hostname,$db_username,$db_password);
if(!$db_server) die("Unable to connect with MySql : " . mysql_error());

mysql_select_db($db_database) or die("Unable to connect with db");


echo <<<_END
<form action = 'ps.php' method = 'post'><pre>
Enter your Username <input type = 'text' name = 'username'>
Enter your Password <input type = 'text' name = 'password'>
<input type = 'submit' value = 'Cl1ck M3'>
</pre></form>
_END;

if (isset($_POST['username']) && isset($_POST['password']))
{
    //echo "Fine till here1";
    echo $_POST['username']."  Without htmlentities <br>";
    $usernameP = mysql_entities_fix_string($_POST['username']);
    if (!$usernameP) die ("No value fetched in the variable usernameP");

    $passwordP = mysql_entities_fix_string($_POST['password']);
    if (!$passwordP) die ("No value fetched in the variable passwordP");

    $query = "SELECT * FROM hacker WHERE username = '$usernameP' AND password = '$passwordP'";
    $result = mysql_query($query,$db_server);
    if(!$result) die ("Unable to execute query : " . mysql_error());

    $rows = mysql_num_rows($result);

        $row = mysql_fetch_row($result);
        echo $row[0];
        if ($row[0] == '$username' && $row[1] == '$passwordP')
        {
            echo "Credentials Authorized";
        }

   function mysql_entities_fix_string($string)
         {
                return htmlentities(mysql_fix_string($string));
        }   

    function mysql_fix_string($string)
        {
                if (get_magic_quotes_gpc()) $string = stripslashes($string);
                return mysql_real_escape_string($string);
         }
    }   
mysql_close($db_server);

?>

我想测试一个简单的PHP页面。 我使用的功能“mysql_entities_fix_string”过滤掉恶意输入,但程序是无法调用它。 因此,没有价值是越来越获取在$ usernameP或$ passwordP。 任何人都可以提出好的建议?

Answer 1:

如果有条件的定义函数。 如果函数定义,例如在if声明,它是唯一可用的代码执行在它之后 。 与此相反,在主范围定义的函数(“以外的所有括号”)被运行该文件的其余部分之前所定义。



Answer 2:

我想更多的东西,并意识到,我所定义的“if语句”中的函数。 得到的功能出来,这个问题得到了吹走。 BTW任何人可以解释的“if语句”这里为什么内的函数不能叫什么名字?



文章来源: The Defined function “mysql_entities_fix_string” in PHP isn't getting called