我最近了解到在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']
相反。