[英]Query Row Depending on Login
我正在尝试从表中echo
一些数据,这些数据只与登录的人有关。例如,如果我有一个表: ID-username-password-avatar
我想显示登录的人的头像,我该怎么做呢? 到目前为止,无论是谁登录,我都设法在第一行中echo
第一个头像。
这是我的会话代码:
<?php
session_start();
if (!isset($_SESSION['myusername']))
{
header('Location:login.php');
}
这是我尝试根据使用哪个用户连接获取行
FROM login WHERE username='$name'"
$conn = new PDO("mysql:host=MYHOST;dbname=MYDBNAME", "NAME", "PASSWORD");
$name = "demo"; $stmt = $conn->query("SELECT * FROM login WHERE username='$name'");
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_OBJ);
$wm = array('avatar' => $row->avatar);
?>
将您的名字放在$_SESSION['myusername']
超全局中。 然后,您可以从任何页面获取它,直到会话被销毁。
在你的代码中:
$_SESSION['myusername'] = $name;
与此类似,您也可以放置图像路径并显示头像。
编辑
为了更多地改进我的答案,我将为您提供登录表单的完整示例。
假设我们有一个(X)HTML表单,如下面的代码所示,你可以称之为“login.php”:
<form action="login.php" method="post">
<dl>
<dt>Username:</dt>
<dd><input type="text" name="username"/></dd>
<dt>Password:</dt>
<dd><input type="text" name="password"/></dd>
<dt><input type="submit"/></dt>
</dl>
</form>
现在,当您拥有(X)HTML代码时,您需要添加必要的PHP代码:
<?php
if( isset($_POST["username"]) )
{
$username = $_POST["username"];
$password = $_POST["password"];
$connection = new mysqli("host", "name", "password", "dbname");
$connection->set_charset("utf8");
$username = $connection->real_escape_string($username); //Security
$password = $connection->real_escape_string($password); //Security
$result = $connection->query("SELECT * FROM login WHERE username LIKE BINARY '$username' AND password LIKE BINARY '$password'");
if($result->num_rows==1)
{
$_SESSION['myusername'] = $username;
$row = $result->fetch_assoc();
$_SESSION['myavatar'] = $row["avatar"];
}
$connection->close();
}
?>
<form action="login.php" method="post">
<dl>
<dt>Username:</dt>
<dd><input type="text" name="username"/></dd>
<dt>Password:</dt>
<dd><input type="text" name="password"/></dd>
<dt><input type="submit"/></dt>
</dl>
</form>
现在,您使用用户名和密码打开要保护的页面,并输入类似于以下内容的PHP代码。 您可以在具有会话代码的任何页面上随意使用您的头像。
<?php
session_start();
if ( !isset($_SESSION['myusername']) )
{
header("Location:login.php");
}
echo $_SESSION['myavatar'];
?>
根据登录的用户,将显示不同的头像。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.