【发布时间】:2011-07-27 13:11:49
【问题描述】:
我在这里做错了什么?
首页.php
<html>
<body>
<?php
if (!isset($_GET['error']))
$error=array();
else
$error = $_GET['error'];
?>
<script>
function clearText(field){
if (field.defaultValue == field.value) field.value = '';
else if (field.value == '') field.value = field.defaultValue;
}
</script>
<?php
foreach($error as $key => $value){
if ($value != '')
echo '<p style="color:red;">', $value, '</p>';
}
?>
<form method="GET" action="validar.php">
First Name: <input type="text" name="firstname" value="first name here" onFocus="clearText(this)" onBlur="clearText(this)"> <br>
Last Name: <input type="text" name="lastname" value="last name here" onFocus="clearText(this)" onBlur="clearText(this)"> <br><br>
<input type="submit" value="SEND">
</form>
</body>
</html>
secondPage.php
<?php
# confirmation.php
$firstname = $_GET['firstname'];
$latname = $_GET['lastname'];
?>
<html>
<body>
<h3>Congratulations <?php echo $firstname; $lastname; ?>, you have been successfully registered</h3>
</body>
</html>
validar.php
<?php
$firstname = $_GET['firstname'];
$lastname = $_GET['lastname'];
$error['firstname'] = '';
$error['lastname'] = '';
$firstPage = "firstPage.php";
$secondPage = "secondPage.php";
$server_dir = $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . '/';
if($firstname == "first name here"){
$firstname == "";
$error['firstname'] = 'Please introduce firstname <br>';
}
if($lastname == "last name here"){
$lastname == "";
$error['lastname'] = 'Please introduce last <br>';
}
if($error == ''){
$query_string = '?firstname=' . $firstname;
header('Location: http://' . $server_dir . $secondPage . $query_string);
}
else {
$query_string = http_build_query($error);
header('Location: http://' . $server_dir . $firstPage . $query_string);
}
?>
错误消息:访问被拒绝!我是 PHP 新手,所以我不知道如何构建带有多个字段错误的查询字符串。我正在使用一个键为“字段值”的数组,因为我认为它更容易。但我不是这是最好的方法,即使是这样,我也不确定我做得很好。任何帮助,将不胜感激, 约翰
【问题讨论】:
-
您是否从 Web 服务器收到拒绝访问 (403)?回显传递给您的
header()调用'Location: http://' . $server_dir . $firstPage . $query_string的字符串的结果,以确保它是一个有效的 URL 并且将到达您期望它去的地方 -
“访问被拒绝”什么时候?用户执行什么操作,您在哪里看到“拒绝访问”?这不太可能与您的查询字符串有关。
标签: php arrays query-string