0

私はphpにかなり慣れていないので、情報に慣れようとしています。現在、変数を設定するまで正常に機能するログインスクリプトがあります-ユーザー/パスワードを正常にチェックしますが、echosession.phpにリダイレクトすると、 $_SESSION['username']; 変数はエコーしません。また、ユーザーがログインしているかどうかを確認し、ログアウトすることもできます。

include 'db_connect.php';
include 'functions.php';
session_start();
//user tabls
 $tbl_name="users";

// username and password sent from form 
$myusername=$_POST['username']; 
$mypassword=$_POST['password']; 

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = md5($mypassword);
$myusername = $mysqli->real_escape_string($myusername);
$log_sql="SELECT * FROM $tbl_name WHERE email='$myusername' and password='$mypassword'";
$log_result=$mysqli->query($log_sql);

  // Mysql_num_row is counting table row
  $log_count=$log_result->num_rows;

// If result matched $myusername and $mypassword, table row must be 1 row
if($log_count==1){

// Register $myusername, $mypassword and redirect to file "login_success.php"

// Set username session variable
$_SESSION['username'] = $myusername;


header("location:echosession.php");
}
else {
echo "Wrong Username or Password";
}

次のようにechosession.phpをロードしようとすると:

session_start();
print("hi");
echo $_SESSION["username"];
var_dump($_SESSION);

ページは空です。

4

1 に答える 1

-1

初め

session_start(); //always in first line.  Before include/require functions.

2番目。非CookieユーザーのセッションIDを追加できます

if (session cookie exists == true)
   header('location:echosession.php');
else
   header('location:echosession.php?'.session_name().'='.session_id());

$myusername が空でないことを 100% 確信していますか?

で確認してください

var_dump($myusername); die(); //in first script before add to session

2番目のスクリプトに出力がないのはなぜですか。セッションの問題とエラー報告がオフになっているようです。

スクリプトの開始時に挿入

<?PHP 
ini_set( 'display_errors', 'On' ); 
error_reporting( E_ALL ); 
?>
于 2013-01-27T16:30:31.600 に答える