ホームページ >バックエンド開発 >PHPチュートリアル >$_POSTで渡されるパラメータの判定について質問します。数値が取得できません。
Web ページには new/modify 関数があります。 2e32ae3a52d643c991d882fa1977a1d7
50ff4d849347fcd672c082c8388bb72b
ユーザー名: a0dd4e7d8ff369d20d0cfb0e02f6bbf0
8cfa42941f7379293249918de297f66c
ディスカッションに返信
期限 7bc4ed1b7c9a60b5749d4800d250e590
つまり
if (isset($_POST['id']) && isset($_POST[ 'uname' ])&& !empty($_POST['id']) && !empty($_POST['uname']))
赤い部分が成立していないので分岐には入りません
なぜなら < ;input id='pid' name=' id' type='text' value=' 0'/>
id=0 が空とみなされる理由? 0 は少なくとも値です。 Empty ではありません
$a = '0';var_dump(! empty($a));//bool(false)empty の説明を読むことができます
ルールはあなたが従うべきものですが、少し不十分かもしれません
if ($pid==0){ ここにも問題があります、$pid には何もありませんvalue, $pid = $_POST['id']
var が空でない場合、または値がゼロの場合、empty() は FALSE を返します。つまり、""、0、"0"、NULL、FALSE、array()、var $var; および属性のないオブジェクトは空とみなされます。var が空の場合は、TRUE が返されます。
0が空ではないと判断したい場合は、次のように書くことができます。
if (isset($_POST['id']) && isset($_POST['uname'])&& ! (empty($_POST['id']) && $_POST['id']!=0) && !empty($_POST['uname'])) {
フォーム送信かどうかを判断するには、
if($_SERVER['REQUEST_METHOD'] == "POST") だけです
さらに簡単なのは
if( $_POST )
送信されたデータは常に文字列なので、ID制御が0かどうかを判断します
if($_POST['id'] === '0')
以上です
if($_POST ['id' ] == '0')
if(empty($_POST['id']))
も可能ですが、空白か0か区別できません
if ($_POST) { $id = $_POST['id']; $uname= $_POST['uname']; if ($id==0){ 新增用户---------------------如果传递过来的值是0,则不执行该语句,如果传来的值是00,则执行该语句。 }else{ 修改用户 }}