从会话用户名中选择

时间:2014-03-23 19:47:12

标签: php mysql email session

我已经阅读了所有问题,或者至少阅读了很多问题,而且我看到的是很多代码,对于像我这样的初学者来说并没有多大帮助......

也许,你会说我开始用登录,注册和所有这些东西开始制作我自己的网页,我也看到人们谈论放弃mysql的东西以避免sql注入和所有这些安全细节。

我需要知道的只是一个关于1个代码的错误。

$mail = mysql_query("select email from users where username = '".$_SESSION['username']."'");

这是我在登录会话中获取实际用户的电子邮件所做的变更。

当我将您的电子邮件设为<?php echo"$mail".; ?>时,它会为我提供下一个详细信息:

  

您的电子邮件是资源ID#8。

为什么我会这样做?我已经在会话开始的地方制作了变量,但是我没有得到指定用户在该列中的内容。

很抱歉,如果我不能在这里发帖,但我真的没有看到有同样问题的人。我所看到的只是复杂的代码,我真的不太了解它。

我还是初学者,所以如果你们能帮助我,我将不胜感激。

3 个答案:

答案 0 :(得分:2)

您必须获取查询的返回行: $row = mysql_fetch_assoc($query/$mail);

您查询的所有列现在都在数组$row中。

print "Email: " . $row['email'];

此示例假定查询仅返回一行。 如果您要查询多行,则每次需要新行时都必须调用mysql_fetch_assoc

while($row = mysql_fetch_assoc($query)) {
祝你好运。

答案 1 :(得分:2)

你必须使用mysql_fetch_ [array | object | assoc] PHP函数

$res = mysql_query("select email from users where username = '".$_SESSION['username']."'");
$field = mysql_fetch_assoc($res);
echo $field['email'];

答案 2 :(得分:0)

拿你需要的东西。

$user = strip_tags($_SESSION['username']);

$sql = sprintf("SELECT FROM email WHERE username='%s'", mysql_real_escape_string($user));

$result = mysql_query($sql);

$row = mysql_fetch_array($result);

$mail = $row['email'];


echo "Your email is" .$mail;

strip_tags()方法将删除已提交条目中的所有HTML标记。

我喜欢在进行单行查询时使用sprintf()方法,因为粘贴和更改属性名称要快得多,然后担心使用正确的引用语法。

一旦您的查询处理完毕,您需要获取结果,然后您可以访问表中的数据。

我希望这会帮助你。