-2

これは私が得ているエラーメッセージです:

Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/content/50/8492150/html/colejoh/web/ai/form.php on line 10

私の HTML フォームでは、次のコードを使用しています。

<html>
    <head>
    </head>
    <body>
        <form action="form.php" method="post">
            Search: <input type="text" name="term" /><br />
            <input type="submit" name="submit" value="Submit" />
        </form>
        <body OnLoad="document.myform.query.focus();">
    </body>
</html>

私のform.phpコードの場合:

<body>
   <?php
 $con = mysql_connect ("xxx.xxx.xxx.xxx", "user", "password");
 mysql_select_db ("user", $con);

  if (!$con)
    { 
    die ("Could not connect: " . mysql_error());
    } 
    $sql = mysql_query("SELECT * FROM ai WHERE key LIKE $_POST["term"];") or die
        (mysql_error());

       while ($row = mysql_fetch_array($sql)){
    echo 'ID: ' .$row['id'];
    echo '<br /> Key: ' .$row['key'];
    echo '<br /> Page: '.$row['page'];
  }

  mysql_close($con)
   ?>
     </body>

LIKE $_POST["term"];")がやろうとしているのは、そのコードをフォームページで送信したものにすることです。

4

8 に答える 8

5

この行が問題を引き起こしています:

 $sql = mysql_query("SELECT * FROM ai WHERE key LIKE $_POST["term"];") or die

次のように変更します。

 $sql = mysql_query("SELECT * FROM ai WHERE key LIKE " . mysql_real_escape_string($_POST["term"]) . ";") or die

mysql_また、廃止された関数の使用を避ける必要があります。むしろ、mysqli_または PDO を使用する必要があります。このコードは、SQL インジェクションに対しても脆弱です。

于 2013-07-08T18:34:47.457 に答える
1

これを試して

$sql = mysql_query("SELECT * FROM ai 
                 WHERE key LIKE '".mysql_real_escape_string($_POST['term'])."'") 
                or die(mysql_error());
于 2013-07-08T18:45:53.523 に答える
0

$sql = mysql_query("SELECT * FROM ai WHERE key LIKE 'mysql_real_escapse_string($_POST[term])'");

上記のクエリを更新します。

term を二重引用符で囲んではいけません

于 2013-07-08T18:39:23.107 に答える
0

PHP では、文字列変数を操作するときは非常に注意する必要があります。複数の文字列変数を接続するには、次のようにする必要があります。

"SELECT * FROM ai WHERE key LIKE" . $_POST["term"] . ";"

生活を楽にするために、次のような「ヘルパー」変数を作成する必要があります。

$my_variable="SELECT * FROM ai WHERE key LIKE" . $_POST["term"] . ";"

そして、次のようにスクリプトに追加します。

$sql = mysql_query($my_variable) or die(mysql_error());
于 2013-07-08T18:37:34.363 に答える
-1

これを試して

<body>
   <?php
 $con = mysql_connect ("xxx.xxx.xxx.xxx", "user", "password");
 mysql_select_db ("user", $con);

  if (!$con)
    { 
    die ("Could not connect: " . mysql_error());
    } 
    $sql = mysql_query("SELECT * FROM ai WHERE key LIKE ".$_POST["term"].";") or die
        (mysql_error());

       while ($row = mysql_fetch_array($sql)){
    echo 'ID: ' .$row['id'];
    echo '<br /> Key: ' .$row['key'];
    echo '<br /> Page: '.$row['page'];
  }

  mysql_close($con)
   ?>
     </body>
于 2013-07-08T18:35:43.017 に答える