意想不到的T_VARIABLE

时间:2013-05-24 06:45:33

标签: php syntax-error

我知道,这个问题是重复的:

 if (($_POST['os'] != "") || ($_POST['cp'] != "") || ($_POST['ser'] != "")) {

                  $var .= "left join (select bug_id,os,cp,service from category_bug_map where category_bug_map.os like '."$_POST['os']".' and category_bug_map.cp like '."$_POST['cp']".' and category_bug_map.service like '."$_POST['ser']".') as category_map on ( category_map.bug_id = bugs.bug_id)";
              }

它显示,在$ var上,意外的T_VARIABLE。这有什么问题?

3 个答案:

答案 0 :(得分:2)

我认为你的问题是你试图用$ _POST连接字符串的方式。 而不是'."$_POST['os']".',你必须在“之前。

之前
'".$_POST['os']."'

这是因为。 (点)是连接运算符,必​​须在字符串的段之间。

在您的代码中替换它: $var .= "left join (select bug_id,os,cp,service from category_bug_map where category_bug_map.os like '".$_POST['os']."' and category_bug_map.cp like '".$_POST['cp']."' and category_bug_map.service like '."$_POST['ser']".') as category_map on ( category_map.bug_id = bugs.bug_id)";

答案 1 :(得分:1)

这些部分:'."$_POST['cp']".'不正确。像这样改写:

'".$_POST['cp']."' 

此处提供更多信息:http://php.net/manual/en/language.operators.string.php

答案 2 :(得分:1)

如果你知道这是重复的话,你为什么要发帖呢?

$ _POST $ $行中的点不能在字符串分隔符内,而在外面。

此外,这段代码非常糟糕,因为它暴露了SQL注入问题:http://de.wikipedia.org/wiki/SQL-Injection