1

データベースに空白/空のスペース、null値をインポートしたくありません。したがって、このため、データベースにインポートする前に入力値を確認したいと思います。入力値のチェックに適したisset関数とempty関数を教えてください。これが私のコードです。ありがとう

$required = array('login', 'password', 'confirm', 'name', 'phone', 'email');

$error = false;
foreach($required as $field) {
  if (empty($_POST[$field])) {
    $error = true;
  }
}

if ($error) {
  echo "All fields are required.";
} else {
  echo "Proceed...";
}
4

7 に答える 7

1

この状況emptyでは、文字列が空かどうかもチェックするため、より理にかなっています。isset定義されているかどうかを確認するだけです。入力をトリミングすることもできます。

于 2012-10-23T10:30:33.670 に答える
1
$required = array('login', 'password', 'confirm', 'name', 'phone', 'email');

$error = false;
foreach($required as $field) {
  if (empty($_POST[$field]) || strlen(trim($_POST[$field])) == 0) {
    $error = true;
  }
}

if ($error) {
  echo "All fields are required.";
} else {
  echo "Proceed...";
}
于 2012-10-23T10:32:57.070 に答える
1

issetまったく役に立たemptyないので、ここではおそらく適切な選択ではありません。

内部の値$_POST(および$_GETおよび$REQUEST)は常に文字列として入力されるため、isset常に。を返しtrueます。さらに、emptyonの動作falsenullおよびその他のそのような値は機能しません。つまり、emptyチェックは以下を拒否するだけです。

  • 長さゼロの文字列
  • 文字列"0"

これは、コードが拒否しようとしているように見えるものとは異なります。

  • 長さゼロの文字列
  • 完全に空白で構成される文字列

trim($_POST['foo']) === ''代わりに条件として使用することを検討してください。

于 2012-10-23T10:33:59.000 に答える
1

最善の方法は、とを使用することemptyですtrim。なぜトリミングするのですか?最初と最後からスペースや行などを削除します。つまり、誰かがいくつかのスペースを挿入したがテキストが挿入されていない場合、スペースを削除できるので、次のことを確認できますempty

if(empty(trim($foo))) 
{
    // It is empty!
}
于 2012-10-23T10:34:39.923 に答える
1

Isset()変数に(Flase、0、またはEmpty string)を含む値があるかどうかをチェックしますが、NULLではありません。
varが存在する場合はTRUEを返します。それ以外の場合はFALSE。

empty()関数は、変数に空の値、空の文字列、0、NULL、またはFalseがあるかどうかをチェックします。varの値が空でもゼロでもない場合、FALSEを返します。

例:

$var = 0;

// Evaluates to true because $var is empty
if (empty($var)) {
echo '$var is either 0, empty, or not set at all';
}


// Evaluates as true because $var is set
if (isset($var)) {
echo '$var is set even though it is empty';
}

起源

あなたの場合、あなたはempty()機能を使うことができます

于 2012-10-23T10:35:12.100 に答える
0

修理する:

foreach($required as $field) 
{
   $val = trim($_POST[$field];
   if (empty($val)) 
   {
      $error = true;
   }
}
于 2012-10-23T10:32:42.150 に答える
-1

isNotEmpty関数を組み込むことができます

<?php
function isNotEmpty($input){
    $strTemp = trim($input);

    if($strTemp !== ''){
       return true;
    }
    return false;
}

?>

  • 将来参照する必要がある場合に備えて、isNotEmptyを「isnotempty.php」として保存します。

    include 'isnotempty.php';
    $error = false;
    foreach($required as $field) {
      if (!(isNotEmpty($_POST[$field]))) {
        $error = true;
      }
    
    if ($error) {
      echo "All fields are required.";
    } else {
      echo "Proceed...";
    }
    

お役に立てれば

于 2012-10-23T10:36:10.490 に答える