【问题标题】:chat implementation curl聊天实现 curl
【发布时间】:2012-07-07 06:45:13
【问题描述】:

我只是想设计一个聊天应用程序,它允许两个域的用户之间跨域聊天,即允许创建聊天室和聊天。所以,我被建议使用 curl 和 ajax。但我不知道我该怎么做,而且对 curl 也不太了解。我知道它用于使用 HTTP 和各种协议在域之间传输文件/数据。但我有疑问,如何通过登录检查在域之间传输消息。 当我用谷歌搜索时,我发现了以下代码 sn-p,但无法理解。 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" />';

谢谢

【问题讨论】:

    标签: php javascript html ajax curl


    【解决方案1】:

    我不确定“允许两个域的用户创建聊天室和聊天”的确切含义,但如果您需要跨域 ajax 请求,请检查 Access-Control-Allow-Origin 标头。 所有现代浏览器都支持它。

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

    【讨论】:

    • 那么,正如我之前提到的,最简单的代理就足够了。在 apache 上,您甚至可以使用 mod_rewrite:
    • 那么,正如我之前提到的,最简单的代理就足够了。在 apache 上,您甚至可以使用 mod_rewrite: Rewrite /router/domain.com/(.*)$ http://domain.com/$1 [P]
    猜你喜欢
    • 2015-02-23
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多