-2

ユーザーがGoogleでログインし、ログインのためにポップアップウィンドウが開き、ユーザーが送信ボタンをクリックすると、ポップアップウィンドウが閉じて、ユーザーが別のページにリダイレクトするサイトを作成しました。

私はコードを実行しましたが、クロムで動作しないFF btで正常に動作します

これは私のコードです。クロムでも機能するように、どのような変更を加える必要があるか教えてください。

 <?php
   @session_start();
   require 'openid.php';
   try {


$openid = new LightOpenID;
if(!$openid->mode) {

    if(isset($_GET['login'])) {

        $openid->identity = 'https://www.google.com/accounts/o8/id';
        $openid->required = array('namePerson/first', 'namePerson/last', 'contact/email');
       // @header('Location: ' . $openid->authUrl());
    echo "<script>location.href='".$openid->authUrl()."'</script>";
    }

} elseif($openid->mode == 'cancel') {
    echo 'User has canceled authentication!';
} else {
    if($openid->validate())
    {           
         'User <b>' . $openid->identity . '</b> has logged in.<br>';

         "<h3>User information</h3>";
        $_SESSION['identity'] = $openid->identity;
        $identity = $openid->identity;
        $attributes = $openid->getAttributes();
        $_SESSION['email'] = $attributes['contact/email'];
        $_SESSION['first_name'] = $attributes['namePerson/first'];
        $_SESSION['last_name'] = $attributes['namePerson/last'];


        /* "mode: " . $openid->mode . "<br>";
         "identity: " . $identity . "<br>";
         "email: " . $email . "<br>";
        "first_name: " . $first_name . "<br>";
         "last_name: " . $last_name . "<br>";*/


    }
    else
    {
        echo 'User ' . $openid->identity . 'has not logged in.';
    }


    echo "<script>window.close();</script>";
    echo '<script>window.opener.location.href="index2.php"</script>';



 }
    } catch(ErrorException $e) {
     echo $e->getMessage();
}
?> 
4

2 に答える 2

1

window.close() がクロムで機能していないと思います。問題に直面したら、使用して問題を修正しました

window.close(); を置き換えます。以下のコードで

window.open('', '_self', ''); //simple bug fix
window.close();

これも入れてみてください

echo '<script>window.opener.location.href="index2.php"</script>';
echo "<script>window.open('', '_self', '');window.close();</script>";

それがあなたにとってもうまくいくことを願っています。

そうでない場合は、質問についてより具体的にしてください

于 2013-02-27T06:01:54.320 に答える
0

以下のオプションのいずれかを試してみてください

echo('opener.window.location.reload(true); window.close();'); またはecho('window.opener.location.reload(false); window.close();');

それでも問題が解決しない場合はお知らせください

于 2013-02-27T07:37:08.060 に答える