Home.php赢得';t显示我是否已登录

Home.php赢得';t显示我是否已登录,php,mysql,login,Php,Mysql,Login,帮助,可能是一个完整的noob问题,但是home.php不会显示我是否登录。Home.php已连接到数据库,但我输入了正确的用户名和密码详细信息,并显示“请先登录” <?php session_start(); include("config.php"); $sql="SELECT * FROM table_name WHERE username= '{$_SESSION['user']}'" ; $result=mysql_query($sql,$ms); if( !mysql_num_

帮助,可能是一个完整的noob问题,但是home.php不会显示我是否登录。Home.php已连接到数据库,但我输入了正确的用户名和密码详细信息,并显示“请先登录”

<?php
session_start();
include("config.php");
$sql="SELECT * FROM table_name WHERE username= '{$_SESSION['user']}'" ;
$result=mysql_query($sql,$ms);
if( !mysql_num_rows($result) ) die( 'Please log in first<a href="index.php">Login</a>'          );


echo "You are Welcome ". $_SESSION['user'];


?>

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

这行代码有错误。
{$\u会话['user']}
将此值存储在一个变量中

请参见此示例:

$xyz= $_SESSION['user'];
$sql="SELECT * FROM table_name WHERE username= '$xyz'" ;

这可能对您有用。

再次检查您的查询是否有打字错误。用`标记表名字段名

请注意,
mysql.*
方法已被弃用。改用


还要检查您的
$\u会话
变量是否已填充。

您的SQL查询在我看来似乎是错误的

要获得简单的解决方案,请尝试

"SELECT * FROM table_name WHERE username='" . $_SESSION['user'] . "'";
顺便说一句,您最好编写OO,采用最佳实践(SoC、MVC、模式等),清理数据,并使用准备好的语句而不是这样的查询构建


另外,
$\u会话['user']
是否已设置


请注意,
$\u会话['user']
也可能未初始化

在何处以及如何设置
$\u会话['user']
?另外,
mysql.*
也不推荐使用。使用
mysqli.*
PDO
。添加
echo$sql。“\n”。mysql_error()
就在你的
mysql\u query()
之后,你为什么一次又一次地问同一个问题?这行是有效的,不需要更改。这不是真的。你可以使用<代码> {和<代码> } /代码>环绕字符串中的变量。考虑收到的评论,考虑修改你的答案。@ GeraldSchneider,你确信括号很好吗?是的,这是数组变量或包含“奇怪”字符的变量名的正确语法。string@GeraldSchneider隐马尔可夫模型。。。我以前从未见过这样的解决方案。我会在几分钟后尝试一下。我使用了SQL查询,它仍然显示与以前相同的结果。@user2629684将
echo mysql\u error()
添加到脚本中,就像我在上面的评论中建议的那样,并将输出添加到您的问题中
"SELECT * FROM table_name WHERE username='" . $_SESSION['user'] . "'";