
CGIを改造中です。
データベースのようなものなのですが、それぞれのレコードを管理画面には出すけど、チェックされていないものに関しては公開画面には出さないように出来るようにしています。
今までは、修正画面でその他の項目と共に表示非表示チェックボックスをオンオフすることで表示非表示を切り替えてきました。
今回、これを「表示非表示だけの変更が出来るページ」を作ろうかと考えています。
普通、内容を1つだけ変更する時は他の項目は<input type="hidden" name="■■" value="$■■">と言う形で記入していきますよね。
これを記入せず、変えたい変数のみ表示して変更すると言うことは可能でしょうか?
データは、
$no,$date,$name,$genre,$com,$isub,$info,$tel,$url,$thanks,$job,$tail,$w,$h,$subimg1,$subcom1,$subimg2,$subcom2,$floor,$jgenre,$jcapa,$jtime,$jmoney,$jservice,$jholiday,$jtan,$jothと言う並びで保存されていて、「<>」で区切られています。
変更したいのは「$job」で空白か1(1の時表示)が入ります。
以上、足りない情報があったら指摘してください。
お願いします。
No.1ベストアンサー
- 回答日時:
一般的にそのようなケースでは、セキュリティや整合性を保つという観点から、必要なデータだけを受け取るようにします。
いくら表示で hidden にしたところで、スクリプトが受け付けてしまうようでは意味がありませんから。たとえば、($no というのは ID のようなものですか?以下そう仮定しています)今回の処理を行いたい場合、必要なデータは「no」と「job」だけですよね。それなら、
まずレコード一覧を表示するスクリプトで、ループの中で「no」と「job の現在の状態」を組み込んだformを表示します。
※@rec_line に全行を読み込んであるとして。
foreach (@rec_line) {
($load_no, $load_job) = (split(/<>/))[0, 10];
$job_checked = $load_job ? ' checked' : '';
print <<"EOM";
…(必要なら date や name など識別できるものを表示)
<form …>
<input type="hidden" name="no" value="$load_no">
<input type="checkbox" name="job" value="1"$job_checked>
<input type="submit" value="更新">
</form>
…
EOM
}
これで、現在 job が空白でなければチェックボックスがオンになった状態で一覧表示されます。
で、上記フォームから受け取ったデータを使って更新します。
※フォームからのデータが $form_no 、$form_job に入っているとして。
foreach (@rec_line) {
@fields = split(/<>/);
if ($fields[0] eq $form_no) {
$fields[10] = $form_job ? '1' : '';
$_ = join('<>', @fields);
}
}
ファイル保存…
no と job 以外は、読み込んだものをそのまま保存します。つまり触りません。
また、job の値はフォームからのデータをそのまま格納するのではない、というのもポイントです。
(本来は、配列よりも連想配列を使って $FIELD{'job'} などと書いた方が綺麗で読みやすく、また処理しやすいですが。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/21 16:01
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CGIプログラムの最後に?がつい...
-
データを読み込んだ時・・・・
-
VBAでIEを操作submit処理について
-
perl cgiの変数の受け渡しがで...
-
CGIのボタンの処理について
-
保存されたレコードの一部のみ...
-
SUN BBSの改造方法
-
掲示板(kentさんの所のsunbbs...
-
perlの文法について
-
HTMLの質問
-
複数フィールドの値を一つのVAL...
-
メールフォームの内容を送信者...
-
フォームがFirefoxで動作するの...
-
英文にしてください
-
何がおかしいのでしょうか?
-
pythonのコードで教えてください。
-
WEBアンケート
-
formから送信する値について
-
wordの数式について 定積分を書...
-
HDMLについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
(Perl)ReadParseによるハッシ...
-
確認ページが表示できない
-
別サーバーのcgiへバイナリデー...
-
質問ページ(CGI)に行く時にフ...
-
htmlのフォームからcgiにデータ...
-
フォーム入力後の確認画面表示...
-
携帯電話のセッション管理
-
さくらインターネットのCGI...
-
WEB上のボタンをクリックしてサ...
-
perl cgiの変数の受け渡しがで...
-
ファイル名でなく、ファイルの...
-
異なるformで同一のnameは使用...
-
cgi-libを使って変数値渡しをし...
-
htmlからcgiに変数を配列にして...
-
HDMLでCGIを使おうと思うのです...
-
perlで自動ログインをしたいが...
-
チャットでの、自動カーソル入力
-
if構文を追加するとうまくうま...
-
リンクからのPOST送信について
-
VBで表示したホームページの...
おすすめ情報