在调试一个程序的时候发现很奇怪的现象,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 联系我,非常感谢。