我得到了这个代码:
<form action="go.php" method="POST" target="_blank">
<input name="a" type="hidden" value="1" />
<input type="submit" class="something" value="GOOD">
</form>
这是go.php
:
<?php
if(isset($_POST['a']));
switch ($_POST['a']) {
case "1":
$param1 = "nice";
break;
case "2":
$param1 = "great";
break;
default:
$param1 = "other";
}
?>
<!doctype html>
<html>
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<?php echo $param1; ?>
</body>
</html>
当我以这种方式提交表单时,我收到了"nice"消息。但是,如果我在所有三个相关的地方将a
的名称更改为b
,就像这样:
<input name="b" type="hidden" value="1" />
if(isset($_POST['b']));
switch ($_POST['b']) {
我收到了"other"的信息,而不是" nice "。
这怎么可能呢?
if(isset($_POST['a']));
应:if(isset($_POST['a'])){ // <-- curly brace, not semi-colon
我无法想象在你改变$_POST
处理部分有一个小语法错误:
if(isset($_POST['a']));
switch ($_POST['a']) {
应:if(isset($_POST['a'])){
switch ($_POST['a']) {
case "1":
//same as before
}//switch
}//end if - don't forget the closing bracket