2010-11-17 54 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可以在我的代碼的其餘部分,但是這其中有我渴望我的頭

編輯:

下面是顯示它的代碼:

<? 
$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 2010-11-17 15:52:36

+0

檢查以前代碼中打開的引號或打開php標籤例如:<?php ..... infinity 2010-11-17 16:02:48

+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 2010-11-17 16:13:44

回答

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 2010-11-17 16:08:40

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

它的一個較短的版本,我以前試過<?php – PwnageAtPwn 2010-11-17 15:54:22

+0

你已經錯過了分號之前的雙引號 – infinity 2010-11-17 16:04:45

+0

@infinity:乾杯:)(不是說它現在相關) – Psytronic 2010-11-17 16:07:17

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 2010-11-17 15:53:58

+0

檢查答案 – infinity 2010-11-17 16:08:56

0

你確定短標記允許執行PHP?

+0

是的我在代碼中使用它更高,它不顯示。 – PwnageAtPwn 2010-11-17 15:58:10

+0

你確定你沒有很多嵌套的PHP標籤嗎? – MatTheCat 2010-11-17 15:59:31

0

不嵌入在PHP本身PHP開放標籤

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

我傾向於避免使用'echo'語句中的'''語法,而是使用'.'連接。這意味着以後很容易將字符串分配給一個變量,而不是用'echo'打印。 – Treffynnon 2010-11-17 16:08:41