javascript を使用してデータベースに接続し、値にアクセスするにはどうすればよいですか? ユーザーを登録したいので、ユーザーを作成しようとしているときに、ユーザー名が使用可能かどうかを確認したい(データベースで検索操作を行いたいという意味)? JavaScriptでこれを行うことはできますか?クライアント側で使用しているため、混乱していますか?
4 に答える
JavaScriptでこれを行うことはできますか?クライアント側で使用しているため、混乱していますか?
JavaScript は汎用プログラミング言語であり、クライアント側の言語ではありません。人々は常にサーバー側でそれを使用しています。
ただし、 Web ブラウザーでJavaScript を使用してサーバー上のデータベースにアクセスできますか?答えは: 直接ではありません。ジャンプしたい); 中間層が必要です。クライアントの JavaScript からサーバーにメッセージを送信することができます (たとえば、ajaxを介して)。次に、サーバー側のコードでこれらのメッセージを処理し、メッセージが有効で悪意がないことを確認してから、慎重にデータベースを更新し、結果をクライアント ブラウザーに送り返す必要があります。
サーバー側の言語は、JavaScript またはサーバーで使用するその他の言語にすることができます。あなたが質問jsp
にタグを付けたことに気づいたので、おそらくサーバー側のものを(JavaScriptではなく)Javaで書きたいと思うでしょう。その場合、また ajax を使用して、最新の非ページ更新エクスペリエンスを実現する場合は、次のようになります。
ユーザーがアクションを実行し、ブラウザでイベントを発生させます。
JavaScript コードは、ajax メッセージをサーバーに送信することでイベントを処理します。ログインの場合は、おそらく
POST
.JSP (さらに良いのは、サーブレット)
POST
メッセージを受信しますコンテンツを検証し、悪意のあるコンテンツやその他の同様の攻撃をチェックします
SQL インジェクション攻撃を回避するために、準備されたステートメントなどを使用してデータベースをクエリおよび/または更新します。
操作の結果に関する情報を含む応答を送信します
JavaScript コードは
POST
ajax 呼び出しへの応答を受け取り、それを調べて何が起こったかを確認します。
直接ではありません。JavaScript は通常、信頼できないマシンで実行されています。JavaScript はスクリプト言語なので。そのため、ajax 呼び出し (投稿など) を使用してサーバー データベースにアクセスすることを検討する必要があります...
同様のスレッドで問題が議論されています
JavaScriptでは不可能です。一部のユーザーの入力をデータベースに対して検証するには、サーバー側のスクリプト言語が必要です。
いくつかの理由(悪い習慣、セキュリティの問題など)でデータベースにアクセスするためにクライアントJavaScriptを使用するべきではありませんが、本当にこれを行いたい場合は、次の例を示します。
var connection = new ActiveXObject("ADODB.Connection") ;
var connectionstring="Data Source=<server>;Initial Catalog=<catalog>;User ID=<user>;Password=<password>;Provider=SQLOLEDB";
connection.Open(connectionstring);
var rs = new ActiveXObject("ADODB.Recordset");
rs.Open("SELECT * FROM table", connection);
rs.MoveFirst
while(!rs.eof)
{
document.write(rs.fields(1));
rs.movenext;
}
rs.close;
connection.close;
SQLサーバーに接続するためのより良い方法は、PHP、Java、.NETなどのサーバー側言語を使用することです。クライアントjavascriptは、インターフェースにのみ使用する必要があります。
そして、サーバーjavascriptの存在についての古代の伝説の噂がありますが、これは別の話です。;)