0

私は2つのウェブサイトを持っています

  • www.example.com
  • www.m.example.com

すべての PHP スクリプトは、最初のドメインに基づいています。最初のドメイン PHP スクリプトを使用して、モバイル サイトからユーザーをログインする必要があります。そして、ドメインを介してセッションを作成する必要があります。これどうやってするの?

PHP ファイル:

<?php
session_start();

$username = $_POST['username'];
$password = md5($_POST['password']);

//DB check

$_SESSION['log'] = $dbarray;
?>

2 番目のドメインのスクリプト

$.post('../scripts/login.php',{username:username,password:password},function(data){
  //Success
});
4

1 に答える 1

1

2 つのドメインは同じサーバーと Apache+PHP スタックで実行されていますか? その場合、(デフォルト) の.example.com代わりにCookie を設定する必要があります。www.example.comセッションデータは同じサーバーに保存されるため、セッションを共有できます。

<?php
ini_set('session.cookie_domain', '.example.com');

session_start();
...

この回答を見ることができます複数のドメインでphpセッション($ _SESSION)を共有する

クロスドメイン ajax が許可されていないため、JS 側の場合。ログイン スクリプト (login.php) がログイン後にユーザーを適切な場所にリダイレクトできるように、<form>要素を使用してパラメーターを指定することをお勧めします。redirect(リダイレクトを処理するには、login.php にコードを追加する必要もあります)

<form id="loginForm" action="http://www.example.com/script/login.php" method="post">
 <input type="hidden" name="username" value="..."/>
 <input type="hidden" name="password" value="..."/>
 <input type="hidden" name="redirect" value="http://www.m.example.com/" />
</form>

<script>$("#loginForm").submit();</script>
于 2013-09-06T04:37:31.183 に答える