聊天实现卷曲

问题描述:

我只是试图设计一个聊天应用程序,它允许在两个域的用户之间进行跨域的聊天,也就是允许创建聊天室和聊天。所以,我被建议使用curl和ajax。但我不知道我该怎么做,也不太了解卷曲。我知道它用于使用HTTP,各种协议在域之间传输文件/数据。但我有问题,如何通过登录检查在域之间传输消息。 我发现下面的代码片段时,我GOOGLE了,但无法理解它。 CURL_SSL_VERIFYPEER是否执行域的验证并仅重定向授权的域? 并请解释我什么 curl_setopt($ ch,CURLOPT_POSTFIELDS,“user_name = $ user_name & cmd = $ send_cmd & domain = $ my_domain”);聊天实现卷曲

// code snippet // 

$ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); 
     curl_setopt($ch,CURLOPT_FAILONERROR,1); 
     curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1); 
     curl_setopt($ch, CURLOPT_POST, 1); 
     curl_setopt($ch, CURLOPT_POSTFIELDS,"user_name=$user_name&cmd=$send_cmd&domain=$my_domain"); 
     $res = curl_exec($ch); 
     curl_close($ch); 

2)我的第二个问题是我想在这里使用会话变量,所以使用$ _SESSION。我开始知道,无论何时我们在页面中使用会话变量,我们都需要使用session_start();但为什么即使我没有在顶部使用session_start(),它也能工作? 我只是给了下面的代码

// code // 
require_once 'db_connect.php'; 

if (isset($_SESSION ['user_id']) && !empty($_SESSION ['user_id'])) 
{ 

    echo '<p align="center">Hi, '.$_SESSION ['first_name'].'</p>'; 
    $u_name = $_SESSION['user_name']; 
    include 'home.php'; 
} 
else 
{ 
//some stmt 
} 

/*******home.php file ****/ 

<?php 
require_once 'dbconnect.php'; 
$_SESSION['username'] = $u_name; 

?> 

在上面我没有使用任何的session_start()和我也没有得到使用GET或POST变量,但即使然后$ u_name传递如何home.php页?

3)以下语句做什么?

echo '<link rel="stylesheet" type="text/css" href="bck_ground.css" />'; 

感谢

我不知道什么是“使两个域创建聊天室聊天的用户”是指完全是,但如果你需要跨域Ajax请求,检查Access-Control-Allow-Origin头。 它受到所有现代浏览器的支持。

如果您仍然需要支持旧浏览器,您可以将ajax请求从一个域代理到另一个域。至于我,你根本不需要PHP - 例如,你可以将代理规则放入.htaccess

+0

谢谢vadim,yea ....我需要跨域聊天 – preet 2012-07-06 22:17:08

+0

然后,正如我前面提到的,最简单的代理就足够了。在Apache上,你可以使用'mod_rewrite'来做到这一点: – Vadim 2012-07-09 10:17:51

+0

然后,正如我之前提到的,最简单的代理就足够了。在apache上,即使使用'mod_rewrite'也可以这样做: 'Rewrite /router/domain.com/(.*)$ http://domain.com/$1 [P]' – Vadim 2012-07-09 11:59:23