使用PHP的问题!isset和函数

时间:2013-10-27 18:14:48

标签: php function isset

我正在尝试使用PHP!isset和一个函数来检查从HTML表单提交的任何字段是否为空,如果是,则kill(退出)脚本。只有我目前奇怪的代码跳过我的!issets并继续。 +对任何可以解决这个问题的人来说。 :)

// 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;
}

5 个答案:

答案 0 :(得分:2)

isset只是检查变量是否设置而不是null,而不是它是否为空。尝试类似:

if (!$Name) {fieldsmissing(); }
if (!$Email) {fieldsmissing(); }
if (!$Subject) {fieldsmissing(); }
if (!$Message) {fieldsmissing(); }

答案 1 :(得分: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...

答案 2 :(得分:0)

php5 -r '$x="";if(isset($x)){print "isset\n";}'

返回:

isset

对于空字符串,isset为true。

empty()可能更有用。 php.net/empty

答案 3 :(得分:0)

如果表单中没有$Name = $_POST["Name"];,则

$_POST["Name"]会发出警告。

你应该这样做:

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

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

HTH

答案 4 :(得分:0)

请勿使用isset检查字段是否已填写,因为它会在空字符串上返回true

而是使用empty()函数。

if (!isset($_POST['Name']) || empty($_POST['Name'])) {fieldsmissing(); }

此外,您不必在;之后使用}