Почему теги <script> не работают на этой странице PHP?

0

Когда я пытаюсь войти

<script type="text/javascript" >
alert("hello");
</script>

в поле комментариев на моей странице PHP я не получаю окно предупреждения. Я вижу скрипт в текстовом файле, а не на веб-странице. По какой-то причине <script> не выполняется. У меня есть активные скрипты и javascript для всех моих браузеров.

My PHP code:

<?php //CFPcomments.php

include_once 'CFPheader.php';




if (isset($_POST['content']))
{
    $fp = fopen('comments.txt', 'a');
    fwrite($fp, $_POST['content'] . "<br />");
    fclose($fp);
}

echo nl2br(file_get_contents('comments.txt'));





echo <<<_END
<h3>Post comment</h3>
<form action='CFPcomments.php' method='post'>
<textarea name='content' rows ='3' cols='100'></textarea>
<br/>
<input type='submit' value='Post' />
</form>
_END;
?>

Странно. Я получил его на работу, не знаю почему.

    <!DOCTYPE html>
<html>
<head>
    <title></title>
    <script type="text/javascript">
        alert("hello");
    </script>
</head>
<body>

</body>
</html>

Когда я набираю это, кажется, работает

У кого-нибудь есть идея, почему???? Очень смущенный.

  • 0
    Вы включаете файл jquery.js ????
  • 8
    @AmolNavsupe Как вы думаете, window.alert является частью jQuery?
Показать ещё 17 комментариев
Теги:
forms

2 ответа

0
Лучший ответ

Я назначил переменную содержимому, а затем отобразил переменную в PHP-коде. Теперь это работает.

<?php //CFPcomments.php

include_once 'CFPheader.php';


setcookie("username", $GLOBALS['user'], time()+3600);
setcookie("password", $GLOBALS['pass'], time()+3600);
if (isset($_POST['content']))
{
    $fp = fopen('comments.txt', 'a');
    fwrite($fp, $_POST['content'] . "<br />");
    fclose($fp);
}

$comment =  file_get_contents('comments.txt');





echo <<<_END
<h3>Post comment</h3>
'$comment'
<form action='CFPcomments.php' method='post'>
<textarea name='content' rows ='3' cols='100'></textarea>
<br/>
<input type='submit' value='Post' />
</form>
_END;
?>
4

ваш nl2br(), скорее всего, переводит

<script type="text/javascript" >
alert("hello");
</script>

в

<script type="text/javascript" ><br/>
alert("hello");<br/>
</script><br/>

и взломать код JavaScript.

  • 0
    почему вы так думаете, скрипт script находится в nl2br ()
  • 0
    ломать - это жесткое слово, я бы сказал, что его можно повысить до такой степени, что оно больше не служит своей первоначальной цели
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню