2012-11-15 28 views
0

晚上好友们,我有一个小问题,我试图解决,但只是不能,我希望你能帮助。使用cURL在一个变量中发布一个常量

我有一个脚本,通过cURL发送字符串到网站。这表现完全如预期,并且网页响应正常。我的问题是,我想在网站上定义一组定义(出于说明目的,以下示例:)。我已经添加了一个对存储定义的文件的引用,这就像一个魅力。

define('TABLE_COUNTER','counter');

假设(所有安全和天书除外)我的网站我送对剧本有一个简单的:

的mysql_query($ _ POST [ 'AAA']);

其中$ _POST ['aaa']将是一个有效的查询。如果在问题的网站上我做了以下操作,结果将会执行:

mysql_query(“SELECT * FROM”。TABLE_COUNTER);

换算成:

的mysql_query( “SELECT * FROM计数器”);

但是,我似乎无法得到在网站结束脚本执行任何sqlquery常量定义。任何帮助将不胜感激(我在这里失去了很多头发!)。

谢谢!

+0

你得到了什么错误? –

+0

标准无效查询(因为实际发送的查询是以下内容:SELECT * FROM)TABLE_COUNTER – ScottMcGready

+0

是否在您打算使用它的页面上定义了TABLE_COUNTER?是否已将错误报告设置为显示包括通知在内的所有错误? –

回答

0

做到这一点的方法是使用eval

$myquery_string = 'mysql_query('.$_POST['aaa'].');'; 
eval($myquery_string); 

不过,我真的不建议这样做,因为这意味着表单输入几乎可以包含有效的PHP代码,它会被执行通过你的脚本。这比典型的SQL或XSS注入更糟糕。

此外,填写表单时,用户将不得不围绕查询的文字部分包含所有必要的引号。

更好的解决方案是为输入定义模板语言,并让PHP脚本用适当的常量替换模板占位符。但我不会为你写这个。

+0

Now这很酷,我喜欢那样。我已经采取了一些措施阻止SQL注入,但感谢您的意见。 – ScottMcGready