-3

以下代码给了我错误。

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

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

4

5 回答 5

3

用。。。来代替

<?php 

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

?>
于 2013-07-26T11:11:53.223 回答
1

$variables用引号分开"

echo "<a href='prefs.php?username=".$PHP_USER."'>".$lang_menu['prefs']."</a>";
于 2013-07-26T11:10:59.463 回答
1

用这个:

<?php
echo "<a href=\"prefs.php?username=".$PHP_USER."\" >".$lang_menu["prefs"]."</a>";
?>
于 2013-07-26T11:12:23.603 回答
1

试试这个

<?php
 echo "<a href='prefs.php?username=".$PHP_USER."'>".$lang_menu['prefs']."</a>";
?>
于 2013-07-26T11:12:51.820 回答
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,并且根本不与任何数据库交互。

所以这与点或 SQL 注入无关。它是关于在某些语义上下文中具有特殊含义的某些字符。这是关于text 中的 text

于 2013-07-26T11:13:30.297 回答