2013-08-27 31 views
0

我正在尝试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

你试过'$ name = $ _SESSION ['myusername'];'? –

+0

是的,nothings working; p – user2598957

回答

2

把你的名字放在$_SESSION['myusername']超全球化。然后,您可以从任何页面获取它,直到会话被销毁。

在您的代码:

$_SESSION['myusername'] = $name; 

这个类似,您可以把图像路径以及和显示的化身。

编辑

只是为了改善我的答案多一点点,我给你的登录表单的一个完整的例子。

比方说,我们有一个(X)HTML格式如下面的代码,你可以把它叫做“login.php中”:

现在,当你有(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']; 
?> 

根据登录的用户,会显示不同的头像。

+0

对不起,我不知道我明白你的意思, 把你的名字放在$ _SESSION ['myusername'] superglobal。 – user2598957

+0

如果你想保存一个图像路径或用户名,并在会话持续时在任何页面上获取它们,可以这样做:'$ _SESSION ['myusername'] =“\"\"”;''或$ _SESSION ['myusername' ] =“John Doe”;'。 ;-) – Luka

+0

谢谢!您的帮助! – user2598957