
HTMLのチェックボックスから、データベースにデータ入力する仕組みを検討しております。
HTMLページでチェックされたものは、keywordカラムに入力されるようにしたいと考えております。
1) HTMLページ
<?
require('../include/init.inc');
$email = $_POST{'email'};
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
<FORM name="myFORM">
<INPUT type="checkbox" name="name[]" onclick="chg()" value="aaa">:aaa
<INPUT type="checkbox" name="name[]" onclick="chg()" value="bbb">:bbb
<INPUT type="checkbox" name="name[]" onclick="chg()" value="ccc">:ccc
<INPUT type="checkbox" name="name[]" onclick="chg()" value="ddd">:ddd
<INPUT type="checkbox" name="name[]" onclick="chg()" value="eee">:eee
<INPUT type="checkbox" name="name[]" onclick="chg()" value="fff">:fff
</body>
</FORM>
<form action="Test1.php" method="post">
<input type=submit value='選択'>
→ ここで配列のデータを変数に入れる処置が必要?
2) Test1.php
<?
require('../include/init.inc');
$email = $_POST{'email'};
$name = $_POST{'name'};
var_dump($HTTP_POST_VARS);
$sql = "BEGIN;
update mailing_list_sentaku set keyword = '$name' where mailing_list_name = '$email';
COMMIT;";
pg_query("$sql");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
</head>
<body>
・データベース
- postgresql 8.1.9
- PHP 5.2.1
postgres=# \d mailing_list_sentaku
・mailing_list_name : character varying(40)
・keyword : character varying(200)
現状は、Test1.phpにもデータが渡っておらず、原因がつかめていない状況です。ご協力よろしくお願いいたします。

No.3ベストアンサー
- 回答日時:
以下でざっくりは動くと思いますが、SQLインジェクションなどの対応がまったくできていません。
ローカルでお試しになられるのはいいかと思いますが、公開されるのはどうかと思います。
前の方が言っておられるようにHTMLの勉強はもちろん、Webアプリ(この場合PHPとPostgreSQL)の勉強をされたほうがいいと思います。
何か一冊本を買うことをお勧めします。
----
1) HTMLページ
<?
require('../include/init.inc');
$email = $_POST['email'];
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
</head>
<body>
<form action="Test1.php" method="post" name="myFORM">
<INPUT type="checkbox" name="name[]" onclick="chg()" value="aaa">:aaa
<INPUT type="checkbox" name="name[]" onclick="chg()" value="bbb">:bbb
<INPUT type="checkbox" name="name[]" onclick="chg()" value="ccc">:ccc
<INPUT type="checkbox" name="name[]" onclick="chg()" value="ddd">:ddd
<INPUT type="checkbox" name="name[]" onclick="chg()" value="eee">:eee
<INPUT type="checkbox" name="name[]" onclick="chg()" value="fff">:fff
<INPUT type="hidden" name="email" value="<?php echo htmlspecialchars($email); ?>">
<input type=submit value='選択'>
</form>
</body>
</html>
> → ここで配列のデータを変数に入れる処置が必要?
ここというか、次のPHPで必要になります。
2) Test1.php
<?
require('../include/init.inc');
$email = $_POST['email'];
$name = $_POST['name'];
// このままですと $name は配列です
// 登録先(keyword)のデータ型はキャラクタなので
// 文字列ないし、シリアライズする必要があるでしょ。
// これは、使用ほうほうによって決めるべきです。
// 文字列にする場合(項目をカンマ切りで)
// $name = implode(",", $_POST['name']);
// シリアライズする場合
// $name = serialize($_POST['name']);
// 今回はとりあえず文字列にする
// 文字の長さなどチェックが必要
$name = implode(",", $_POST['name']);
$sql = "BEGIN;
update mailing_list_sentaku set keyword = '" . $name . "' where mailing_list_name = '" . $email . "';
COMMIT;";
pg_query("$sql");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
<body>
SQLを確認<br />
<?php echo htmlspecialchars($sql); ?>
</body>
</head>
ご回答ありがとうございます。
ご教授いただいた方法で試してみることにします。
SQLインジェクションに関しては、対応方法について勉強しておきます。
お手数お掛けいたしました。。。

No.2
- 回答日時:
<form action="Test1.php" method="post">
を<FORM name="myFORM">のところに入れないとそのデータは送信できないよ。
その上</body>はなんで、</form>の前にあるの?
html構文をじっくり勉強し直して下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
postgreSQLのint型は桁数指定が...
-
UNIQUEをつけたときのINDEXテー...
-
データを削除しても表領域の使...
-
お知恵をお貸しください。
-
SQL*Loaderで、データを加工し...
-
object browser で処理を中断す...
-
Viewにインデックスは張れ...
-
viewのバックアップ
-
datapumpの実行方法について
-
SQLでスキーマ名(所有者名)の...
-
oracleのimpdpでORA-39166
-
特定のスキーマのテーブルを一...
-
DELETE文でFROM句を省略した場合
-
Access レコードを追加できませ...
-
他の処理でselectさせないよう...
-
ORA-00959: 表領域'****'は...
-
他ファイルのテーブルの情報を...
-
CLOB型へのINSERT
-
DMLロック解除待ち時間の指定は...
-
select insert 句
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postgreSQLのint型は桁数指定が...
-
テーブルからのselectにおいて...
-
UNIQUEをつけたときのINDEXテー...
-
PostgressからMySQL(MariaDB)...
-
クエリアナライザのsp_helpコマ...
-
SQL文作成のお願い
-
ベスト3の抽出方法
-
検索スピードの速い方法を教え...
-
postgreSQLのオートナンバーに...
-
SQL SELECT文 別テーブルのレコ...
-
こんばんは。
-
Perl DBI でSELECT ilikeの結果...
-
特定カラムの値を変更したいの...
-
pl/pgsqlで変数の扱い
-
Oracle でのデータベースサイズ...
-
テーブル作成 外部参照 配列
-
チェックボックスから、データ...
-
賢いSQL文がわからない
-
マルチテーブル・インサート
-
データを削除しても表領域の使...
おすすめ情報