-1

こんにちは、ウェブサイトやフォーラムを読んでいます。セッションを使用してコンテンツを防止できることを学びました。セッションをチェックし、条件に従って結果を表示する index.php ページがあります。

<?php
session_start();
if( $_SESSION['user'] != $name ) { echo "Sorry,no session found or is expired";
require( 'login.php' );
 }
else {
echo "hello,you have session existing";
 }
?>

テーブルを作成しましたdetails

FNAME
LNAME
BDAY
PASS
EMAIL
CODES

login.php は次のとおりです。

<?php
$name = $_POST['name'];
$pass = $_POST['pass'];

mysql_connect('mysqlhost','user','pass','userdatabase');

$query=mysql_query(sprintf("SELECT FNAME FROM `details` WHERE FNAME=$name AND PASS=$pass";
mysql_real_escape_string($PASS)));
if($query) { while($row = mysql_fetch_assoc($query)) { $rows[1] = $row; } } 

if( isset($name) || isset($pass) )
{
if( empty($name) ) {
    die ("ERROR: Please enter username!");
}
if( empty($pass) ) {
    die ("ERROR: Please enter
password!");
}
if( $name == $rows[1][FNAME] &&
$pass == $rows[1][PASS] )
{
    session_start();
    $_SESSION['user'] = $_POST['name'];
    header('Location: index.php');
}
else {
    echo "ERROR: Incorrect username
or password!";
   }
}
else {
?>
<html>
<head>
<body>
 //Load login form here & save $SESSION value in "name"
</html>
<?php } ?> 

だから、私のコードはどこかで間違っていて、「こんにちは、セッションが存在しています」と表示されません。

4

2 に答える 2

0

これを試して -

if( !isset( $_SESSION[ "user" ] ) )

それ以外の

if( $_SESSION['user'] != $name )
于 2013-07-16T18:16:17.633 に答える
-2

login.php では、どうにかして$_POST['name']asの値$nameを index.php に渡す必要があります。また、セッションをパスワードとして設定するのは本当に悪い考えです。いくつかのヒント:

1) 1,2,3 などのユーザー ID を使用し、それに主キーを追加し、その ID を使用してアクセス権の付与などを行います。

2)登録中にパスをmd5し、次のように確認します

if (md5($_POST['pass']) == $pass) { 
//some code
};
于 2013-07-16T11:16:27.590 に答える