0

我正在尝试获取两个表单字段并检查用户是否在这两个字段中输入了任何内容。如果字段已填写,我想通过电子邮件发送用户输入的字段的值。如果字段为空或仅填充空格,我想在电子邮件中显示一条通用文本消息,指出这些表单字段为空。我尝试了 empty()、isset() 和每个变量的许多不同变体,并检查变量是否等于 NULL 并且什么都不做。我想知道我做错了什么,它必须相当简单。

HTML

<div class="formField">Desired UserName: <input type="text" name="userName" style="width:200px;" value="" /></div>
<div class="formField">Desired Password: <input type="text" name="userPass" style="width:200px;" value="" /></div>

PHP

$userName = $_REQUEST['userName'];
$userPass = $_REQUEST['userPass'];

if ($userName === NULL ) {
    $userName = "Use Generic Username, No Preference Entered";
}

if ($userPass === NULL ) {
    $userPass = "Use Generic Password, No Preference Entered";
}

$MESSAGE_BODY .= "Desired Username: ".$_POST["userName"]."\r\n";
$MESSAGE_BODY .= "Desired Password: ".$_POST["userPass"]."\r\n";
4

3 回答 3

1

在我看来你想要这样的东西

$userName = !empty($_POST['userName']) ? $_POST['userName'] :
    'Use Generic Username, No Preference Entered';
$userPass = !empty($_POST['userPass']) ? $_POST['userPass'] :
    'Use Generic Password, No Preference Entered';

$MESSAGE_BODY .= sprintf('Desired Username: %s%sDesired Password: %s%s',
    $userName, PHP_EOL, $userPass, PHP_EOL);

您的主要问题似乎是您没有在字符串中使用$userNameand 。$userPass$MESSAGE_BODY

于 2013-09-18T23:31:31.067 回答
1

$userName并且$userPass不等于null,当用户不传递数据时,它只是一个空字符串。

您可以在检查前修剪:

$userName = isset($_REQUEST['userName'])? trim($_REQUEST['userName']): false;

trim()删除多余的空格。

现在你可以像这样在你的条件下使用它:

if (!$userName) { // if no username
    $userName = "Use Generic Username, No Preference Entered";
}
于 2013-09-18T23:28:06.517 回答
0
$userName = $_REQUEST['userName'];
$userPass = $_REQUEST['userPass'];

if (empty(trim($userName))) {
    $userName = "Use Generic Username, No Preference Entered";
}

if (empty(trim($userPass))) {
    $userPass = "Use Generic Password, No Preference Entered";
}

$MESSAGE_BODY .= "Desired Username: ".$_POST["userName"]."\r\n";
$MESSAGE_BODY .= "Desired Password: ".$_POST["userPass"]."\r\n";
于 2013-09-25T06:29:42.140 回答