Checkboxでの規約認証に関する問題

このQ&Aのポイント
  • HP上で利用規約に同意するcheckboxがうまく動作しない問題が発生しています。
  • POSTで受け渡しをしようとしても、チェックの状態が空っぽになってしまいます。
  • 初心者のため、問題の原因がわかりません。
回答を見る
  • ベストアンサー

Checkboxでの規約認証

始めまして 只今、すごく困っています。。。 分かる方ヒントでも頂けたら幸いです。。。 よくHP上で利用規約に同意するcheckboxってありますよね。 現在独自に作成していたのですが、CHECKBOXが一つだけでPOSTで 受け渡しをしようとしているのですが、うまくいきません。。 ご教授お願い致します。 <input name="check" type="checkbox" value="1"/> <strong>同意する</strong> HTMLにはこのように書いています。 次ページのPHP側で //同意チェック $ErrFlg = 0; if ($check == "") { echo "<p>同意いただけない場合、お問い合わせできません。"; $ErrFlg = 1; } if ($ErrFlg) { exit(); このようにチェックをしていない場合はエラーを返そうとしています。 ですが、POSTで受け取った後、print_rで中身を確認しようとしても 空っぽの状態です。 初心者なもので、ドコがおかしいかも検討がつきません。 宜しくお願いします。

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • honoka69
  • ベストアンサー率50% (6/12)
回答No.1

