ホームページ  >  記事  >  バックエンド開発  >  $_POSTで渡されるパラメータの判定について質問します。数値が取得できません。

$_POSTで渡されるパラメータの判定について質問します。数値が取得できません。

WBOY
WBOYオリジナル
2016-06-23 13:57:501063ブラウズ

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'/>
つまり

if (isset($_POST['id']) && isset($_POST['uname'] )&& !empty($_POST ['id']) && !empty($_POST['uname']))

赤い部分は true ではないため、分岐には入りません


id=0 が空とみなされる理由? 0 は少なくとも値です。 Empty ではありません

$a = '0';var_dump(! empty($a));//bool(false)

empty の説明を読むことができます

ルールはあなたが従うべきものですが、少し不十分かもしれません

if ($pid==0){ ここにも問題があります、$pid には何もありませんvalue, $pid = $_POST['id']

empty ? 変数が空かどうかを確認する
bool empty (mixed $var) このメソッドのルールは次のとおりです

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{      修改用户    }}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。