使用cURL在变量中发布常量

时间:2012-11-15 00:50:06

标签: php mysql curl

晚上好伙伴们,我有一个小问题,我试图解决,但只是不能,我希望你能帮助。

我有一个脚本,通过cURL将字符串发送到网站。这表现完全符合预期,网页响应良好。我的问题是网站上有一组我想要使用的定义(为了便于说明,下面的示例:)。我已经添加了对存储定义的文件的引用,这就像魅力一样。

  

define('TABLE_COUNTER','counter');

让我说(所有安全和mumbo-jumbo除外)我在发送到的网站上的脚本很简单:

  

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

$ _POST ['aaa']将是有效查询。如果在相关网站上我要执行以下操作,结果将执行:

  

mysql_query(“SELECT * FROM”。TABLE_COUNTER);

     

转化为:

     

mysql_query(“SELECT * FROM counter”);

但是我似乎无法在网站端获取脚本来执行任何带有常量定义的sqlquery。任何帮助将不胜感激(我在这里失去了很多头发!)。

谢谢!

1 个答案:

答案 0 :(得分:0)

执行此操作的方法是使用eval

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

但是,我并不建议这样做,因为这意味着表单输入可以包含几乎有效的PHP代码,并且它将由您的脚本执行。这比典型的SQL或XSS注入更糟糕。

此外,填写表单时,用户必须在查询的文字部分周围包含所有必要的引号。

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