【问题标题】:Display User Name PHP MySql显示用户名 PHP MySql
【发布时间】:2014-03-28 21:52:29
【问题描述】:

我目前正在做一个项目,我正在尝试让用户名在他们登录时显示在页面上。 我试图在不同的地方呼应用户名,但它对我不起作用。 谁能告诉我要输入什么代码以及在哪里输入?

<?php 
mysql_connect("localhost", "root", "") or die(mysql_error()); 
mysql_select_db("project") or die(mysql_error()); 

if(isset($_COOKIE['ID_my_site'])) 

 { 

$username = $_COOKIE['ID_my_site']; 

$pass = $_COOKIE['Key_my_site']; 

$check = mysql_query("SELECT * FROM users WHERE username = '$username'")or       die(mysql_error()); 

while($info = mysql_fetch_array( $check ))   

    { 

    if ($pass != $info['password']) 

        {           header("Location: login.php"); 

        } 

else 

        { 

         echo "Admin Area<p>"; 

echo "Your Content<p>"; 

echo "<a href=logout.php>Logout</a>"; 

        } 

    } 

    } 

else 

{            

header("Location: login.php"); 

} 

?> 

【问题讨论】:

  • 你的 COOKIE 得到用户名了吗
  • 你可以在你的 while 循环中的任何地方给出以下内容: echo $info['username'];
  • 您的 mysql 查询不安全,如果可以,请使用 PDO。 php.net/manual/en/class.pdo.php 并且不要在 cookie 中存储任何用户数据,例如存储登录令牌。此外,您通过使用已有的用户名搜索数据库来获取用户名? ID对我来说听起来像一个数字。如果您做对了所有事情,您将通过$info['username'] 获取用户名。
  • 您永远不应该在 cookie 中存储密码。用户名都不是(除了使下次登录更容易)。使用会话变量来存储当前用户的数据。
  • 已经提到不要使用cookies存储密码。但是,如果用户在其计算机上禁用 cookie,并且如果您确实修复了代码以使其正常工作,它将失败。最好使用sessions

标签: php mysql session cookies


【解决方案1】:

这是一个诊断思路,先看看你的变量中肯定有字符串

echo ($username = $_COOKIE['ID_my_site']);

一旦你确定了这个,你应该能够在 html 部分进一步回显它

【讨论】:

    【解决方案2】:

    如果 $username 变量具有电子邮件 ID,则 只需使用您现有的查询选择用户名。 然后保存在会话变量或cookie中。 然后在任何你想要的地方回显这个会话变量。

    或者如果 $username 变量具有用户名,则简单地回显它。 echo ($username = $_COOKIE['ID_my_site']);

    【讨论】:

      猜你喜欢
      • 2013-10-01
      • 2015-06-23
      • 2013-07-17
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      • 2015-05-11
      • 1970-01-01
      相关资源
      最近更新 更多