
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ランキング
-
Windows10がインストールできま...
-
エクセルで縦のカラムデータを...
-
Ophcrackについて
-
postgresqlのtableのカラムの型...
-
php、postgresqlを使ってwebア...
-
三段論法を真理値表で証明する
-
sqlの中で、 例えば条件句で AN...
-
tesuto 01
-
python3.12のインストール方法
-
Pythonで2つのデータ(キー無し...
-
数値が定期的にあらわれる文字...
-
終端クォート ' が必要です と...
-
PostgressからMySQL(MariaDB)...
-
【PostgreSQL】行の値の並びを...
-
列が存在しないと言われる
-
PostgreSQL14.6のSSL対応について
-
ポストグレにあるExcelファイル...
-
PostgreSQL レコードからアイテ...
-
文字切り替えの時に 中央にでる A
-
postgreSQL カラムの全ての値を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postgreSQLのint型は桁数指定が...
-
テーブルからのselectにおいて...
-
PostgressからMySQL(MariaDB)...
-
ビット演算結果の取得
-
UNIQUEをつけたときのINDEXテー...
-
plpgsqlのエスケープ文字について
-
PostgresSQL8.4でツリー上に取...
-
SQL SELECT文 別テーブルのレコ...
-
クエリアナライザのsp_helpコマ...
-
pg_queryで変数の取り扱い方
-
テーブル作成 外部参照 配列
-
indexを使おうとしない間違った...
-
ベスト3の抽出方法
-
賢いSQL文がわからない
-
チェックボックスから、データ...
-
phpPgAdminからSQL文を発行し、...
-
SQLで検索結果の記事を表示したい
-
データを削除しても表領域の使...
-
Viewにインデックスは張れ...
-
ORA-00959: 表領域'****'は...
おすすめ情報