-1

ヘルプ、おそらく完全な初心者の質問ですが、ログインしているかどうかにかかわらず、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> 
4

3 に答える 3

1

入力ミスがないか、クエリをもう一度確認してください。テーブル名フィールド名`でマークします。

mysql_*メソッドは非推奨であることに注意してください。代わりにPDOを使用してください。

また、$_SESSION変数が満たされているかどうかも確認してください。

于 2013-07-29T09:52:53.307 に答える
0

あなたの SQL クエリは私には間違っているようです。

簡単な解決策については、試してください

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

ところで、OO をコーディングし、ベスト プラクティス (SoC、MVC、パターンなど) を採用し、データをサニタイズし、そのようなクエリのビルドアップの代わりに準備済みステートメントを使用する方がよいでしょう。


また、$_SESSION['user']設定されていますか?

$_SESSION['user']初期化されていない可能性があることに注意してください

于 2013-07-29T09:53:56.903 に答える
-1
$sql="SELECT * FROM table_name WHERE username= '{$_SESSION['user']}'" ;

このコード行にはエラーがあります。 {$_SESSION['user']}この値を 1 つの変数に格納します。

次の例を参照してください。

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

これはあなたのために働くかもしれません。

于 2013-07-29T09:52:41.950 に答える