我正在创建一个PHP页面,在一个页面中我想根据哪个$_GET["action"]
显示主HTML。无论哪个if ($action == "xxx")
条件
// Action Judgement
$action = isset($_GET["action"]) ? $action : 'form';
$action = isset($action) && in_array($action, array('form', 'submit')) ? $action : 'form';
if($action == "form") { ?>
// only html <form>...</form> codes here
<?php } elseif($action == "submit") { ?>
// only php codes for processing here
<?php } ?>
如果我将此网址设为abc.php?action=submit
,则HTML代码会显示在页面中。我的编码错了吗?
答案 0 :(得分:6)
你的第一行错了。通过
替换它来修复它$action = isset($_GET["action"]) ? $_GET["action"] : 'form';
或者您甚至可以通过
改进它$action = ( isset($_GET["action"]) && !empty($_GET["action"]) ) ? $_GET["action"] : 'form';
甚至更好(建议Ben D)
$action = !empty($_GET["action"]) ? $_GET["action"] : 'form';
答案 1 :(得分:3)
你混淆了变量和形式。
if($action == "form") {
echo "only html <form>...</form> codes here";
} else if($action == "submit") {
only php codes for processing here
}
答案 2 :(得分:2)
$action = isset($_GET["action"]) ? $_GET['action'] : 'form';
$action = isset($action) && in_array($action, array('form', 'submit')) ? $action : 'form';