2010-11-17 3 views
0

Вот код:PHP Echo Сбой в Котировки

<form method="POST" action="<? echo $PHP_SELF; ?>" enctype="multipart/form-data"> 

Он показывает, как HTML: <form method="POST" action="<? echo $PHP_SELF; ?>" enctype="multipart/form-data">

PHP работает на остальной части моего кода, но это один имеет меня зуд моя голова

EDIT :

Вот код, чтобы отобразить его:

<? 
$AssignedTo = $_POST['id']; 
if (isset ($_POST['submit'])) // if the form was submitted, display their name 
{ 
// Action to be completed once the form is submitted 
} 
else // form hasn't been submitted, so display the form 
{ 
echo '<form method="POST" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data"> 
<h2>**** - Add </h2> 
</form>'; 
} 
?> 
+2

Это будет работать нормально. Здесь нужна дополнительная информация. – Brad

+0

проверьте открытые кавычки в предыдущем коде или открытый тег php, например: infinity

+0

Также обратите внимание, что '$ PHP_SELF' не является допустимой переменной сам по себе (вам нужно определить его). См. [Список зарезервированных переменных] (http://php.net/manual/en/reserved.variables.php) и [список зарезервированных констант] (http://php.net/manual/en/reserved. constants.php).Информация, которую вы ищете, находится в '$ _SERVER ['PHP_SELF']': см. [Документы на '$ _SERVER'] (http://www.php.net/manual/en/reserved.variables.server. PHP). – ircmaxell

ответ

2

Поскольку вы уже вторя строку оборачивать его в другом PHP блоке является ненужным и выигранным не анализируется

<? 
$AssignedTo = $_POST['id']; 
if (isset ($_POST['submit'])) // if the form was submitted, display their name 
{ 
// Action to be completed once the form is submitted 
} 
else // form hasn't been submitted, so display the form 
{ 
echo '<form method="POST" action="'.$PHP_SELF.'" enctype="multipart/form-data"> 
<h2>**** - Add </h2> 
</form>'; 
} 
?> 

Это должно сработать.

+0

Не заметил этого, я думал, что это будет эхом, как HTML, и поэтому понадобится снова обернуть. – PwnageAtPwn

1

Не должно быть <?php, а не <??

Что произойдет, если вы используете

<? echo "action='".$PHP_SELF."'"; ?>

(Таким образом, вы заключаете действие внутри эхо)?

Используя одиночные кавычки «» делает PHP компилятор рассматривать все это как символьной строки, поэтому он никогда не будет эхо переменной, на который ссылается $ PHP_SELF, но фактическая строка «$ PHP_SELF»

(также вы «ве получили вложенные PHP теги, что не имеет смысла)

echo '<form method="POST" action="'.$PHP_SELF.'" enctype="multipart/form-data"> 
<h2>**** - Add </h2> 
</form>'; 

Альтернативный метод:

printf('<form method="POST" action="%s" enctype="multipart/form-data"> 
<h2>**** - Add </h2> 
</form>', $PHP_SELF); 
+0

Его более короткая версия, и я ранее пробовал PwnageAtPwn

+0

у вас пропала двойная кавычка перед точкой с запятой – infinity

+0

@infinity: Cheers :) (Не то, чтобы это было актуально сейчас) – Psytronic

0

Первое использование <?php также проверяет открытые кавычки в предыдущем коде. Если вы разместите остальную часть кода, будет проще.

вложенной PHP теги очень неправильно:

<?php 
$AssignedTo = $_POST['id']; 
if (isset ($_POST['submit'])) // if the form was submitted, display their name 
{ 
// Action to be completed once the form is submitted 
} 
else // form hasn't been submitted, so display the form 
{ 
echo '<form method="POST" action="'.echo $PHP_SELF.'" enctype="multipart/form-data"> 
<h2>**** - Add </h2> 
</form>'; 
} 
?> 
+0

Уже сделано, но все еще не работает, поэтому поэтому я попробовал < ? – PwnageAtPwn

+0

проверить ответ – infinity

0

Вы уверены, что короткие теги разрешено выполнять PHP?

+0

Да, я использовал его выше в моем коде, и он не отображает это. – PwnageAtPwn

+0

Уверены ли вы, что у вас много вложенных тегов php? – MatTheCat

0

Не вставлять PHP открытых тегов внутри самого PHP

echo '<form method="POST" action="',$PHP_SELF,'" enctype="multipart/form-data"> 
+0

Я стараюсь избегать синтаксиса ',' в выражении 'echo' и вместо этого использовать' .' concatenation. Это означает, что в дальнейшем легче назначить строку переменной вместо того, чтобы ее печатать с помощью 'echo'. – Treffynnon