2009-11-28 6 views
0

Серьезноошибка синтаксиса, неожиданный '<'

Анализировать ошибка: синтаксическая ошибка, неожиданный '<' на линии 22

Фрагмент кода из строки 22:

<?php 
//Submitting to ourselves via POST 
<form method="post" action="<?php echo $PHP_SELF; ?>"/> 
?> 

Попробуйте это:

Это не работает:

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" /> 
+1

nesting php tags? – Amarghosh

+0

Я только что понял, что я кодировал одну и ту же форму внутри блока кода , вместо того чтобы помещать форму вне html. – Newb

+0

Помните, что HTML-кодирование всех строк, отличных от HTML, отражается в текстовом содержимом и значениях атрибутов с помощью 'htmlspecialchars'. – bobince

ответ

0

у вас есть HTML-код внутри блока

PHP это сделать:

<?php ?> 
//Submitting to ourselves via POST 
<form method="post" action="<?php echo $PHP_SELF; ?>"/> 

или просто удалить первую строку целиком

+0

«// Отправка себе через POST» будет отображаться в разметке в вашем случае и на сайте, так как это комментарий php, а не html. – Residuum

+0

Да, я просто понял, что я кодировал код html внутри секции Вместо того, чтобы из секции php, спасибо за хедз-ап с комментарием, который заставил меня найти эту ошибку. – Newb

4

Только код PHP должен быть между <?php и ?>.

Удалить внешние PHP теги:

<!-- Submitting to ourselves via POST --> 
<form method="post" action="<?php echo $PHP_SELF; ?>"/> 

Update:

Я также изменил свой комментарий к HTML-комментарий. Вы не хотите, чтобы он отображался на странице. Кроме того, можно просто удалить комментарий, или сделать это:

<?php // Submitting to ourselves via POST ?> 
<form method="post" action="<?php echo $PHP_SELF; ?>"/> 

Если у вас есть HTML, где PHP ожидает PHP код, вы получите неожиданные ошибки «<», и если у вас есть PHP там, где должна быть HTML, он будет отображаться на веб-странице, не исполнен.

0

Попробуйте это:

< form action=" < ?php $PHP_SELF; ?>" method="post">

0

Кстати , представляя себе, может быть:

<form action="" method="post">