我有一个post.php
页面,其中显示了我网站上的帖子。它根据访问它的用户类型显示功能/链接,如编写帖子的用户(会话持有者),它将显示编辑和删除按钮,而不是其他人。
为此,我正在使用会话:
if(!empty($_GET['username'])) {
$username = $_GET['username'];
}
else if(!empty($_SESSION['username'])) {
$username = $_SESSION['username'];
}
else{
// do nothing
}
现在问题出现在访客用户(用户未登录)上,因为会话持有者$_SESSION['username'];
是可操作的,并且对于logged_in用户(但不是会话持有者)$_GET['username'];
是可操作的,因此访客用户未定义此页面上的变量。为了解决这个问题,我在上面$username="";
语句中添加了else
,所以现在该语句是:
if(!empty($_GET['username'])) {
$username = $_GET['username'];
}
else if(!empty($_SESSION['username'])) {
$username = $_SESSION['username'];
}
else{
$username="";
}
这虽然解决了我的问题,但我想确定使用此方法是否存在任何安全风险或其他问题。欢迎任何更好的主意。
答案 0 :(得分:1)
首先使用post方法获取数据
成功登录后//
$username = $_POST['username'];
$_SESSION['loggedin'] = generate token or true or false ur choice;
//restrict this in ur all contructor of view
if($_SESSION['loggedin']){
//ur accessible here you are authorized;
}
else {
//sorry we are redirecting you;
}