php給$_POST賦值會導致值為空

ndblog發表於2014-05-03

在除錯一個程式的時候發現很奇怪的現象,post傳過來的值再某些地方為空,先看下面的程式碼

 1 <?php 
 2 if($_POST[`submit`] == `Add`){
 3     if($_POST[`type`]=`movie` && $_POST[`movie_type`] == ``){
 4         header(`Location:form4.php`);
 5     }
 6 }
 7 ?>
 8 <html>
 9     <head> 
10     <title>Multipurpose Form</title>
11     </head>
12     <body>
13         <?php 
14         
15         if($_POST[`submit`] == `Add`){
16             echo `<h1>Add `.ucfirst($_POST[`type`]).`</h1>`;
17         ?>
18         <form action="form4b.php" method="post"> 
19             <input type="hidden" name="type" value="<?php echo $_POST[`type`];?>"/>
20             <table>
21                 <tr>
22                     <td>Name</td>
23                     <td><?php echo $_POST[`name`]?>
24                     <input type="hidden" name="name" value="<?php echo $_POST[`name`]?>"/>
25                     </td>
26                 </tr>
27                 <?php 
28                 
29                 if($_POST[`type`] == `movie`) {?>
30                 <tr>
31                     <td>Movie type</td>
32                     <td><?php echo $_POST[`movie_type`]?> <input type="hidden" name="movie_type" value=`<?php echo $_POST["movie_type"]?>`/></td>
33                 </tr>
34                 <tr>
35                     <td>Year</td>
36                     <td><input type="text" name="year"/></td>
37                 </tr>
38                 <tr><td>Movie Description</td>
39                 <?php } else
40                     {  echo `<tr><td>Biography</td>`;  }
41                 ?>
42                 <td><textarea name="extra" id="" cols="60" rows="5"></textarea></td>
43                 </tr>
44                 <tr>
45                     <td colspan="2" style="text-algin:center;">
46                         <?php 
47                         if(isset($_POST[`debug`])){
48                             echo `<input type="hidden" name="debug" value="on">`;
49                         }
50                         ?>
51                         <input type="submit" name="submit" value="Add" />
52                     </td>
53                 </tr>
54             </table>
55         </form>
56         <?php 
57         }
58         else if($_POST[`submit`]==`Search`){
59             echo `<h1>Search for `.ucfirst($_POST["type"]).`</h1>`;
60             echo `<p>Searching for `.$_POST["name"].`...</p>`;
61         }
62         
63         if(isset($_POST[`debug`])){
64             echo `<pre>`;
65             print_r($_POST);
66             echo `</pre>`;
67         }
68         ?>
69     </body>
70 </html>

在第29行是要根據上一個頁面傳遞過來的值來輸出資訊的,但是即使傳遞過來的值是movie,還是沒有輸出想要的值,我我在很多地方都新增了echo($_POST[`type`]);這一句話發先在程式碼最頂端還能輸出movie 的,第二行下面還是能夠輸出,就是在第三行下面就沒有值了,這裡你可能也發現錯誤了,if($_POST[`type`]=`movie`,這一句,本來是判斷語句,結果少寫了一個等號變成了賦值語句,初學者錯誤啊!!!!!!

正確的寫法應該是if($_POST[`type`]==`movie` && $_POST[`movie_type`] == “)



作者:Tyler Ning

出處:http://www.cnblogs.com/tylerdonet/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,如有問題,可以通過以下郵箱地址williamningdong@gmail.com
 聯絡我,非常感謝。


相關文章