在Register_Globals关闭的情况下使用Xampp禁止访问


Access Forbidden using Xampp with Register_Globals Off

我最近了解到在php.ini文件中关闭register_globals更安全。

然而,当使用以下脚本时,它在register_globals打开和register_globals关闭时工作。我按下提交按钮后收到一条Error 403 Access Forbidden消息:

    <?php 
         if (isset($_POST['user']))
         {
             $user = $_POST['user'];
         }
         if (isset($_POST['address']))
         {
             $address = $_POST["address"];
        }
        if (isset($_POST['submit']))
        {
              echo "Welcome, ".$user. ". <br>";
              echo "Your address is: ".$address;
        }
    ?>
    <html>
    <head>
    <title>Personal Info</title>
    </head>
    <body>
    <form method="post" action = "<?php echo $PHP_SELF;?>">
       Name: <input type="text" name="user">
       <br>
       Address: <input type="text" name="address">
       <br>
       <input type="submit" value="submit" name="submit">
    </form>
    </body>
    </html>

我做错了什么,我只有在register_globals关闭时才会收到这个错误消息。我在Windows XP上,我使用的是Xampp 1.7.4,我是一个noob:)

$PHP_SELF必须是$_SERVER['PHP_SELF']

请改用$_SERVER['PHP_SELF']$PHP_SELF的存在是register_globals打开的副作用。

$PHP_SELF取决于register_globals。使用

$_SERVER['PHP_SELF']

相反。