PHP Передача аргументов в пользовательской функции в $ _POST ()

1

Я создаю функцию для проверки формы PHP. Идея состоит в том, что если пользователь не заполнил требуемое поле (например, если переменная $_POST именем "имя" пуста), пользователь будет предупрежден.

Однако эта функция не работает, однако:

function addError($x) {
    if (!$_POST["$x"]) {
        $error.="Please enter your $x";
    }
}

echo $error;

Я выделил проблему до перехода аргумента $x в $_POST, т. $_POST Эта строка:

if (!$_POST["$x"]) {

В частности, $_POST["$x"]. Это правильный способ/синтаксис для передачи аргумента?

Спасибо!

  • 0
    $error будет вне scope .
Теги:

5 ответов

2

Ваш код должен выглядеть как -

$error = '';
function addError($x, $error) {
    if (!$x) { // Check for the data
        $error.="Please enter your $x"; // Concatenate the errors
    }
    return $error; // return the error
}

echo addError($_POST[$x], $error); // Pass the data to check & the error variable
0

Я упомянул выше два ответа и написал код для этого вопроса. Он работает, когда я тестировал. Вы можете получить представление о своей кодировке. Вот мой проверенный код.

Раздел PHP

<?php 
        function check_error($x){
            $error = "";
            if(isset($_POST[$x]) && $_POST[$x] == ""){
                $error = "Please Enter Data";           
            }       
            return $error;  
        }

        echo check_error('txt_name');   

?>

Раздел HTML

<!DOCTYPE html>
<html>
<head>
    <title> Testing </title>
</head>
<body>
    <h1> Testing </h1>
    <hr/>
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">

        <input type="text" name="txt_name" value="" placeholder="Your name" />
        <input type="Submit" name="btn_submit" value="Submit" />

    </form>
</body>
</html>
0

Попробуй это.....

<form method="post">
<input type="text" name="name" />
<input type="submit" value="submit" />
</form>
<?php
$x=$_POST["name"];
function addError($x) 
{
    if ($x==null)
    {
        $error="Please enter your name";
    }
    else
    {
        $error='';
    }
    return $error;
}
echo addError($x);
?>
0

Сделать $error глобальной переменной.

0

Попробуй это :-

$error = "";
function addError($x) 
{
   global $error;
   if ("" == $_POST['"'.$x.'"']) 
   {
      $error.="Please enter your".$x;
   }
}
addError("name");
echo $error;

Ещё вопросы

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