【问题标题】:Creating a user profile page创建用户个人资料页面
【发布时间】:2015-10-15 11:04:31
【问题描述】:

我正在创建个人资料页面,我将使用此简单代码区分用户是访问自己的个人资料还是其他用户

if(isset($_GET['username']) && !empty($_GET['username'])) { 
$username = $_GET['username'];
}
else {
$username = $_SESSION['username'];
}

现在的问题是我正在使用会话和 cookie 来实现自动登录功能。在header.php 和accountsettings.php 我定义用户名是这样的:

if(isset($_SESSION['username'])) {
  $username = $_SESSION['username'];
}
else if(isset($_COOKIE['username'])){
  $username = $_COOKIE['username'];
}
else
{
 //invalid ---
}

此代码适用于两个页面,因此如何在个人资料页面上设置用户名,它会检查$_GET['username'],或者$_SESSION['username'] 或$_COOKIE['username']

【问题讨论】:

  • 可能是这样的<span class="username"><?= $username; ?></span>?
  • 只需将这部分粘贴到那里 if(isset($_SESSION['username'])) { $username = $_SESSION['username']; } else if(isset($_COOKIE['username'])){ $username = $_COOKIE['username']; } else { //invalid --- } 取自您的 sn-p
  • @noobie-php 那么$_GET['username']呢?
  • 不需要使用isset() AND !empty() 你可以使用empty() 因为它会检查值/变量是否存在以及它是否包含值。
  • @Harman:如果它已经在会话中,它应该可以工作。如果它不使用if(isset($_GET['username']) && !empty($_GET['username'])) { $username = $_GET['username']; } else { $username = $_SESSION['username']; }

标签: php session cookies profile


【解决方案1】:

试试这个代码

if(!empty($_GET['username'])) { 
$username = $_GET['username'];
}
else if(!empty($_SESSION['username'])) { 
$username = $_SESSION['username'];
}
else if(!empty($_COOKIE['username'])) { 
$username = $_COOKIE['username'];
}else{
echo 'username not found';die;
}

【讨论】:

  • 谢谢你能帮忙吗,我正在使用.htaccess和代码RewriteEngine On RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?username=$1,当在域名后输入现有用户名时,这会打开配置文件。像www.example.com/john 这样将打开 john 的个人资料。但是,当我输入任何随机字母表示用户名不存在时,它仍然会打开个人资料页面,其中显示类似 'profile , 's photo 那么如何防止它。
  • 使用这个代码:- else { header("Location: return page name");死();
猜你喜欢
  • 2015-03-06
  • 1970-01-01
  • 2012-02-21
  • 2018-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-23
相关资源
最近更新 更多