我们可以在C语言的CGI脚本中添加PHP代码吗?

我们可以在C语言的CGI脚本中添加PHP代码吗?,php,c,cgi,Php,C,Cgi,我试图在我的CGI程序(使用C)中为我的web应用程序添加一小段PHP代码,方法与使用simpleprintf在C程序中添加html代码的方法类似 这就是我所尝试的: #include <stdio.h> int main () { printf("%s%c%c\n", "Content-Type:php;charset=iso-8859-1",13,10); printf("<?php echo 'hiii';?>"); return(0);

我试图在我的CGI程序(使用C)中为我的web应用程序添加一小段PHP代码,方法与使用simple
printf
在C程序中添加html代码的方法类似

这就是我所尝试的:

#include <stdio.h>
int main ()
{

    printf("%s%c%c\n", "Content-Type:php;charset=iso-8859-1",13,10);
    printf("<?php echo 'hiii';?>");
    return(0);
}
#包括
int main()
{
printf(“%s%c%c\n”,“内容类型:php;charset=iso-8859-1”,13,10);
printf(“”);
返回(0);
}

但是,当我尝试在Apache中运行它时,它没有显示任何内容。可能是什么问题?CGI脚本中不允许使用PHP吗?在C语言中还有其他方法吗?

出于所有目的,PHP本身就是一个cgi脚本。然后需要对其进行解析和处理,例如通过apache或fastcgi

如果我理解您当前正在做的事情,那么您正在尝试发送一个标题(应该根据需要与正文分开,顺便说一句:
\r\n\r\n
),然后是一行php


但是,这个
位会按原样发送到浏览器。后者假定内容类型为html,因为不了解php。由于这些东西被封装在<代码> <代码和代码> <代码>中,浏览器将其忽略为无效标签——因此是空白页。如果您查看页面的源代码,您可能会看到php代码。

(a)以字符串形式打印的php代码就是这样的——代码中没有任何内容可以检查它是否是php代码并调用php解释器——您的输出直接进入浏览器。(b) 不,你不能这样做。(c) 对于本例,显然
printf('hiii')就是方法。-不能给你一个更笼统的答案,但是如果是CGI,你应该用CGI的其他部分一样的语言来实现这个功能。(d) http头的结尾应该是\r\n\r\n-您正在输出\r\n\r(13,10,'\n')。使其成为printf(“%s\r\n\r\n”,“内容类型:php;charset=iso-8859-1”)否,这是行不通的:您打印的内容将直接发送回浏览器。我建议你重新考虑你的设计。@enhzflep我改变了标题,但给了我相同的result@user2723949-我以前忽略了一些内容-您似乎设置了错误的内容类型。您已将内容类型设置为php-将其更改为文本。很抱歉设置了格式,这段代码确实有效-一分钟前尝试过:
#include#include int main(){printf(“%s\r\n\r\n”,“Content Type:text;charset=iso-8859-1”);printf(“hiii”);return(0)}
@enhzflep实际上我有更多的php代码,我计划这样做。。我的问题是,在登录过程中,我调用一个CGI来验证root的用户和密码,如果密码正确,我想与我们唯一的用户启动一个会话,并在每个页面中提供100秒的超时时间,我知道只使用php处理一点会话,这就是为什么我想到在CGI中提供它们。那么有没有其他方法来实现这一点呢?是的,先生,你是对的,当我查看源代码时,我能够看到php代码。所以不可能??实际上,我有更多的php代码,我计划这样做。。我的问题是,在登录过程中,我调用一个CGI来验证root的用户和密码,如果密码正确,我想与我们唯一的用户启动一个会话,并在每个页面中提供100秒的超时时间,我知道只使用php处理一点会话,这就是为什么我想到在CGI中提供它们。那么有没有其他的方法来实现这一点呢?Tbh,我很确定有可能想出一些办法,也许是通过使用php库等等,但是我没有一点线索知道如何将C cgi与php接口,所以除了强调似乎明显错误的地方外,我帮不上什么忙。