标题在IF / ELSE中不起作用

时间:2014-04-02 10:35:39

标签: php http-headers

我正在尝试阻止直接访问以下文件(并且只允许访问提交表单的人),有人能说出这段代码有什么问题吗?

<?php
    if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    header('HTTP/1.0 405 Method Not Allowed');

    } else {

if(isset($_POST['a'])){

    switch ($_POST['a']) {

    case "1":
        $var = "hey";
        break;

    case "2":
        $var = "now";
        break;

    default:
        $var = "other";
    }
}

?>

1 个答案:

答案 0 :(得分:0)

 <?php
    if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
   //header('Location: http://www.google.com/');
    header("HTTP/1.0 404 Not Found");


    } else {

          if(isset($_POST['a'])){

          switch ($_POST['a']) {

                   case "1":
                            $var = "hey";
                            break;

                   case "2":
                            var = "now";
                            break;

                   default:
                            $var = "other";
                  }
          }
}

这不会打印任何内容,但会设置响应标头代码。如果您评论当前的标题行并取消评论与谷歌网址的行,它将带您到谷歌网站。如果没有更多代码可以使用此代码,那么您可以安全地忽略php结束标记'?&gt;'。