security — определенная функция & quot; mysql_entities_fix_string & quot; в PHP не вызывается

<?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.
Кто-нибудь может предложить что-то?

1

Решение

Вы определяете функцию условно. Если функция определена, например, в if Заявление доступно только после ваш код выполняется над ним. Напротив, функции, определенные в основной области («вне всех скобок»), определяются до запуска остальной части файла.

2

Другие решения

Я попробовал что-то еще и понял, что определил функцию в операторе if. Выключил функцию, и проблема сдулась. Кстати, кто-нибудь может объяснить, почему функция не может быть вызвана здесь в операторе if?

-1

По вопросам рекламы [email protected]