Переменная поля формы электронной почты

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";
Теги:
forms

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);

Основная проблема заключается в том, что вы не использовали $userName и $userPass в своей строке $MESSAGE_BODY.

  • 0
    Ваше решение сработало безупречно. Итак, позвольте мне понять, понимаю ли я, что происходит. Указав $ userName = $ _REQUEST ['userName']; $ MESSAGE_BODY. = "Желаемое имя пользователя:». $ _ POST ["userName"]. "\ R \ n"; Означает ли это, что я считаю эту строку бесполезной? $ userName = $ _REQUEST ['userName'];
  • 0
    @MikeDinder да. Вы присваивали значения $userName и $userPass затем ничего не делали с ними. Значения в $_REQUEST и $_POST остались без изменений.
1

$userName и $userPass не равны нулю. Когда пользователь не передает данные, это просто пустая строка.

Перед проверкой можно обрезать:

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

trim() удалить лишние пробелы.

Теперь вы можете использовать его в своем состоянии так:

if (!$userName) { // if no username
    $userName = "Use Generic Username, No Preference Entered";
}
  • 0
    Это не сработало, но я думаю, что если я смогу поиграть с этим, это научит меня чему-то очень полезному в отношении функции isset (). Ответ парня ниже фактически решил проблему. Большое спасибо за вашу попытку.
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";

Ещё вопросы

Сообщество Overcoder
Наверх
Меню