2

セッションに小さな問題があります。私の父のマックブックのように、セッションが配置されていないブラウザーもあるようですが、セッションをブロックしないと述べた場合でも、彼のSafariはサードパーティからのCookieのみをブロックしているため、開始されませんでした。少数の例でのみこのようになります。私の兄弟のマックは正常に動作します。とにかくここにコードがあります:

ログインページ:

    if ($email==$dbusername&&md5($pass)==$dbpassword){
            $_SESSION['username']=$email;
            header( 'Location: http://www.website/start.php' ) ;

開始ページ:

session_start();
if($_SESSION['username']){
}
else{
die("<li style=\" color: black; font-family: Helvetica, sans-serif;
margin-left: 550px; margin-top: 300px; font-size: 24px; \" ><a  style=\"text-decoration: none;\" href=\"index.php\">Login or Register<a></li>  ");

とにかく、父の mac と、今日テストした別の pc で、セッションが作成されていないことがわかりました。何か助けはありますか?また、スタックオーバーフローは初めてです。この投稿で私をバッシングしないでください。スタックオーバーフローについて聞いたすべてのことから、主に私のような人々に役立ちます。間違ったセクションに投稿している場合、バッシングが許可されるのはなぜですか?親切に教えてください私をリダイレクトします。そのプロフェッショナリズム。みんなありがとう。

4

2 に答える 2

0

session_start()セッションに保存するページと、セッションからデータを取得するページにある必要があります。

私は通常session_start()、すべてのページに含まれるファイルの先頭にあります。

于 2012-09-14T02:19:18.367 に答える
0

@haynar1658 の質問に答える必要がありますがsession_start()、両方のページで使用している場合、潜在的な問題はリダイレクトである可能性があります。

header( 'Location: http://www.website/start.php' ) ;

(私はあなたの意味www.website.comまたはそれに似たものを想定しています)。

サイトが と の両方で利用できる場合、 にログインするwww.website.comと、説明した問題が発生します。次に、セッションを開いていますが、開いていないため、リダイレクト後にエラーメッセージが表示されます。website.comwebsite.comwebsite.comwww.website.com

編集: サブドメイン間でセッションを機能させるには、次のようなものを使用できます。

$some_name = session_name("some_name");
session_set_cookie_params(0, '/', '.website.com');
session_start();

どこでも使用できますsession_start();

別の方法は、ファイルのようなものを使用して.htaccess、常にwwwバージョンにリダイレクトすることです。

于 2012-09-14T01:05:44.657 に答える