PHP-функция strip_tags оставляет теги

мой код ниже дает вывод, когда я проверяю источник страницы, не удаляя теги HTML для имени пользователя, даже если я указываю их удалить. Если я удалю теги <p> внизу и просто echo через саму функцию PHP Login(), strip_tags сработает, но если я попытаюсь вывести значение тегов полосы в HTML, это не удастся.

PHP-код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
</head>
<body>
<?php

function Login() {
    $username = $_POST['username'];
    $password = $_POST['password'];

    $username = strip_tags($username);
    $password = strip_tags($password);
    $username = trim($username);
    $password = trim($password);
?>


<?php echo "<p>" . $username . "</p>" ?></p>
<?php echo "<p>" . $password . "</p>" ?></p> 
</body>
</html>

Мы будем очень признательны за любое понимание того, почему эхо-текст $username и $password отображается с тегами.


person Patrick    schedule 02.10.2012    source источник
comment
Я предполагаю, что вы имеете в виду, что в них включены теги HTML, которые не являются тегами обертки <p> в вашем коде...   -  person Jason McCreary    schedule 02.10.2012
comment
кажется, у вашего кода есть ошибка синтаксического анализа? вы пропустили закрывающую } скобку функции   -  person GBD    schedule 02.10.2012
comment
Это просто пример кода, верно? Поскольку login() никогда не вызывается, поэтому никакие теги не удаляются (и, предположительно, register globals включен (fear))   -  person Rudu    schedule 02.10.2012
comment
У вас также есть два закрывающих элемента абзаца: один в echo и один после блока кода PHP.   -  person Jonah Bishop    schedule 02.10.2012


Ответы (1)


Вы не вызываете функцию Login() в этом примере, и вам не хватает } после объявления функции. Кроме того, переменная область отключена. Рассмотрим следующее :)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
</head>
<body>
<?php

function Login() {
    $username = strip_tags(trim($_POST['username']));
    $password = strip_tags(trim($_POST['password']));
    echo '<p>', $username, '</p><p>', $password, '</p>';
}

if (!empty($_POST)) Login();
?>
</body>
</html>
person Sean3z    schedule 02.10.2012
comment
Вау большое спасибо за вашу помощь. Это очень хорошо прояснило ситуацию! - person Patrick; 02.10.2012
comment
Без проблем! Если это решило вашу проблему, не стесняйтесь принять ответ :) - person Sean3z; 02.10.2012