postで受けるということはHTML部分に <form method="post" action="hoge.php"> とmethodをpostで指定してると言うことですよね? それならPHP側では $_POST['check']で受け取れます。 ちなみに<a>タグとかのgetなら $_GET['check']となります。 if ($check == "") { これを if ($_POST['check'] == "") { としてやればOKです。 なので

ocean110
質問者

お礼

honoka69さん ご回答ありがとうございます! さっそく試してみたのですが、チェックをしてもしなくとも エラーで返されてしまいます。。。 どこか根本的に私の記述が間違っているのでしょうか。。。 せっかく教えて頂いたのに、申し訳ないです。

その他の回答 (1)

  • honoka69
  • ベストアンサー率50% (6/12)
回答No.2

PHP側で var_dump($_POST); と記述して、チェックボックスにチェックを入れた時に値が送られてきてるか確認してください。 あと考えられるのは何かしらのタイピングミス。 HTML側とPHP側で変数の名前が違ってるとかですかね。

ocean110
質問者

お礼

honoka69さん ありがとうございます! 無事に動かすことができました! ご指摘どおりタイピングのミスでした。。。 何度も見直さないといけませんね。。。 ご教授ありがとうございました。

関連するQ&A

  • チェックボックスのうちひとつでもチェックがなければエラー

    チェックボックスが複数個(5~6個)あります。 hajime.html <form action="niban.php" method="post"> <input type="checkbox" value="A" name="CHK1" /> <input type="checkbox" value="B" name="CHK2" /> <input type="checkbox" value="C" name="CHK3" /> <input type="checkbox" value="D" name="CHK4" /> <input type="checkbox" value="E" name="CHK5" /> <input type="checkbox" value="F" name="CHK6" /> </form> ●このA~Fのうち、ひとつでもチェックされていなければ チェックしてください。とエラー表示させたいのですが… ●次のページではこのようにデータを受取していします。 niban.php// フォームの値取得は下記のように行っています。 if ($_SERVER["REQUEST_METHOD"] == "POST") { foreach($_POST as $k => $v){ if (get_magic_quotes_gpc()) { $v = stripslashes($v); } $v = htmlspecialchars($v); $v = addslashes($v); $$k = $v; } } else { exit(); } $ErrFlg = 0;(エラーの時は$ErrFlgを1にします) ●エラー構文のサンプル↓ if ($name == "" ) { echo "<p>名前を入力してください。"; $ErrFlg = 1; } どうぞお力をおかしください

    • 締切済み
    • PHP
  • 大量のcheckboxにcheckedを入れる

    チェックボックスが50個あります。 送信ボタンを押して元のページを再度開きます。 そのときにチェックしたボックスにチェックを入れた状態にしたいです。 inputタグの中に<?php if(isset($checkbox2) && in_array('b2',$checkbox2)){echo ' checked';} ?>を入れていますが単調になってしまいます。 単調にならずにする方法はありますか? <input type="checkbox" name="chk1[]" value="a1" />の場合はインデックスが固定でないのでできませんでした。 その他いけない箇所があれば教えて下さい。 お願いします。 <?php if(isset($_GET["chk1"])){ $checkbox1 = $_GET["chk1"]; for($i=0; $i<sizeof($checkbox1); $i++){ print $checkbox1[$i]."<br />"; } } if(isset($_GET["chk2"])){ $checkbox2 = $_GET["chk2"]; foreach($checkbox2 as $key => $val){ print $val."<br />"; } } ?> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <form method="get" action="checkbox.php"> <input type="checkbox" name="chk1[]" value="a1" /> <input type="checkbox" name="chk1[]" value="a2" /> <input type="checkbox" name="chk1[]" value="a3" /> <input type="checkbox" name="chk1[]" value="a4" /> <input type="checkbox" name="chk1[]" value="a5" /> <input type="checkbox" name="chk1[]" value="a6" /> <input type="checkbox" name="chk1[]" value="a7" /> <input type="checkbox" name="chk1[]" value="a8" /> <input type="checkbox" name="chk1[]" value="a9" /> <input type="checkbox" name="chk1[]" value="a10" /> <br /> <input type="checkbox" name="chk2['b1']" value="b1" <?php if(isset($checkbox2) && in_array('b1',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b2']" value="b2" <?php if(isset($checkbox2) && in_array('b2',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b3']" value="b3" <?php if(isset($checkbox2) && in_array('b3',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b4']" value="b4" <?php if(isset($checkbox2) && in_array('b4',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b5']" value="b5" <?php if(isset($checkbox2) && in_array('b5',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b6']" value="b6" <?php if(isset($checkbox2) && in_array('b6',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b7']" value="b7" <?php if(isset($checkbox2) && in_array('b7',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b8']" value="b8" <?php if(isset($checkbox2) && in_array('b8',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b9']" value="b9" <?php if(isset($checkbox2) && in_array('b9',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b10']" value="b10" <?php if(isset($checkbox2) && in_array('b10',$checkbox2)){echo ' checked';} ?>/> <br /> <input type="submit" value="送信" /> </form> </body> </html>

    • 締切済み
    • PHP
  • Checkboxでの注意事項認証

    始めまして。 困ってます・・分かる方ヒントでも頂けたら幸いです。 現在「CGI's」というフリーのショッピングカートを使って作成しています。お客様情報のテーブル内に、よくHP上であるようなcheckbox「注意事項に同意する」の項目を追加しようと思っているのですが、うまくいきません。初心者なもので、どこがおかしいかも検討がつきません。ご教授お願い致します。 下記のように書いています。 // 入力フォーム function UserForm() { global $CONF_BASIC; // Cookie取得 if($CONF_BASIC['cookie'] == 1) { $_COOKIE = CookieRead(); $_SHOW = showEscap($_COOKIE); }   ・   ・ $html .= '<tr>'."\n"; $html .= '<th>注意事項<span class="need_mark">※</span></th>'."\n"; $html .= '<td>'."\n"; $html .= '<input type="checkbox" name="u_check" value="'.$_SHOW['u_check'].'" >「注意事項」に同意する。<br />'."\n"; $html .= '<span class="small"><a href="../notice/index.html" target="_blank" class="pink">注意事項</a>をよく読み、同意された方はチェックを入れてください。</span>'."\n"; $html .= '</td>'."\n"; $html .= '</tr>'."\n"; /********** 入力情報チェック **********/ function ValueCheck() { $err_u = ''; $err_d = '';   ・   ・ // 注意事項 if($_POST['u_check'] == '') { $err_u .= '[注意事項]「注意事項」に同意する。にチェックが入っていません。<br />'; } // その他項目 function OtherForm() { global $CONF_BASIC;   ・   ・ elseif($CONF_BASIC['other_type'] == 'checkbox') { if($choose) { for($i = 0; $i < count($choose); $i++) { $other['form'] .= '<input type="checkbox" name="other" value="'.$choose[$i].'" /> '.$choose[$i]."\n"; } } } /********** Cookie **********/ function CookieSet() { $limit = time() + (60*60*24*30); // 30日   ・   ・ $cookie .= '"'.$_POST['u_check'].'",'; if(!setcookie(webcart,$cookie,$limit)) { putHTML(ErrorShow('Cookie Error')); exit; } } function CookieRead() { if(get_magic_quotes_gpc()) { $ptn1 = '/^\\\"/'; $ptn2 = '/\\\"$/'; } else { $ptn1 = '/^\"/'; $ptn2 = '/\"$/'; } list($c['u_check']) = explode(',',trim($_COOKIE['webcart'],',')); チェックを入れてもエラーになります。どこをどうしたらいいのでしょうか・・ よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • フォームで受け取った値のPHP表示方法

    フォームのチェックボックスから選択したメニューを 同じページに表示するというPHPのサンプル練習ですが 複数選択した場合、適切に「と」が入るようにするには どのような方法があるのでしょうか? 以下のサンプルの場合だと1つの場合でも 複数選択の場合でも全てに「と」が入ってしまいます。 「echo $_POST["check"][$i]」の次に if条件文のような物を付ければよいと思い試しているのですが なかなか上手く行きません。 初学者ですが何か分かりやすく簡単な方法があれば お教えください。 よろしくお願いいたします。 ---------------------------------------------------------- <?php if(isset($_POST["check"])){ for($i=0; $i<count($_POST["check"]); $i++){ echo $_POST["check"][$i]."と"; ←※※※ } echo "が好きです。"; } ?> <html> <body> <form method="post" action=""> <input type="checkbox" name="check[]" value="きつねうどん">きつねうどん <input type="checkbox" name="check[]" value="カレーうどん">カレーうどん <input type="checkbox" name="check[]" value="ざるそば">ざるそば <input type="checkbox" name="check[]" value="天ぷらうどん">天ぷらうどん <input type="submit" value="何が好き"> </form> </body> </html> -----------------------------------------------------------

    • ベストアンサー
    • PHP
  • checkboxについておしえてください

    <form action=" " method="post"> <input type="checkbox" name=" figure" value="1"><img src="a.png"> <input type="checkbox" name=" figure" value="2"><img src="b.png"> <input type="checkbox" name=" figure" value="3"><img src="c.png"> <input type="checkbox" name=" figure" value="4"><img src="a.png"> <input type="checkbox" name=" figure" value="5"><img src="b.png"> <input type="submit" value="送信する"> </form> とした場合に、絵の左にくるチェックボックスの位置を、添付した図のように位置を図の中にもってこれないかと考えています。できれば、大きさも変えたいと考えています。 cssでできるのでしょうか? cssじゃない方法などもあるのでしょうか?よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • checkboxの判定について

    ラジオボタンを2つ用意しそれぞれに値をいれれば容易なことなのですが checkbox1つでチェックの判定をしチェックされていればvalueにyesをいれ チェックが外されていればvalueにno(nullでしょうか?)を入れたいのですが その場合は、どのようなソースにすれば可能でしょうか? 教えてgooの新規会員登録がこのような形式だったので興味がありやってみたのですが なかなかうまくできません・・・ 現状は下記のソースなのですがvalueの値を分岐することで実現できそうなものの いまいちわからない状態です^^; <input type="checkbox" name="magazin" value="yes" <?php if (isset($_SESSION['magazin']) && $_SESSION['magazin'] == 'yes'){ echo 'checked'; }?>>配信メールを希望する。

    • 締切済み
    • PHP
  • チェックボックスの初期選択と選択保持

    複数のチェックボックスのうちどれかを初期選択させ、ボタン押下後は選択保持をさせたいです。 片方のみならできるのですが、どなたかご教授いただけるとうれしいです。 現在のソースはこんな感じになっていて選択したものの保持はできるのですが、初期選択ができていません。よろしくおねがいします。 <html> <body> <form name="form" method="post"> <?php test1() ?> test1 <?php test2() ?> test2 <?php test3() ?> test3<br><br> <input type="submit" name="button" value="button"> </form> <?php function test1(){ if ($_POST['test1']){ echo "<input type=\"checkbox\" name=\"test1\" checked>"; }else{ echo "<input type=\"checkbox\" name=\"test1\">"; } } function test2(){ if ($_POST['test2']){ echo "<input type=\"checkbox\" name=\"test2\" checked>"; }else{ echo "<input type=\"checkbox\" name=\"test2\">"; } } function test3(){ if ($_POST['test3']){ echo "<input type=\"checkbox\" name=\"test3\" checked>"; }else{ echo "<input type=\"checkbox\" name=\"test3\">"; } } ?> </body> </html>

    • 締切済み
    • PHP
  • []を付けずにcheckboxの値を複数受信

    カテゴリをPHPとするか迷いましたが、 こちらに質問させていただきます。 <input type="checkbox" name="hiragana[]" value="a">あ <input type="checkbox" name="hiragana[]" value="i">い <input type="checkbox" name="hiragana[]" value="u">う とした場合、 $checked=$_POST['hiragana']; print_r($checked); などとして使えることはわかるのですが、 角括弧をつけず、 <input type="checkbox" name="hiragana" value="a">あ <input type="checkbox" name="hiragana" value="i">い <input type="checkbox" name="hiragana" value="u">う としたときに、同様に配列として取得する(すべてのチェックされた項目を取得する) 方法はあるのでしょうか? このようにした場合、 $checked=$_POST['hiragana']; print_r($checked); や print_r($_POST); すると、最後にチェックされた値しか入っていないようです。 (上書きされているようですが...) HTTPヘッダを見ると、 hiragana=a&hiragana=i&hiragana=u のように、すべて送信はされているのは確認できるのですが... 後者のような角括弧をつけていないタイプのcheckboxを使って ちゃんとチェックされた値をすべて受信して動作していると 思われるサイトを目にするので どうすればできるのかと思い質問させて頂きました。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • 「利用規約の同意」複数のチェックボックスでアクセス制御

    どうしてもわからないので助けてくださいませ~~ 利用規約でチェックボックスにチェックが入ると 次のページへ進めるボタンをつけたページなのですが チェックボックスが1つなら下記でできたのですが 複数になった場合はどうしたらよいでしょうか?? 複数全てにチェックしないと次のページへ進めないようにしたいのです。 どうぞよろしくお願いいたします。 <script type="text/javascript"> function check(){ if(document.form.agree.checked == true){ return true; }else{ alert("利用規約に同意してください。"); return false; } } </script> <form action="***.html" method="post" name="form" onsubmit="return check();"> <input type="checkbox" name="agree" value="1"> <input type="image" src="***.gif" name="***" alt="***" border="0"> </form>

  • checkbox ループ

    下記のスクリプトだと、 デバックが16になってしまいます。 これをどうにかして、 AをチェックしたらA内だけをループ、 BをチェックしたらB内だけをループさせたいんですが、 どこをどのように修正すればいいですか?? スクリプトをかなり変えるのは避けたいです。。 教えてください。。 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <TITLE></TITLE> <SCRIPT language="JavaScript"> function check(n){ document.getElementById('debug').innerHTML = "デバッグ情報"; document.getElementById('debug').innerHTML = document.getElementById('debug').innerHTML + "<br>lengthは" + document.form1.length; for(i=1; i<=document.form1.length; i++){ if(document.form1.elements["ch" + n].checked){ document.form1.elements["ch" + n + "-" + i].checked = true; document.form1.elements["ch" + n + "-" + i].disabled = true; }else{ document.form1.elements["ch" + n + "-" + i].checked = false; document.form1.elements["ch" + n + "-" + i].disabled = false; } } } </SCRIPT> </HEAD> <BODY> 全てのチェックボックスをチェック/解除 <FORM name="form1"> <p><INPUT type="checkbox" id="ch1" onclick="check(1)">チェックA</p> <INPUT type="checkbox" id="ch1-1">チェック1 <INPUT type="checkbox" id="ch1-2">チェック2 <INPUT type="checkbox" id="ch1-3">チェック3<BR><BR> <INPUT type="checkbox" id="ch1-4">チェック4 <INPUT type="checkbox" id="ch1-5">チェック5 <INPUT type="checkbox" id="ch1-6">チェック6<BR><BR> <BR> <p><INPUT type="checkbox" id="ch2" onclick="check(2)">チェックB</p> <INPUT type="checkbox" id="ch2-1">チェック1 <INPUT type="checkbox" id="ch2-2">チェック2 <INPUT type="checkbox" id="ch2-3">チェック3 <INPUT type="checkbox" id="ch2-4">チェック4<BR><BR> <INPUT type="checkbox" id="ch2-5">チェック5 <INPUT type="checkbox" id="ch2-6">チェック6 <INPUT type="checkbox" id="ch2-7">チェック7 <INPUT type="checkbox" id="ch2-8">チェック8<BR><BR> <BR> </FORM> <p id="debug"></p> </BODY> </HTML>

専門家に質問してみよう