Http 是否可以将空格字符传递给cgi?
我有一个已编译的c二进制文件(setch),它接受参数Http 是否可以将空格字符传递给cgi?,http,cgi,lighttpd,Http,Cgi,Lighttpd,我有一个已编译的c二进制文件(setch),它接受参数HIGH/LOW/OFF,因此我试图从javascript/jquery执行命令egsetch OFF,因此: $.get("cgi-bin/setch.cgi","OFF"); -or $.get("cgi-bin/setch OFF"); 因为它是get,所以空间被编码成%20,当然了。但是,服务器随后尝试执行命令setch%20OFF,并返回: 404找不到 如果没有参数,程序将执行并返回我的消息: 无参数 ie所有路径、权限
HIGH/LOW/OFF
,因此我试图从javascript/jquery执行命令egsetch OFF
,因此:
$.get("cgi-bin/setch.cgi","OFF"); -or
$.get("cgi-bin/setch OFF");
因为它是get,所以空间被编码成%20,当然了。但是,服务器随后尝试执行命令setch%20OFF
,并返回:
404找不到
如果没有参数,程序将执行并返回我的消息:
无参数
ie所有路径、权限等均正常
我想在这里做不可能的事吗?或者我在服务器(lighttpd)配置中遗漏了什么?
谢谢您想将参数传递给CGI。这样做的方法不是用空格分隔它们,而是将参数放在“?”字符后面。然后,HTTP服务器将把问号后面的所有内容存储在QUERY_STRING环境变量中,然后CGI可以读取该变量 即 在C程序中,使用
getenv(“QUERY\u STRING”)
访问传递的参数
检查HTTP服务器为CGI程序设置的所有环境变量的列表。确保将这些值视为不受信任的数据。要将参数传递给CGI。这样做的方法不是用空格分隔它们,而是将参数放在“?”字符后面。然后,HTTP服务器将把问号后面的所有内容存储在QUERY_STRING环境变量中,然后CGI可以读取该变量 即 在C程序中,使用
getenv(“QUERY\u STRING”)
访问传递的参数
检查HTTP服务器为CGI程序设置的所有环境变量的列表。请务必将这些值视为不受信任的数据。非常感谢。我找不到的关键点是环境变量的使用。现在一切都好了…非常感谢。我找不到的关键点是环境变量的使用。现在一切都好了。。。
$.get("cgi-bin/setch?OFF");