109

あるページに別のページに送信するフォームがあります。そこで、入力mailが入力されているかどうかを確認します。もしそうなら、何かをし、それが満たされていない場合は、何か他のことをします。空のフォームを送信しても、なぜ設定されていると表示されるのかわかりません。何が欠けているか間違っていますか?

step2.php

<form name="new user" method="post" action="step2_check.php"> 
    <input type="text" name="mail"/> <br />
    <input type="password" name="password"/><br />
    <input type="submit"  value="continue"/>
</form>

step2_check.php

if (isset($_POST["mail"])) {
    echo "Yes, mail is set";    
} else {    
    echo "N0, mail is not set";
}
4

15 に答える 15

230

ほとんどのフォーム入力は、入力されていなくても常に設定されているため、空であることも確認する必要があります。

はすでに両方をチェックしているので!empty()、これを使用できます。

if (!empty($_POST["mail"])) {
    echo "Yes, mail is set";    
} else {  
    echo "No, mail is not set";
}
于 2012-10-24T08:19:23.060 に答える
25

!emptyの代わりに使用してくださいisset。issetは、配列がスーパーグローバルであり、常に存在する(set)$_POSTため、 trueを返します。$_POST

またはより良い使用$_SERVER['REQUEST_METHOD'] == 'POST'

于 2012-10-24T08:18:43.240 に答える
5

php.netから、isset

varが存在し、NULL以外の値を持つ場合はTRUEを返し、それ以外の場合はFALSEを返します。

空のスペースはセットと見なされます。すべてのnullオプションをチェックするには、empty()を使用する必要があります。

于 2012-10-24T08:20:25.710 に答える
3

フォームを空に送信した場合でも送信$_POST['mail']されますが、値は空です。フィールドが空かどうかを確認するには、確認する必要があります

if(isset($_POST["mail"]) && trim($_POST["mail"]) != "") { .. }
于 2012-10-24T08:19:20.927 に答える
2

以下を簡単に使用できます。

if($_POST['username'] and $_POST['password']){
  $username = $_POST['username'];
  $password = $_POST['password'];
}

または、 empty()を使用します

if(!empty($_POST['username']) and !empty($_POST['password'])){
  $username = $_POST['username'];
  $password = $_POST['password'];
}
于 2015-04-30T14:26:30.017 に答える
1

次の属性を入力テキスト フォームに追加しますrequired="required"。フォームが入力されていない場合、ユーザーはフォームを送信できません。

新しいコードは次のようになります。

<form name="new user" method="post" action="step2_check.php"> 
<input type="text" name="mail" required="required"/> <br />
<input type="password" name="password" required="required"/><br />
<input type="submit"  value="continue"/>
if (isset($_POST["mail"])) {
    echo "Yes, mail is set";    
}
于 2014-10-09T17:08:38.760 に答える
0

多分あなたはこれを試すことができます:

if (isset($_POST['mail']) && ($_POST['mail'] !=0)) { echo "Yes, mail is set"; } else { echo "No, mail is not set"; }

于 2014-10-01T03:34:12.413 に答える
-1

投稿された質問に答えるには: isset と empty を一緒にすると、3 つの条件が得られます。これは、Javascript と ajax コマンドでも使用できます。

$errMess="Didn't test";   // This message should not show
if(isset($_POST["foo"])){ // does it exist or not
    $foo = $_POST["foo"]; // save $foo from POST made by HTTP request
    if(empty($foo)){      // exist but it's null
        $errMess="Empty"; // #1 Nothing in $foo it's emtpy

    } else {              // exist and has data
        $errMess="None";  // #2 Something in $foo use it now
      }
} else {                  // couldn't find ?foo=dataHere
     $errMess="Missing";  // #3 There's no foo in request data
  }

echo "Was there a problem: ".$errMess."!";
于 2015-04-05T15:49:13.427 に答える
-1
<form name="new user" method="post" action="step2_check.php"> 
  <input type="text" name="mail" required="required"/> <br />
  <input type="password" name="password" required="required"/><br />
  <input type="submit"  value="continue"/>
</form>

<?php
if (!empty($_POST["mail"])) {
    echo "Yes, mail is set";    
}else{  
    echo "N0, mail is not set";
}
?>
于 2016-07-11T07:31:18.167 に答える
-1

これを試すことができます:

if (isset($_POST["mail"]) !== false) {
    echo "Yes, mail is set";    
}else{  
    echo "N0, mail is not set";
}
于 2015-09-26T20:21:36.500 に答える