聊天实现卷曲
问题描述:
我只是试图设计一个聊天应用程序,它允许在两个域的用户之间进行跨域的聊天,也就是允许创建聊天室和聊天。所以,我被建议使用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
。
谢谢vadim,yea ....我需要跨域聊天 – preet 2012-07-06 22:17:08
然后,正如我前面提到的,最简单的代理就足够了。在Apache上,你可以使用'mod_rewrite'来做到这一点: – Vadim 2012-07-09 10:17:51
然后,正如我之前提到的,最简单的代理就足够了。在apache上,即使使用'mod_rewrite'也可以这样做: 'Rewrite /router/domain.com/(.*)$ http://domain.com/$1 [P]' – Vadim 2012-07-09 11:59:23