0

我有两个网站

  • 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;
?>

第二个域上的脚本

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

1 回答 1

1

这两个域是否在同一台服务器和 Apache+PHP 堆栈上运行?在这种情况下,您只需要设置 cookie.example.com而不是www.example.com(默认)。会话数据存储在同一台服务器上,因此可以共享会话。

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

session_start();
...

你可以看看这个答案Sharing php Session ($_SESSION) across multiple domain

对于 JS 方面,由于不允许跨域 ajax。我建议使用一个<form>元素,指定一个redirect参数,以便您的登录脚本(login.php)可以在登录后将用户重定向回正确的位置。(您还需要在 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 回答