staffcode
という項目はテキストボックスですか?
以下はテキストボックスだとして説明します。
<input type="text" name="staffcode">
のようないわゆるテキストボックスは、
未入力の場合は空文字 ""
がポストされます。
このとき、$_POST
には次のように空文字がセットされます。
php
1$_POST['staffcode'] = "";
isset
は空文字に対して true を返します。
php
1$_POST['staffcode'] = "";
2var_dump(isset($_POST['staffcode'])); // true
もちろん、空文字以外の任意の文字列に対しても true です。
php
1$_POST['staffcode'] = "abc";
2var_dump(isset($_POST['staffcode'])); // true
したがって、下記の if
の中身は staffcode
がテキストボックスなら、常に false です。
php
1if(isset($_POST['staffcode'])==false) // true == false -> false
と、ぱっと見で思ったのですが、
よく見ると if の中身が true のときに Location ヘッダが2回出力されていますね。
これはどういう意図で2回出力しているのでしょうか?
下記の間違いではないですか?
php
1if(isset($_POST['edit'])==true)
2{
3 if(isset($_POST['staffcode'])==false) // ここも要修正
4 {
5 header('Location:staff_ng.php');
6 }
7 else
8 {
9 $staff_code=$_POST['staffcode'];
10 header('Location:staff_edit.php?staffcode='.$staff_code);
11 }
12}
質問の書き方についてですが。
やはり二つ目のifが機能していません。
どういう入力で、どういう結果になったため、
「機能していない」と思ったのかを書いてください。
単体で二回目のif文が機能しているか確認してみたところちゃんと動きます。
どういうコードで、どういう入力で、どういう結果になったため、
「ちゃんと動く」と思ったのかを書いてください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。