Php 未定义的索引模式,这是case语句正在查找的变量
接收错误:PHP通知:未定义索引:第51行/web/ee_web/include/form-modal.PHP中的mode 第51行Php 未定义的索引模式,这是case语句正在查找的变量,php,Php,接收错误:PHP通知:未定义索引:第51行/web/ee_web/include/form-modal.PHP中的mode 第51行 switch($_GET["mode"]) { 它所在的代码块: switch($_GET["mode"]) { case "login": login_user(); break; case "logout": session_destroy(); print "<p>You are now log
switch($_GET["mode"]) {
它所在的代码块:
switch($_GET["mode"]) {
case "login":
login_user();
break;
case "logout":
session_destroy();
print "<p>You are now logged out.</p>";
print "<p><input type=\"submit\" id=\"closeButton\" name=\"closeButton\" value=\"Close\" onclick=\"self.parent.tb_remove(); parent.location.reload(1);\" /></p>";
break;
default:
login_user();
//print "<p>How'd you end up here?</p>";
break;
}
开关($\u GET[“mode”]){
案例“登录”:
登录用户();
打破
案例“注销”:
会话_destroy();
打印“您现在已注销。”;
打印“”;
打破
违约:
登录用户();
//打印“你是怎么来到这里的?”;
打破
}
页面的URL是index.php?mode=logout,这就是我将值传递到mode的方式
有什么方法可以解决此错误消息吗?将其包装成if-like
if( isset($_GET['mode'])) { switch ... } else { print_r($_GET); }
看看你到底得到了什么。把它包装成一个if like
if( isset($_GET['mode'])) { switch ... } else { print_r($_GET); }
看看你到底得到了什么。通过url和代码的结合,我能想到的唯一一件事是,也许你正在使用一个不允许GET的框架 例如,我知道CodeIgniter在默认情况下被禁用
在页面顶部执行
var\u dump(GET)
也会告诉您更多信息。通过url和代码的组合,我唯一能想到的是,也许您使用的框架不允许GET
例如,我知道CodeIgniter在默认情况下被禁用
在页面顶部执行
var\u dump(GET)
也会告诉您更多信息。我看不出问题所在。但是为了更简洁的代码和故障排除,您可以尝试:
$this_mode = $_GET["mode"];
switch($this_mode) {
我看不出有什么问题。但是为了更简洁的代码和故障排除,您可以尝试:
$this_mode = $_GET["mode"];
switch($this_mode) {
我会给它一个默认值:
if (!isset($_GET['mode']) $_GET['mode'] = "login";
switch($_GET["mode"]) {
case "logout":
session_destroy();
print "<p>You are now logged out.</p>";
print "<p><input type=\"submit\" id=\"closeButton\" name=\"closeButton\" value=\"Close\" onclick=\"self.parent.tb_remove(); parent.location.reload(1);\" /></p>";
break;
case "login" :
default:
login_user();
//print "<p>How'd you end up here?</p>";
break;
}
if(!isset($\u GET['mode'])$\u GET['mode']=“login”;
开关($\u GET[“mode”]){
案例“注销”:
会话_destroy();
打印“您现在已注销。”;
打印“”;
打破
案例“登录”:
违约:
登录用户();
//打印“你是怎么来到这里的?”;
打破
}
另外,您可以这样将它们放在一起,而不是复制
案例“登录”的代码:
和默认值:
。我会为其提供一个默认值:
if (!isset($_GET['mode']) $_GET['mode'] = "login";
switch($_GET["mode"]) {
case "logout":
session_destroy();
print "<p>You are now logged out.</p>";
print "<p><input type=\"submit\" id=\"closeButton\" name=\"closeButton\" value=\"Close\" onclick=\"self.parent.tb_remove(); parent.location.reload(1);\" /></p>";
break;
case "login" :
default:
login_user();
//print "<p>How'd you end up here?</p>";
break;
}
if(!isset($\u GET['mode'])$\u GET['mode']=“login”;
开关($\u GET[“mode”]){
案例“注销”:
会话_destroy();
打印“您现在已注销。”;
打印“”;
打破
案例“登录”:
违约:
登录用户();
//打印“你是怎么来到这里的?”;
打破
}
另外,你可以这样把它们放在一起,而不是重复
案例“登录”的代码:
和默认值:
你可以这样把它们放在一起。到目前为止的3个答案对我来说是有意义的,我会把Kemo的答案和我的答案放在一起