0

WYSIWYG Webbuilder 8 を使用して Web サイトを構築しています。ウェブサイトの一部は、登録ユーザーのみにアクセスが制限されます。この目的のために、MySQL データベースを作成しました。サインアップフォームもあります。新しいユーザーがサインアップしたい場合、ユーザー名がデータベースに対して自動的にチェックされ、ユーザー名がまだ存在していないことを確認したいと考えています。WYSIWYG ソフトウェアにはこのオプションが組み込まれているため、AJAX 関数を使用してこれを行うつもりです。

私は現在このようなものを持っています(私の無知を許してください!):

<?php
$username = $_POST['data'];

// TODO: lookup username in database...
if ($username == 'user')
{
  echo "true";
}
else
{
  echo "false";
}
?>

これが適切かどうか、または安全かどうかはわかりません。私はSQLインジェクションやフォームの使用を伴うその他の黒魔術についていくつかの恐ろしいものを読んでおり、可能であれば落とし穴を避けたいと思っています. 親切な魂が私の要求を見て、私を助けてくれませんか? 私はどう考えてもプログラマーではありません。よろしくお願いいたします。

4

1 に答える 1

1

アプリケーションとデータベースの間のおしゃべりを処理する何かを使用したいと考えています。現在これに利用できる最良のツールの 1 つは、PDO ライブラリ、特に PDO-MySQL です。パラメータ化された(準備された)ステートメントを使用して、エスケープとSQLインジェクションの問題を処理します

MySQL でデータベースに接続してクエリを発行する例を次に示します。

$db = new PDO('mysql:host=localhost;dbname=dbname;charset=UTF-8', 'username', 'password');
$statement = $db->prepare('SELECT user_id FROM users WHERE username = :username LIMIT 1');
$statement->bindValue(':username', $_POST['data']);
$statement->execute();

if (false == $userId = $statement->fetchColumn()) {
    // No matching username was found in the database
} else {
    // A matching username was found in the database
    // $userId contains the matching user ID
}

これを JS/AJAX 統合に戻す方法を知ることは、使用しているフレームワーク (存在する場合) と、そのデータの形式に依存する可能性があります。

于 2013-01-28T14:49:06.027 に答える