0

ユーザーログインをトリガーするために使用しているこのPHPコードがあります。ログインを成功させるために、ユーザーは登録済みの電子メールとパスワードを使用します。私の現在の PHP コードでは、$_SESSION['loggedin'] = $dbusername を使用するすべてのページでユーザー名をエコーすることができます。私が今やろうとしているのは、この PHP コードを適応させて、配列を「loggedin」セッションに入れることです。配列にユーザー登録の詳細、つまり名、姓、会社、電子メール、およびユーザー名 (dusername) を保持する必要があります。これは、「ユーザー アカウント ページ」でそのような詳細をエコーできるようにするためです。

私のコード:

<?php

session_start();

$email = $_POST['email'];
$password = $_POST['password'];

if ($email&&$password)
{
$connect = mysql_connect("*****","***","**********") or die ("Login failed!");
mysql_select_db("dbname") or die ("Could not connect to Database"); 

$query = mysql_query("SELECT * FROM regusers WHERE email='$email'");

$numrows = mysql_num_rows($query);

if($numrows !=0)

{
while ($row = mysql_fetch_assoc($query))

{
$dbemail = $row['email'];
$dbpassword = $row['password'];
$dbusername = $row['username'];

}
if ($email==$dbemail&&$password==$dbpassword)

{
include 'loginIntro.php';
$_SESSION['loggedin']=$dbusername;

}

else
echo "Incorrect Password";

}

else
die ("That email doesn't exist");

}

else
die ("Enter a registered email and password");

?>

次に、「ユーザーアカウントページ」に次のように表示されます。

<?php

session_start();
$dbusername = $_SESSION['loggedin'];

?>

ユーザー名をエコーする目的で、この PHP コードは正常に動作します。ユーザーのユーザー名を表示したいときはいつでも。元の質問に戻ります - この PHP コードを適応させてユーザー登録の詳細を保持するために必要な知識を教えてください。そうすれば、問題のセッションを使用するページでそのような詳細をエコーできます。私の知識と理解の欠如を許してください。私は頭をかきむしりすぎて、クレードル キャップを手に入れました。どんな助けが来てもありがとう

4

2 に答える 2

0

配列をセッション変数として使用する場合は、最初にシリアル化する必要があります。( http://php.net/manual/en/function.serialize.php )。

次に、それを $_SESSION に追加し、他のページで非シリアル化 ( http://php.net/manual/en/function.unserialize.php ) できます。

2 つのアドバイスがあります。sha1 ( http://us2.php.net/manual/en/function.sha1.php )を使用してパスワードをハッシュし、時代遅れの mysql_* 関数を使用しないでください。mysqli または PDO の使用を検討してください。

于 2013-10-29T10:43:11.063 に答える