我正在尝试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);
?>
答案 0 :(得分:2)
将您的名字放在$_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'];
?>
根据登录的用户,将显示不同的头像。