ホームページ  >  記事  >  バックエンド開発  >  PHP会員のログインコード、認証は成功、ページに飛んでもCookieの値が取得できない

PHP会員のログインコード、認証は成功、ページに飛んでもCookieの値が取得できない

WBOY
WBOYオリジナル
2016-06-13 13:20:091040ブラウズ

PHP会員のログインコード、認証は成功しましたが、ページに飛んでもCookieの値が取得できません。
トラッキングコードは、ユーザーのログイン認証を通過し、ホームページにジャンプします。その結果、ユーザーがログインしているかどうか (ユーザー名が Cookie に含まれているかどうか) を確認するためのコードがホームページにあります。 Cookie は常に空です。ローカルでテストするのが通常です。サーバーは IIS、ローカル テスト サーバーは Apache です。
関連するコードは次のとおりです:

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php
session_start( );
require_once( "getRootDir.php" );
require_once( "../inc/config.php" );

$action = get_param( "action" );
$username = get_param( "username" );
$password = md5( get_param( "password" ) );
if ( $action == "login" )
{
    $IMGVER_RandomText = $_SESSION['IMGVER_RndText'];
    $otherpwd = get_param( "otherpwd" );
    if ( $IMGVER_RandomText == $otherpwd )
    {
        $query = "select * from house_admin ";
        $result = mysql_query( $query );
        $row = mysql_fetch_array( $result );
        if ( $row )
        {
            setcookie( "house_havelogin", "true", time( ) + 36000 );
            setcookie( "house_username", $row['house_username'], time( ) + 36000 );
            header( "Location: index.php" );
            
            echo "<script language='javascript'>alert('登陆成功!');window.location.href='index.php';</script>";
        }
        else
        {
            echo "<script language='javascript'>alert('请正确输入用户名和密码!');window.location.href='login1.php';</script>";
            exit();
        }
    }
    else
    {
        echo "<script language='javascript'>alert('请正确填写验证码!');window.location.href='login1.php';</script>";
        exit();
    }
}
?><HTML>……略


index.php ページコード:
PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php
require_once( "checklogin.php" );
?>
<html>……略


これは checklogin.php ページのコードです:
PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php

if ( $_COOKIE['house_username'] == "" || empty( $_COOKIE['house_username'] ) )
{
    /*这里一直会跑进来,也就是上面的cookie获取失败*/
    header( "Location: login1.php" );
}
?>




Web サイトにはクロスドメインがありません。問題はすべて同じ Web サイトの下にあります。


-----解決策---------------------------- -
PHP コード

setcookie( "house_havelogin", "true", time( ) + 36000 );
            setcookie( "ハウス ユーザー名", $row['ハウス ユーザー名'], time( ) + 36000 );

print_r($_COOKIE);
             //header( "場所:index.php" );
            
           echo "<script language='javascript'>alert('ログイン成功!');window.location.href='index.php';</script>";
<br><font color="#e78608">------解決策--------</font><br>上記の if を判断せず、単に print_f( $ _COOKIE); どのような結果があるかを確認するか、firecookie プラグインを使用して Cookie に値があるかどうかを確認します。
<br><font color="#e78608">------解決策------------------</font><br>
1 header( "Location:index.php" ); <br>2 header( "Location:index.php" ) に print_r($row) を追加<br>3 インデックス内に echo を追加$_COOKIE['house_username'] in .php; COOKIE <br><br> に値があるかどうかを確認します php.ini で <br>output_buffering = on を設定する必要があります <br><br> まだ問題がありますログインが正常であれば、ユーザー名とパスワードを書き込むだけで誰でもログインできます <br> クエリ SQL にユーザー名とパスワードのフィールドを追加することをお勧めします <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。