我想创建一个$_SESSION
值,但它只在普通页面中执行。如果我使用开关/外壳我无法获得该值。有人可以帮帮我吗?
开关/案例:
switch($_GET['act'])
{
case 'login':
include('./include/login.php'); break;
case 'logout':
include('./include/logout.php'); break;
case 'help':
include('./include/help.php'); break;
case 'help2':
include('./include/help.php'); break;
case 'contact':
include('./include/contat.php'); break;
case 'admin':
include('./include/admin.php'); break;
case 'moderate':
include('./include/moderate.php'); break;
case 'check':
include('./include/check.php'); break;
case 'belevki':
include('./include/belevki.php'); break;
case 'register':
include('./include/register.php'); break;
case 'ls':
include('./include/ls.php'); break;
case 'los':
include('./include/los.php'); break;
case 'profile':
include('./include/profile.php'); break;
case 'srok':
include('./include/check1visrok.php'); break;
default: // разглеждане на index-a
include('./include/index.php');
}
这是我想要创建会话
的链接$egn = $_POST['student'];
validegn($egn);
$_SESSION['favcolor'] = $egn;
header("location:../index.php");
这是我要显示值
的最后一页$egn = $_SESSION['favcolor'];
echo $_SESSION['favcolor'];
答案 0 :(得分:0)
当您通过header('location: ../index.php)
进行重定向时,会删除所有$ _GET值。这与$ _SESSION值和session_start()
分开,即使您根本不使用会话,它也会以这种方式工作。
在第一页上,请改为:
header("location:../index.php?act=help");'
例如,。这将保留您的GET参数,您的开关将正常工作。您可能希望编写一个动态创建重定向地址的函数。
在第二页(包含switch($_GET['act'])
)上,您将收到act
参数。
简化和总结:
$_SESSION
在session_start()
$_GET
将包含上一页通过网址传递的值,例如 http://foo.com?firstParam=1&secondParam=2 $_POST
将包含通过<form method='post'>...</form>
发送的值。您现在看到session_start()
和switch()
在您的情况下不相关,因为您在switch语句中使用$_GET
。您只需要正确传递$_GET
参数,然后就可以了。