我正在PHP中构建应用程序,我试图从单个index.php文件处理路由和用户管理(使用会话和cookie)。在单个PHP文件中使用多个switch语句
下一块代码是我设置的基本路由逻辑。
$request_uri = explode('?', $_SERVER['REQUEST_URI'], 2);
switch ($request_uri[0]) {
// Home page
case '/':
require 'partial/_main.php';
break;
// About page
case '/about':
// do logic
break;
// Everything else
default:
header('HTTP/1.0 404 Not Found');
echo "<h1>Not Found</h1>";
break;
}
我也想控制未登录或登录的用户可以看到网站的其他部分。
例如:
$status = $_COOKIE['uid'];
switch ($status) {
case $status === '':
// Not logged in
// echo "Not logged in";
break;
default:
echo "Hello there, ".$status;
require 'partial/_user-actions.php';
break;
}
现在的问题是我无法检查$_COOKIE['uid']
当它没有设置。我收到一个“未定义的变量”错误。
首先运行if(isset($ _ COOKIE ['uid'])),然后将其分配给$ status –
@DhavalChheda做到了。现在,我的switch语句中的情况变得多余。 –