2

ユーザー名変数をログイン ページから次の「ようこそ」ページに渡そうとして問題が発生しています。私は大学のサーバーを使用して Web ページをホストしているため、public_html フォルダー内の Web ファイルにアクセスします。

login.php ページでテストすると、セッションに保持されているユーザー名を出力できますが、メンバーのページで同じことを試しても、セッション配列に保持されているユーザー名が出力されませんか? 他のすべての投稿を確認しましたが、解決策がないようです。

ログイン.php

<?php
session_start();
include ('connect.php');
$userName=$_POST['username']; 
$password=$_POST['password'];  
$result = mysql_query("SELECT * FROM users WHERE username='$userName' AND password='$password'") or die ('Query is invalid: ' . mysql_error());;
$count =  mysql_num_rows($result);

if($count==1)
{
$_SESSION['username']=$userName;
header("Location: memberPage.php");
} else {
echo "Incorrect username or password";
}
?>

memberLogin.php

<?php
session_start();
include ('connection.php');

$_SESSION['username'] = $userName;
echo $userName;

//$result = mysql_query("SELECT * FROM users");
//while ($row = mysql_fetch_array($result)) {
//    echo $row['username'];
//}
?> 

<html>
<link rel="stylesheet" type="text/css" href="style.css" />

<div id = main-nav>
<a href="http://www.cs.nott.ac.uk/~rxp00u/logout.php" >Logout</a> 
</div>
</html>

PS私のコードはあまり安全ではないことに気づきました.Webサイトの基本的なフレームワークが機能するようになった後、これに取り組みます!

編集: login.php のエラー報告には次のエラーが表示されます: "警告: 不明: オープン(/var/lib/php5/sess_d760m9ebgose4liptp6jbgbc17nqjgg4, O_RDWR) に失敗しました: 許可が拒否されました (13) 不明で行 0 警告: 不明: 書き込みに失敗しましたsession data (files). session.save_path の現在の設定が正しいことを確認してください (/var/lib/php5) 行 0 の不明で"

4

3 に答える 3

1
<?php
session_start();
include ('connection.php');

$_SESSION['username'] = $userName;
echo $userName;

$userName が設定されていません。エラーがあった場合は、それを見たでしょう。もしかして

$userName = $_SESSION['username'];
echo $userName;

?

于 2012-12-08T20:45:32.543 に答える
1

on memberLogin.php you are setting:

$_SESSION['username'] = $userName;

where $userName is undefined. it appears that if you can successfully assign $userName to a $_SESSION variable on Login.php, you no longer need to set the variable. It will be accessible once you call session_start();.

于 2012-12-08T20:46:21.923 に答える
0

In memberLogin, it should be:

$username = $_SESSION['username'];

Assignment is left associative, meaning the value on the right of the = is assigned to the variable on the left of the =. Your current setup has you overwriting your session value with null.

于 2012-12-08T20:46:32.733 に答える