以下代码给出了错误。
<?php
echo "<a href='prefs.php?username=$PHP_USER'>$lang_menu["prefs"]</a>";
?>
我很确定这与我请求2个php变量有关,不知道如何解决。
答案 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>';
?>
编辑:一些澄清......
这些是有效的字符串:
$foo = "Hello, World!";
$foo = "Hello, 'World!'";
$foo = "Hello, \"World!\"";
这是不:
$foo = "Hello, "World!"";
正如单词所暗示的那样,SQL注入是指称为SQL的数据库查询语言。此代码不包含SQL,并且根本不与任何数据库进行交互。
因此,无论是点还是SQL注入都没有。它是关于在某些语义上下文中具有特殊含义的某些字符。这是关于text within text。