ASPでWebページを作る

ASPでWebページを作る

ASP(Active Server Pages)は、Microsoftのサーバーサイド Web 技術です。IIS上で動き、サーバーのコードと HTML を組み合わせます。現在の主流は ASP.NET Core ですが、VBScript の古典的な ASP を使っている既存システムは今も多くあります。この記事では、リクエストの処理、フォームの読み取り、知っておくべき実践を説明します。

テストに関する注意:この記事を書いたコンピューターには IIS と ASP がないため、コードはここでは実行していません。IIS と ASP を導入して自分でテストしてから使ってください。

必要なもの

仕組み

概略図:ブラウザが IIS 上の ASP ページにリクエストを送り、HTML を受け取る
概略図:ブラウザが IIS 上の ASP ページにリクエストを送り、HTML を受け取る

最初の ASP ページ

`hello.asp` を作り、次を入力します。

<%@ Language="VBScript" %>
<html>
<body>
  <h1>สวัสดี ASP</h1>
  <p>เวลาบนเซิร์ฟเวอร์: <%= Now() %></p>
</body>
</html>

`<% ... %>` はサーバーで実行されるコードで、`<%= ... %>` はその値をブラウザへ返す HTML に書き出します。

フォームのデータを読む

<%@ Language="VBScript" %>
<%
Dim name
name = Request.Form("name")
%>
<form method="post" action="greet.asp">
  ชื่อ: <input type="text" name="name">
  <input type="submit" value="ส่ง">
</form>
<% If name <> "" Then %>
  <p>ยินดีต้อนรับ <%= Server.HTMLEncode(name) %></p>
<% End If %>

`Request.Form` は送信された値を読みます。`Server.HTMLEncode` は、利用者が HTML やスクリプトを埋め込むことを防ぎます。

データベースへの接続

古典的な ASP は通常 ADO でデータベースに接続します。ユーザーの入力をそのまま SQL の文字列に連結せず、必ずパラメーターを使ってください。連結すると SQL インジェクションの原因になります。

よくあるミス

次のステップ

新しいプロジェクトなら、継続的に保守されている ASP.NET Core を検討してください。既存の ASP システムは、セキュリティ対策を加えながら少しずつ移行するのが安全です。

まとめ

ASP は IIS を通じてサーバーでコードを実行し、HTML と組み合わせます。重要な点は、表示する値のエンコードと、データベースとのやり取りでパラメーターを使うことです。