Custom Search

JITAKU_SVR_Wiki



入力項目から顧客情報をチェックする

mysqlに格納されている顧客情報をドメイン名から探す。

htmlフォーム作成

<html>
<head>
<title>顧客情報</title>
</head>

<body>
<form method="post" action="./form.pl">
   <p>
        ドメイン名<br>
        <input type="test" name="domains" size="20" value="">
   </p>

   <p><input type="submit" value="チェックする"></p>
</form>
</body>
</html>
formhtml.jpg

TIPS

actionで指定するファイルは同ディレクトリに作成する「form.pl」(次項目で作成)。
input欄の「name」がCGIに渡される変数(上記では「domains」)になる。
その他はhtmlで作成されるものなので、特に意識するところはない。


CGIフォーム

ブラウザから入力された文字列からデータベース内を探す。

#!/usr/bin/perl


use DBI;
use DBD::mysql;


#送信されたデータを受け取る
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
  read(STDIN, $alldata, $ENV{'CONTENT_LENGTH'});
} else {
  $alldata = $ENV{'QUERY_STRING'};
}
foreach $data (split(/&/, $alldata)) {
  ($key, $value) = split(/=/, $data);

  $value =~ s/\+/ /g;
  $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('C', hex($1))/eg;
  $value =~ s/\t//g;

  $in{"$key"} = $value;
}

print "Content-Type: text/html; charset=utf8\n\n";
print "<html>\n";
print "<head><title>ドメインチェック</title></head>\n";
print "<body>\n";

#受け取ったデータを表示する
print "<p>検索結果</p>\n";
print "<p>$in{'domains'}</p>\n";


$db=DBI->connect("DBI:mysql:domain_db","domain_user","domain", { RaiseError => 0, PrintEroor => 1 });

if(!$db){
    print "接続失敗\n";
    exit;
}

$sth = $db->prepare("select user_id,name,domains,mailaddress from domain_tb where domains = ?");
if(!$sth->execute($in{'domains'})){
    print "SQL失敗\n";
    exit;
}

print "<table  border=1>\n";
print "<tr><td>user_id</td><td>name</td><td>domain</td><td>mailaddress</td></tr>\n";
while (@rec = $sth->fetchrow_array) {
        print "<tr>\n";
    print "<td>" . $rec[0] . "</td>\n";
    print "<td>" . $rec[1] . "</td>\n";
    print "<td>" . $rec[2] . "</td>\n";
    print "<td>" . $rec[3] . "</td>\n";
        print "</tr>\n";
}
print "</table>\n";

$sth->finish;

$db->disconnect;

print "</body></html>\n";
 
print "</body>\n";
print "</html>\n";

exit;

データベース(mysql)

データベースを適当に作成。

mysql> use domain_db;
Database changed
mysql> show tables;
+---------------------+
| Tables_in_domain_db |
+---------------------+
| domain_tb           |
+---------------------+
1 row in set (0.00 sec)

mysql> desc domain_tb;
+-------------+-----------------+------+-----+---------+-------+
| Field       | Type            | Null | Key | Default | Extra |
+-------------+-----------------+------+-----+---------+-------+
| user_id     | int(6) unsigned | NO   |     | NULL    |       |
| name        | varchar(20)     | NO   |     | NULL    |       |
| domains     | varchar(20)     | NO   |     | NULL    |       |
| mailaddress | varchar(50)     | NO   |     | NULL    |       |
+-------------+-----------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql> select * from domain_tb;
+---------+------------------+---------------+------------------------+
| user_id | name             | domains       | mailaddress            |
+---------+------------------+---------------+------------------------+
|       1 | Hoge Hage        | hogehage.com  | hogehage@anywhere.com  |
|       2 | Tanaka Kakuei    | kakuei.com    | kakuei@hogehoge.com    |
+---------+------------------+---------------+------------------------+
2 rows in set (0.00 sec)

mysql>

入力結果

formhtml_res.jpg

参考URL

http://www.web-liberty.net/improve/perl/input.html
http://www.myu.ac.jp/~togashi/edu/dbII2004/WebRDB/WebAPI.html


添付ファイル: fileformhtml_res.jpg 192件 [詳細] fileformhtml.jpg 199件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-12-22 (火) 15:22:57 (398d)