我在网上,在学校期间使用我的网站编码(以及我的编程项目的进展),并将代码发送到我的电子邮件地址以继续在家工作。
文字可以位于<textarea>
或<input>
字段内(name="Code" id="Code"
)。
无论哪种方式,我都无法提交包含C / C ++函数的文本 fgets()
:
TODO: Include a more stable function to get user input,
such as fgets(input, 20, stdin);
我不知道为什么要提交文字:fgets(input, 20, stdin)
会出现问题,为什么<textarea>
或<input>
内的任何文字会出现问题因为它只是纯文本,而不是实际的代码。
当我点击提交时,<textarea>
中的文字包含fgets()
,但没有任何结果(而不是给我Invalid input
消息或Email Sent
消息),我的文字不是不被发送。
答案 0 :(得分:7)
可能是您服务器上的某些内容将此视为企图破解该网站。
快速Google搜索显示mod_security
(一种尝试阻止SQL注入和其他攻击等相当常见的Apache模块)可能阻止包含POST
调用的fgets()
参数。 http://forums.modx.com/thread?thread=9677
答案 1 :(得分:0)
您不应该自己将参数转换为一个字符串(如果是这样,请使用一些javascript alternative to phps urlencode()
)。
jQuery支持[1],[2] data
为anonymous object
要发送到服务器的数据。它被转换为查询字符串if 还不是一个字符串。它附加到GET请求的URL。看到 processData选项可防止此自动处理。对象必须 是键/值对。如果value是一个数组,jQuery序列化多个 具有相同键的值基于传统设置的值 (如下所述)。
所以你可以使用:
data: {
'Name': name,
'Code': code,
...
}
它应该工作,更重要的是它需要关心正确的编码(转义)。如果这没有帮助(问题不在于格式错误的“原始数据”),请尝试ceejayoz's solution。