1

PHP !isset と関数を使用して、HTML フォームから送信されたフィールドが空かどうかを確認し、その場合はスクリプトを強制終了 (終了) しようとしています。私が現在持っているコードだけが、私の !isset を奇妙にスキップして続行します。+これを理解できる人に。:)

// Get fields from HTML form
$Name = $_POST["Name"];
$Email = $_POST["Email"];
$Subject = $_POST["Subject"];
$Message = $_POST["Message"];

// Check to make sure no fields are empty
// If any fields are empty dumps script to fieldsmissing()
// If all fields are filled, continued to write actual email
if (!isset($Name)) {fieldsmissing(); };
if (!isset($Email)) {fieldsmissing(); };
if (!isset($Subject)) {fieldsmissing(); };
if (!isset($Message)) {fieldsmissing(); };

function fieldsmissing () {
exit;
}
4

5 に答える 5

2

isset は、変数が空白かどうかではなく、null ではなく設定されているかどうかをチェックするだけです。次のようなものを試してください:

if (!$Name) {fieldsmissing(); }
if (!$Email) {fieldsmissing(); }
if (!$Subject) {fieldsmissing(); }
if (!$Message) {fieldsmissing(); }
于 2013-10-27T18:17:21.107 に答える
1
function fieldsmissing () { // to declare before calling it
  exit;
}

// Get fields from HTML form
if (!isset($_POST["Name"])) {fieldsmissing(); };
if (!isset($_POST["Email"])) {fieldsmissing(); };
if (!isset($_POST["Subject"])) {fieldsmissing(); };
if (!isset($_POST["Message"])) {fieldsmissing(); };

$Name = $_POST["Name"];
$Email = $_POST["Email"];
$Subject = $_POST["Subject"];
$Message = $_POST["Message"];

// then use $Name etc...
于 2013-10-27T18:18:05.200 に答える
0
php5 -r '$x="";if(isset($x)){print "isset\n";}'

戻り値:

isset

isset は、空の文字列に対して true を返します。

empty()はるかに便利です。php.net/空

于 2013-10-27T18:18:12.247 に答える
0

$Name = $_POST["Name"];$_POST["Name"]がフォームから利用できない場合、警告が発生します。

おそらく代わりにこれを行う必要があります:

$Name = ( isset( $_POST["Name"] ) ? $_POST["Name"] : '' );

if ( empty( $Name ) ) { fieldsmissing(); }

HTH

于 2013-10-27T18:22:40.680 に答える