■phpのバージョン:7.1.11
■現象確認ブラウザ:chrome、firefox (IEでは発生しない)
■フォルダ階層
root
├common ─ Query2.php
└test ─ index_test.php
■index_test.php
php
1<?php 2require_once('../common/Query2.php'); 3$query = new Query2(); 4if (isset($_GET['design_id']) && $_GET['design_id'] != "") { //★ 5 $query->insert_data($_GET); 6} 7?> 8<html> 9 <body onLoad="document.form1.design_id.focus()"> 10 <div class="container theme-showcase"> 11 <div style="text-align:center;margin:5px;"> 12 <form name="form1" action="./index_test.php" method="get"> 13 数量:<input type="text" name="count" id="count" value="1" style="width:30px;text-align:right;" maxlength="3"> 14 コード:<input type="text" name="design_id" id="design_id" value="" size ="15" style="ime-mode:disabled;" maxlength="20" > 15 <input type="submit" class="btn btn-default" value="送信"></button> 16 </form> 17 </div> 18 </div> 19 </body> 20</html>
■Query2.php
php
1<?php 2ini_set( 'display_errors', 1 ); 3class Query2 { 4 // コンストラクタ 5 function Query() { 6 } 7 function insert_data($param = "") { 8 //登録処理など(省略) 9 10 //再び元のページへ戻る 11 header('Location:../test/index_test.php?result=ok',false); 12 exit(); 13 } 14} 15?>
①フォーム内には、数量とコードを入力する2つのテキストボックスがあります。
②「送信」ボタンを押すと同一ファイル(index_test.php)にGET値を送信します。
③GET値が存在するならば「Query2.php」内の「insert_data」関数を呼び出し、再び「index_test.php」へリダイレクト。
上記のような仕組みなのですが、数量とコードに、過去に入力された事のある値と全く同じ値を入力してsubmitすると、★部分の分岐に入りません。
design_idというGETパラメーターが存在しない扱いになっているようです。
例)
1度目の入力:数量=1 コード=TEST
結果→★部分の分岐に入る
2度目の入力:数量=1 コード=TEST (数量、コード共に1度目と同じ値を入力)
結果→★部分の分岐に入らない
3度目の入力:数量=2 コード=TEST(数量のみ変更してみる)
結果→★部分の分岐に入る
4度目の入力:数量=1 コード=test (コードを小文字にしてみる)
結果→★部分の分岐に入る
5度目の入力:数量=1 コード=Test (コードの頭だけ大文字にしてみる)
結果→★部分の分岐に入る
6度目の入力:数量=1 コード=Test (数量、コード共に5度目と同じ値を入力)
結果→★部分の分岐に入らない
上記の結果のように、数量とコードに入力された値の組み合わせが、過去に入力された値と全く同じ場合に(大文字小文字かどうかも含め)、うまくGET値を送信出来ないと言う現象が発生しています。
POSTだと同現象は発生いたしません。
この現象に関する情報や改善方法をご教示下さい。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/04/22 04:59
2019/04/22 05:00
退会済みユーザー
2019/04/22 05:01
2019/04/22 05:09
退会済みユーザー
2019/04/22 05:11
退会済みユーザー
2019/04/22 05:18