<?php 
if (isset($_POST[\'action\']) && $_POST[\'action\'] == \'submitted\') { 
    print \'<pre>\'; 

    print_r($_POST); 
    print \'<a href=\"\'. $_SERVER[\'PHP_SELF\'] .\'\">Please try again</a>\'; 

    print \'</pre>\'; 
} else { 
?> 
<form action=\"<?php echo $_SERVER[\'PHP_SELF\']; ?>\" method=\"POST\"> 
    Name:  <input type=\"text\" name=\"personal[name]\"><br> 
    Email: <input type=\"text\" name=\"personal[email]\"><br> 
    Beer: <br> 
    <select multiple name=\"beer[]\"> 
        <option value=\"warthog\">Warthog 
        <option value=\"guinness\">Guinness 
    </select><br> 
    <input type=\"hidden\" name=\"action\" value=\"submitted\"> 
    <input type=\"submit\" name=\"submit\" value=\"submit me!\"> 
</form> 
<?php 
} 
?>  

上面的代码就实现了将表单提交给本页面。这里使用了服务器变量$_SERVER['PHP_SELF']获取当前页面的URL地址,并将其赋给表单的Action属性。这里使用了一个小小的技巧用以服务器在收到该URL请求是确定是POST请求还是GET请求。就是在表单中增加一个隐藏的变量,在处理请求时我们通过isset函数检测是否设置了这个隐藏变量,由此判断出该请求使用了POST还是GET方法。 

收藏 打印