Подтвердить что ты не робот

Проверьте, существует ли $_POST

Я пытаюсь проверить, существует ли $_POST, и если это так, напечатайте его внутри другой строки, если нет, не печатайте вообще.

что-то вроде этого:

$fromPerson = '+from%3A'.$_POST['fromPerson'];

function fromPerson() {
    if !($_POST['fromPerson']) {
        print ''
    } else {
        print $fromPerson
    };
}

$newString = fromPerson();

Любая помощь будет замечательной!

4b9b3361

Ответ 1

if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}

Ответ 2

Simple. У вас есть два варианта:

1. Проверьте, есть ли вообще какие-либо данные для отправки

//Note: This resolves as true even if all $_POST values are empty strings
if (!empty($_POST))
{
    // handle post data
    $fromPerson = '+from%3A'.$_POST['fromPerson'];
    echo $fromPerson;
}

(OR),

2. Проверяйте, доступен ли только КАЧЕСТВЕННЫЙ ключ в данных post

if (isset($_POST['fromPerson']) )
{
    $fromPerson = '+from%3A'.$_POST['fromPerson'];
    echo $fromPerson;
}

Ответ 3

Все говорят использовать isset() - что, вероятно, сработает для вас.

Однако важно понимать разницу между

$_POST['x'] = NULL; и $_POST['x'] = '';

isset($_POST['x']) вернет false в первом примере, но вернет true во второй, даже если вы попытаетесь распечатать один из них, оба возвращают пустое значение.

Если ваш $_POST поступает из поля/формы, введенного пользователем, и остается пустым, я ВЕРЮ (на этот раз я не уверен на 100%), что значение будет "", но NOT NULL.

Даже если это предположение неверно (кто-то, пожалуйста, исправьте меня, если я ошибаюсь!) выше все еще хорошо знать для будущего использования.

Ответ 4

Удивленный он не упоминался

if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['fromPerson'])){

Ответ 5

isset($_POST['fromPerson']) 

Ответ 6

  • В этом случае использование метода isset не подходит.

Согласно документации PHP: http://php.net/manual/en/function.array-key-exists.php
(см. пример # 2 array_key_exists() vs isset())
Метод array_key_exists предназначен для проверки присутствия ключа в массиве.

Таким образом, код в вопросе можно изменить следующим образом:

function fromPerson() {
   if (array_key_exists('fromPerson', $_POST) == FALSE) {
        return '';
   } else {
        return '+from%3A'.$_POST['fromPerson'];
   };
}

$newString = fromPerson();


  • Проверка наличия массива $_POST не требуется, потому что это глобальная переменная среды PHP с версии 4.1.0 (в настоящее время мы не встречаем старые версии PHP).

Ответ 7

Правильный способ проверки наличия ключа массива - это функция array_key_exists()

Разница в том, что когда у вас есть $_POST['variable'] = null, это означает, что ключ существует и отправляется, но значение было null

Другой параметр isset(), который будет проверять, существует ли ключ массива, и если он был установлен

Последний параметр - использовать empty(), который будет проверять, существует ли ключ массива, если он установлен, и если значение не считается пустым.

Примеры:

$arr = [
  'a' => null,
  'b' => '',
  'c' => 1
];

array_key_exists('a', $arr); // true
isset($arr['a']); // false
empty($arr['a']); // true


array_key_exists('b', $arr); // true
isset($arr['b']); // true
empty($arr['b']); // true


array_key_exists('c', $arr); // true
isset($arr['c']); // true
empty($arr['c']); // false

Относительно вашего вопроса

Правильный способ проверить, было ли отправлено значение, - использовать array_key_exists() с проверкой метода запроса

if ($_SERVER['REQUEST_METHOD'] == 'POST' && array_key_exists('fromPerson', $_POST)    
{
   // logic
}

Но есть некоторые случаи, зависящие от вашей логики, где isset() и empty() также могут быть хорошими.

Ответ 8

Все методы на самом деле обескуражены, это предупреждение в Netbeans 7.4, и, безусловно, хорошей практикой является не прямой доступ к сверхглобальным переменным, используйте filter вместо

$fromPerson = filter_input(INPUT_POST, 'fromPerson', FILTER_DEFAULT);
if($fromPerson === NULL) { /*$fromPerson is not present*/ }
else{ /*present*/ }
var_dump($fromPerson);exit(0);

Ответ 9

Попробуйте isset ($_POST['fromPerson'])?

Ответ 10

if (is_array($_POST) && array_key_exists('fromPerson', $_POST)) {
    echo 'blah' . $_POST['fromPerson'];
}

Ответ 11

Try

if (isset($_POST['fromPerson']) && $_POST['fromPerson'] != "") {
    echo "Cool";
}

Ответ 12

if( isset($_POST['fromPerson']) ) прав.

Вы можете использовать функцию и вернуться, а затем направлять эхо.

Ответ 13

Мне нравится проверять, если он iset и если он пуст в тройном операторе.

// POST variable check
$userID  = (isset( $_POST['userID'] )    && !empty( $_POST['userID'] ))   ? $_POST['userID']   :  null;
$line    = (isset( $_POST['line'] )      && !empty( $_POST['line'] ))     ? $_POST['line']     :  null;
$message = (isset( $_POST['message'] )   && !empty( $_POST['message'] ))  ? $_POST['message']  :  null;
$source  = (isset( $_POST['source'] )    && !empty( $_POST['source'] ))   ? $_POST['source']   :  null;
$version = (isset( $_POST['version'] )   && !empty( $_POST['version'] ))  ? $_POST['version']  :  null;
$release = (isset( $_POST['release'] )   && !empty( $_POST['release'] ))  ? $_POST['release']  :  null;