Php 检查用户是否已登录并且与配置文件管理上的名称相同
所以我真的不知道我要把这个标题设成什么,一般来说我想不出什么好的。尽管如此,如果你正在读这篇文章,我会尽我所能在这里解释 我试图检查当前登录的用户是否与当前配置文件管理页面上的用户相同,例如: 当前登录用户:BobPhp 检查用户是否已登录并且与配置文件管理上的名称相同,php,mysqli,Php,Mysqli,所以我真的不知道我要把这个标题设成什么,一般来说我想不出什么好的。尽管如此,如果你正在读这篇文章,我会尽我所能在这里解释 我试图检查当前登录的用户是否与当前配置文件管理页面上的用户相同,例如: 当前登录用户:Bob 如果bob正在查看自己的个人资料页面,他应该看到一个“编辑”按钮,但是,如果他正在查看“Peter”的个人资料页面,他不应该看到。我已经尝试了很多不同的方法,我认为可行的方法是使用if session等于username变量,但没有结果 我看到的问题是,要么它什么都不显示,一个空白页
如果bob正在查看自己的个人资料页面,他应该看到一个“编辑”按钮,但是,如果他正在查看“Peter”的个人资料页面,他不应该看到。我已经尝试了很多不同的方法,我认为可行的方法是使用if session等于username变量,但没有结果 我看到的问题是,要么它什么都不显示,一个空白页面(除了背景和其他),要么示例中使用的Bob可以访问所有编辑按钮,这也不正确 此外,我现在拥有的如果有任何用途: 数据库连接:
<?php
// error_reporting(E_ALL);
session_start();
$host = 'HOSTNAME';
$dbusername = 'DATABASENAME';
$dbpassword = 'PASSWORD';
$anslutning = mysqli_connect($host, $dbusername, $dbpassword) or die("<b>Could not connect to database server</b>");
$anslutning->select_db('DATABASE NAME') or die("<b>Could not connect to the specified database</b>");
到目前为止,配置文件管理页面:
if(isset($_GET['manage'])) {
$manage = $_GET['manage'];
$editAccount = $anslutning->prepare('SELECT userId, username, email, gender, age, profilePic FROM (tablename) WHERE userId=? LIMIT 1');
$editAccount->bind_param("i", $manage);
$editAccount->bind_result($userId, $username, $email, $gender, $age, $profilePic);
$editAccount->store_result();
$editAccount->execute();
echo '<h2 class="accountm_title">Account management</h2>';
if(isset($_SESSION['loggedIn'])) {
echo '
<i><a class="edit" href="index.php?editAccount='.$userId.'">Edit</a></i>
<hr size="1" width="30%" class="manageHr">
<div class="accountm">
';
}
while($row = $editAccount->fetch()) {
echo '
<form action="index.php" method="GET">
<p>Username: '.$username.' </p>
<p>Email: '.$email.' </p>
<p>Gender: '.$gender.'</p>
<p>Age: '.$age.' </p>
<p>Profile picture: <img src="'.$profilePic.'"></p>
</form>
';
}
}
if(isset($\u GET['manage'])){
$manage=$_GET['manage'];
$editAccount=$anslutning->prepare('selectuserid,username,email,gender,age,profilepicfrom(tablename),其中userId=?LIMIT 1');
$editAccount->bind_参数(“i”,$manage);
$editAccount->bind_result($userId、$username、$email、$gender、$age、$profilePic);
$editAccount->store_result();
$editAccount->execute();
echo“账户管理”;
如果(isset($_会话['loggedIn'])){
回声'
';
}
而($row=$editAccount->fetch()){
回声'
用户名:'.$Username'
电子邮件:'.$Email'
性别:‘.$SEXT。’
年龄:‘.$Age。’
个人资料图片:
';
}
}
然后,一些代码使用字段更新数据库,这似乎是可行的。用户登录系统后,您将有一个会话来存储userId,配置文件页面,如下所示:
只有当会话中的userId等于配置文件页面的userId时,才显示编辑按钮。用户登录系统后,您将有一个会话来存储userId,配置文件页面如下:
只有当会话中的userId等于配置文件页面的userId时,才显示“编辑”按钮。您需要向我们显示一些您尝试过的代码,包括为什么不起作用/出现了哪些错误。@Epodax补充道。出于某种原因,我总是忘记这样做。您可能的副本需要向我们展示一些您尝试过的代码,包括为什么不起作用/您遇到了哪些错误。@Epodax补充道。由于某种原因,我总是忘记做那件事。可能是重复的