
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
>GETの引数は1つまで
クライアント側が処理することなのでこれはなんともなりませんが
サーバー側として、2つめ以降は無視するもしくは2つ以上あるときは
2つめ以降を削ってheaderで送っちゃうとか・・・
<?
$str=$_SERVER["REQUEST_URI"];
if(preg_match("/&/",$str)){
$str=preg_replace("/&.*$/","",$str);
header("Location:".$str);
}
?>
No.3
- 回答日時:
意図が判りませんが、検索キーワードのみGET、残り項目はURLに残したくない、みたいな事でしょうか?
それともセキュリティ上か何かでGETもPOSTも使いたくないとか?
●GETの引数は1つまでにしたい。
JavaScriptで入力項目全てを1つにまとめてGETの1つの引数として送信し、PHP側でそれを分割すれば可能です。
当然GETですので全ての内容がURLに現れてしまいます。
例えば「;」で項目全てを繋いで1つの文字列にして、PHP側で改めて「;」で分割するなどです。
例)
GETのURL(引数は"query"が1つだけ): test.php?query=yamada;taro;male;tokyoto:chiyodaku;chiyoda1-1-1
PHPでの分割: $gets = explode(";", $_GET["query"]);
●1つのみGETで、残りは全てPOSTで送信
別の方法としてGETとPOSTを混合して送信する手があります。
入力項目の1つのみGETで渡し(送信先URLに入れてしまう)、残りはPOSTで送信させます。
HTML--------------------------------------------------
<script type="text/javascript">
function form_get(){
var url = "test.php" + "?get_text1=" + document.getElementById("get_text1").value;
document.form1.action= url;
document.form1.submit();
}
</script>
</head>
<body>
<form method="post" name="form1">
post1: <input type="text" name="post_text1" value="p1"><br>
post2: <input type="text" name="post_text2" value="p2"><br>
get1: <input type="text" name="get_text1" value="g1" id="get_text1"><br>
get2: <input type="text" name="get_text2" value="g2"><br>
<input type="button" value="送信" onclick="form_get();" >
</form>
PHP(test.php)-----------------------------------------
echo "POST1: [". $_POST["post_text1"]. "]<br>\n";
echo "POST2: [". $_POST["post_text2"]. "]<br>\n";
echo "GET1: [". $_GET[ "get_text1" ]. "]<br>\n";
echo "GET2: [". $_GET[ "get_text2" ]. "]<br>\n";
送信結果(get_text2は送信されていない)---------------------
POST1: [p1]
POST2: [p2]
GET1: [g1]
GET2: []
送信URL(GETの引数はget_text1のみ)-----------------------------
http://xxxxxxx/test.php?get_text1=g1
当然URLエンコードやHTMLエンティティ化など行なって下さい。
No.2
- 回答日時:
postを嫌う理由が、いまひとつよくわからないのですが・・・
まぁ、解らないなりに回答をするとすれば・・・
httpプロトコルを使用する限り、できません。
でも、絶対に出来ないわけでもありません。まず、サーバー側は、アプリケーションサーバーが必要になりますし、仕掛けも大げさになりますが。
まず、サーバー側で、検索結果を送信する仕組みを、SOAPやXMLPRCなどを使用して、いわゆるWEBサービスの形で組みます。
その上で、検索フォームの「検索」ボタンをajax(要するに、java script)の手法で画面遷移することなく、自前でwebサービス側に要求を出し、動的に検索結果を組み込んだ形に画面を再構築する。
と言った形を使えば、そもそも、httpプロトコルを利用していませんから、当然、getもpostも使用せずに、検索結果を表示することが出来ます。
でも・・・もし、postやgetが、検索要求が平文で流れるから、途中で盗み見されるのが嫌だというセキュリティー方向の動機であれば、どんなプロトコルを利用しようとも、同じ事です。
これが理由であれば、ネットワークに流すデータを総て暗号化するしか手がありません。現状、一般的な手法でこれに答えられる手段は、httpsしか無いと思います。
そして、もし、postやgetが、使っているユーザーがちょっと工夫をすれば、送信要求の方法がばれてしまい、サーバーが破られるというのが動機であれば、これは、どんな手法を利用しても防ぐ手段はありません。どんなプロトコルを利用しようとも、ユーザーが自分のコンピューターの通信を監視すれば、アクセス手法は確実にとらえられるからです。(postのデータをちゃんと解析してアクセス手段を理解できるだけのスキルと根気の持ち主なら、とっても簡単なことです。)これを防御できる手段は、サーバー側で不正なアクセスをちゃんと阻止するようにプログラムするしかないということです。getよりpostの方が安全だし・・・の流れで、get・post以外の方法は?なんて考えない方がよろしいかと・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
- Excel(エクセル) Excelマクロの表示のExcel内をfindで検索 3 2022/06/15 20:07
- Access(アクセス) Access 複数条件検索の設定が上手く行きません 1 2022/07/22 20:37
- Ruby No route matches [GET] "/posts/5/destroy" 1 2022/03/24 13:00
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPでURLにジャンプするには?
-
Submit(送信ボタン)を押した...
-
ページを切り替えずにphpに値を...
-
PHP 入力フォームにあらかじめ...
-
ボタンをクリックでPHP文を実行
-
PHP 入力フォームにて半角スペ...
-
FORMタグの中の2つのボタンの...
-
送信ボタンでカウントアップ
-
テキストリンクをPOST送信したい
-
フォーム内のオブジェクトを取...
-
PHPのエラーの解消法について教...
-
現在時刻を反映させた時刻のプ...
-
smartyでチェックボックスをチ...
-
データベースにある値でリスト...
-
ラジオボタンの値を受け取ってP...
-
携帯電話HP作成。
-
phpでカレンダー作成
-
PHP POSTした$_FILESの値が正し...
-
DBの値をリストボックスの初期...
-
プログラムの複製(VB.net)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPでURLにジャンプするには?
-
セッションを使わずに遷移先画...
-
phpで、フォームのラジオボタン...
-
フォーム送信後の更新ボタンで...
-
テキストリンクをPOST送信したい
-
PHPのエラーの解消法について教...
-
フォームにダブルクォーテーシ...
-
ボタンをクリックでPHP文を実行
-
リンク先のフォームに自動的に...
-
変数が表示されない。
-
フォームのPOST情報が渡らない?
-
htmlファイルからphpファイルへ...
-
phpファイルの命令実行順番につ...
-
PHPの質問:フォームから受け取...
-
なぜ、unexpected T_VARIABLEに...
-
リセットボタンとエラー画面
-
PHPでファイルアップロード時に...
-
$_POST['hoge']のデータをフラ...
-
PHPのローディング
-
GETとPOST以外のデータの渡し方...
おすすめ情報