質問: 【行っている処理】 id11(int) id22(int) moziretu(varchar)という3つのカラムを持ったテーブルがあります id11または id22の値を入れて検索すると、その対象のカラムの入った行を取り出せるというプログラムを書いています。 id11と id22の値をそれぞれ別々に検索したときはレスポンスコード200が帰ってきます 【やりたいこと】 id11と id22を同時に検索したときレスポンスコード301を返すようにしたい 【困っていること】 301を返してほしいのに200が帰ってきてしまう 【対象のコードとレスポンス】 id11とid22用のフォームがそれぞれあり、そこから受け取ったデータを元に処理をしています。対象のコードの前にif文でそれぞれ別々に入力されたときの処理をしています リダイレクトのために試したコードとそのコードが実行されたときのログは以下のとおりです コード1 ``` elseif(name=="id11" and name=="id22"){ // header('Status: 301 Moved Permanently'); header('Location: http://192.168.0.235/test.php', true, 301); exit(); } 192.168.0.57 - - [26/May/2017:15:36:55 +0900] "GET /hira_kairyou.php?id11=99&id22=88 HTTP/1.1" 200 246 "http://192.168.0.235/hira_kairyou.php?id11=6&id22=7" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36" ``` コード2 ``` elseif(name=="id11" and name=="id22"){ header('Status: 301 Moved Permanently'); header('Location: test.php'); exit(); 192.168.0.57 - - [26/May/2017:15:33:36 +0900] "GET /hira_kairyou.php?id11=6&id22=7 HTTP/1.1" 200 246 "http://192.168.0.235/hira_kairyou.php?id11=55&id22=66" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36" ``` コード3 ``` elseif(name=="id11" and name=="id22"){ header('Status: 301 Moved Permanently'); header('Location: http://192.168.0.235/test.php'); exit; 192.168.0.57 - - [26/May/2017:15:25:11 +0900] "GET /hira_kairyou.php?id11=77&id22=888 HTTP/1.1" 200 246 "http://192.168.0.235/hira_kairyou.php?id11=66&id22=77" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36" ``` うまくいかない原因はこういうことが考えられる、や、こういう風に問題を切り分けて調査するとよいなど教えていただけませんでしょうか? また、説明が足りないところがありましたらこういう説明がないとわからないというご指摘をしていただけるとありがたいです よろしくお願いします
回答: > > elseif(name=="id11" and name=="id22"){ > > > 2点 * nameは「$name」ではないのでしょうか? * 仮に$nameだとしても「$name=="id11" and $name=="id22"」は成り立たないでしょう 条件設定がおかしいのでは?