PHP语法错误,意外''',期待T_STRING或T_VARIABLE或T_NUM_STRING

时间:2013-07-26 11:09:23

标签: php variables syntax-error

以下代码给出了错误。

    <?php
echo "<a href='prefs.php?username=$PHP_USER'>$lang_menu["prefs"]</a>";
?>

我很确定这与我请求2个php变量有关,不知道如何解决。

5 个答案:

答案 0 :(得分:3)

替换为

<?php 

echo "<a href='prefs.php?username=".$PHP_USER."'>".$lang_menu['prefs']."</a>";

?>

答案 1 :(得分:1)

$variables分为引号"

echo "<a href='prefs.php?username=".$PHP_USER."'>".$lang_menu['prefs']."</a>";

答案 2 :(得分:1)

使用此:

<?php
echo "<a href=\"prefs.php?username=".$PHP_USER."\" >".$lang_menu["prefs"]."</a>";
?>

答案 3 :(得分:1)

试试这个

<?php
 echo "<a href='prefs.php?username=".$PHP_USER."'>".$lang_menu['prefs']."</a>";
?>

答案 4 :(得分:1)

显然,你不能用双引号字符串写未转义的双引号。我建议不要将未转义的文本写入HTML和URL。试试这个:

<?php
echo '<a href="prefs.php?username=' . rawurlencode($PHP_USER) . '">' . htmlspecialchars($lang_menu["prefs"]) . '</a>';
?>

编辑:一些澄清......

  1. 这些是有效的字符串:

    $foo = "Hello, World!";
    $foo = "Hello, 'World!'";
    $foo = "Hello, \"World!\"";
    

    这是

    $foo = "Hello, "World!"";
    
  2. 正如单词所暗示的那样,SQL注入是指称为SQL的数据库查询语言。此代码不包含SQL,并且根本不与任何数据库进行交互。

  3. 因此,无论是点还是SQL注入都没有。它是关于在某些语义上下文中具有特殊含义的某些字符。这是关于text within text