支持php的简单C++web服务器
Simple C++ web server with php support
我作为一个学校项目在一个简单的C++HTTP服务器上工作,我想为它添加php支持。Post和Get方法应该不是问题,但我被cookie卡住了。我在谷歌上搜索了很长时间,找不到php是如何处理cookie的,它在哪里为Apache等http服务器提供输出,或者它在全局中是如何工作的。有什么想法我可以打印这个代码:
<?php
setcookie("cookie[three]","cookiethree");
?>
控制台,以便我的服务器可以读取它,并在解析(?)后将其发送到客户端?
谢谢各位
编辑:这是一个非常接近我需要的示例,但当我执行脚本时,它显示空数组。。http://php.net/manual/en/function.headers-list.php
php版本:PHP 5.3.6-13ubuntu3.2与Suhosin补丁(cli)(构建时间:2011年10月13日23:09:42)版权所有(c)1997-2011 PHP GroupZend Engine v2.3.0,版权所有(c)1998-2011 Zend Technologies
PHP从HTTP服务器本身获取其超全局变量(如Cookies
)。解析客户端请求时,必须将每个键/值对存储在适当的容器(可能是HTTPRequest
类)中。
当您的服务器与PHP接口时,您应该像apache那样编写一个模块(mod_php
)。要做到这一点,您必须编写自己的API来与模块接口。这意味着,对于您将拥有的每个模块(php、python…),您的输入/输出都将具有相同的接口。
在编写这样一个API时,您应该定义一种简单的方法来从服务器传递PHP所需的所有超全局变量。出于同样的目的,我编写了自己的HTTP服务器,PHP的文档在这一点上有点棘手,但你可以从PHP-CGI
中得到启发:在Linux/Windows上有一个php.exe
或简单的php
命令,如果我的内存很好,它可以接受变量等参数。无论如何,有几种方法可以将这些参数传递给php,我使用CGI
作为服务器。
希望这对你有帮助。
cookie的工作方式是服务器发送一个Set-Cookie
头:
HTTP/1.0 200 OK
Set-Cookie: myCookieName=myCookieKey
Set-Cookie: anotherCookie=anotherValue
// other headers and probably content
然后,一个兼容的HTTP客户端会在随后的请求中发回它:
GET /some/path HTTP/1.0
Cookie: myCookieName=myCookieKey; anotherCookie=anotherValue
这比这复杂得多,但这是最基本的。
总之,您需要:
- 当您的代码请求设置cookie时,发送一个
Set-Cookie
标头 - 在读取传入请求时,请查找
Cookie
标头
- 来自带有mbedtls TLS的Mongoose Web服务器的错误消息
- 使用 ESP8266/8285 将字符串从 Web 服务器转换为字节数组
- 可能在OpenShift3上部署C Web服务器
- 无法从Web服务器读取UTF-8缓冲区
- 有没有人知道如何终止ESP8266 http Web服务器/接入点
- 封装ESP8266 Web服务器的粘合剂功能
- 从QT Web服务器处理多个客户端
- web服务器如何知道何时完全接收到HTTP请求
- 示例web服务器和endianness
- 如何在web服务器中使用c++应用程序
- C++中的多线程 Web 服务器
- Web 服务器缓冲区
- PHP Web服务器集成到本地运行的C++exe?他们是如何互动的
- 将我的简单winsock服务器/客户端应用程序变形为简单的Web服务器
- c++的简单Web服务器
- php自定义C++模块通过命令行工作,而不是在Web服务器上
- 在 Linux 中用C++编写的 Web 服务器/Web 服务
- 客户端身份验证或与Mongoose Web服务器的相互身份验证
- 在 Web 服务器中 utf-8 和 unicode 之间进行转换
- C++ 将请求发送到 Web 服务器上的 API,然后接收 JSON 数组响应