2011-06-15 23 views
-5

我有下一個形式:問題的是enctype = '的multipart/form-data的'

echo "<br><form action ='maketext.php' method='post' enctype='multipart/form-data'> 
       <br> 
       $table <br><br><br> 
       <b>$subject</b> <br> 
       Сообщение: <b>$message</b> <br> 
       <input name='userfile[]' type='file' /><br /> 
       <input name='userfile[]' type='file' /><br /> 
       <input name='userfile[]' type='file' /><br /> 
       <input type ='submit' name ='Send' size = '10' value = 'Send'> 
       <input type ='hidden' name ='subject' value=$subject> 
       <input type ='hidden' name ='sms' value=$flagSms> 
       <input type ='hidden' name ='email' value=$flagEmail> 
       <input type ='hidden' name ='message' value=$message> 
       </form>"; 

我還沒有與文件的問題,但是我有與$subject和其他變量的編碼的問題。我認爲它是因爲enctype='multipart/form-data'。它真的通過一種形式傳遞變量和文件?

+1

不理解 – dynamic 2011-06-15 15:35:07

+1

這裏有什麼問題嗎? – 2011-06-15 15:36:07

+2

請告訴我們你如何試圖訪問你的PHP腳本中的數據。 – 2011-06-15 15:36:26

回答

1

您對您輸入不帶引號。如果任何這些值包含空格或html元字符,您的表單將「破壞」。

例如

$subject = "hi there"; 

會產生

<input type='hidden' name='Subject' value=hi there /> 

當表單提交,你會Send=hi結束了,因爲它被視爲在輸入標籤未知的HTML屬性there不會傳染。

你需要有這樣的事情:

<?php ?> 
<input type="hidden" name="Subject" value="<?php echo htmlspecialchars($send) " /> 

兩注的事情:

  1. 我不是在呼應這樣做。雖然echo可以輸出多行文本塊,但這太痛苦了,再加上浪費CPU資源來將該字符串解析爲PHP代碼然後輸出。相反,只需退出PHP模式並將其直接輸出爲原始html。

  2. 我已通過htmlspecialchars()處理$ send。這'轉義'任何可能被視爲HTML標記的一部分的特殊字符,而不是您傳遞的數據的一部分。

2

我認爲你的主要問題是,你的變量$主題等不放在

' ' 

試試這個

echo "<br><form action ='maketext.php' method='post' enctype='multipart/form-data'> 
       <br> 
       $table <br><br><br> 
       <b>$subject</b> <br> 
       Сообщение: <b>$message</b> <br> 
       <input name='userfile[]' type='file' /><br /> 
       <input name='userfile[]' type='file' /><br /> 
       <input name='userfile[]' type='file' /><br /> 
       <input type ='submit' name ='Send' size = '10' value = 'Send'> 
       <input type ='hidden' name ='subject' value='$subject'> 
       <input type ='hidden' name ='sms' value='$flagSms'> 
       <input type ='hidden' name ='email' value='$flagEmail'> 
       <input type ='hidden' name ='message' value='$message'> 
       </form>"; 
相關問題