-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

これを試して

<?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 インジェクションについては何もありません。これは、特定のセマンティック コンテキストで特別な意味を持つ特定の文字に関するものです。テキスト内のテキストについてです。

于 2013-07-26T11:13:30.297 に答える
1

これを使って:

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

$variables引用符で分割":

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