0

Webサイトに一部のユーザーを含むデータベースを作成していて、DBに対して完全なSQLクエリを送信できるテキストボックスを備えたフォームをWebサイトに作成したいと考えています。

PHPを使用する場合、これは可能ですか?ASP.netで可能だと思いますが、私はその言語に少し慣れていません。

例:

私のページrun_sql.phpで、送信ボタン付きのテキストボックスが欲しいのですが。

テキストボックスで、次のようなコマンドを実行できるようにしたいと思います。

INSERT INTO `userdata`(`UserID`, `FirstName`, `LastName`, `Email`, `PF_Username`, `PF_Password`, `Endpoint`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7])

宣言された値をテーブルに書き込んでもらいます。

参考のためのsql.phpコード:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <title>Run SQL - TEST</title>
  </head>

    <table border="0" cellpadding="10">
      <tr>
        <td>
          <img src="images/api_rat.png">
        </td>
        <td>
          <h1>TEST</h1>
        </td>
      </tr>
    </table>
<body>
    <form action="sql.php" method="GET">
        <textarea name="comments" cols="25" rows="5">Enter your SQL query here...</textarea><br>
        <input type="submit" value="Run Query on LIVE DB" />
    </form>
</body>
</html>

これは可能ですか?よろしくお願いします!:)

4

3 に答える 3

2

確かに、接続してからmysql_query($ _ GET ['comments']);を実行してください。

しかし、このスクリプトにネットからアクセスできる場合は、本当に大きな問題がありますか?:-)

于 2013-01-04T18:22:23.323 に答える
1

それは可能ですが、それは本当に悪い考えです。誰かが入力した場合はどうなりDROP TABLE myreallyimportanttableますか?

それでも、やりたい場合は、テキスト ボックスの入力を文字列としてキャプチャし、それを mysql 接続にフィードします。

$sql = $_GET['comments'])
$dbconn = @mysql_pconnect("$dbhost:$dbport", $dbuser, $dbpassword);
return @mysql_query ($sql, $dbconn);

SQL インジェクション攻撃を楽しんでください。

于 2013-01-04T18:25:55.867 に答える
0

これを試して

<?php
$sql = $_GET["comments"];
$result = mysql_query($sql);
if($result){
//if it works show this
}else{
//if it doesnt work show this
}
?>

うまくいかない場合は教えてください。

于 2013-01-05T00:47:04.607 に答える