0

PHP でのセッションはややこしいと思いますが、どなたか説明していただけないでしょうか。私の場合はうまくいかない例があります。私はこの方法でセッションを登録します。これがセッションを登録する正しい方法であるかどうか教えてください。

 //this is the page from where i register myusername in sessions
if($count==1){
    session_start();
    $_SESSION['myusername'] = $_POST['myusername']; 
    include("enterpincover.php");
}
else {
    echo "Wrong Pin";
}

ここでは、最初にユーザー名がアカウントを開くためにセッションに登録されているかどうかを確認し、そうでない場合は再度ログインを開きます。

ユーザーがログインしていない場合、正しいログインページが表示されます。ユーザーがログインしている場合、ウェルカムメッセージは表示されますが、ユーザーの名前は表示されません。例: デビッドへようこそ

<?php
session_start();
if(isset($_SESSION['myusername']))
{
    echo 'Welcome '.$_SESSION['myusername']; 
}
else
{
    include("leftmodules.php");
    include("rightmodules.php");
    include("login.php");
}
?>
4

2 に答える 2

3

$_POSTまたはでセッションを登録するときは$_GET、これらの変数が存在するかどうかを確認する必要があります。

if(isset($_POST['myusername'])) $_SESSION['myusername'] = $_POST['myusername'];
else die("Undefined \"myusername\"");

MySQL クエリでセッションの変数を使用する場合は、セッション (またはクッキー、またはその他の変数) を入れる前にエスケープする必要があります。を使用しmysql_real_escape_string()ます。

$_SESSION['myusername'] = mysql_real_escape_string($_POST['myusername']);

また、他のすべての出力またはスクリプトが機能しない前に、常にsession_start()スクリプトの先頭に配置してください(headers already sent警告が表示されます)。

于 2012-07-06T08:29:30.897 に答える
0

<?php session_start() は、セッションが使用されているページの一番上にある必要があります-セッションの設定が正しく、チェックした直後です。しかし、$count が 0 であるため、if 部分に入らないと思います (ユーザー名がセッションに登録されているかどうかを確認するために使用されると言いました。

echo 'アラート("テスト");';

ドキュメントの上部に session_start() が必要なだけだと思います。

于 2012-07-06T08:29:42.970 に答える