Я создаю функцию для проверки формы PHP. Идея состоит в том, что если пользователь не заполнил требуемое поле (например, если переменная $_POST
именем "имя" пуста), пользователь будет предупрежден.
Однако эта функция не работает, однако:
function addError($x) {
if (!$_POST["$x"]) {
$error.="Please enter your $x";
}
}
echo $error;
Я выделил проблему до перехода аргумента $x
в $_POST
, т. $_POST
Эта строка:
if (!$_POST["$x"]) {
В частности, $_POST["$x"]
. Это правильный способ/синтаксис для передачи аргумента?
Спасибо!
Ваш код должен выглядеть как -
$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
Я упомянул выше два ответа и написал код для этого вопроса. Он работает, когда я тестировал. Вы можете получить представление о своей кодировке. Вот мой проверенный код.
Раздел 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>
Попробуй это.....
<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);
?>
Сделать $error
глобальной переменной.
Попробуй это :-
$error = "";
function addError($x)
{
global $error;
if ("" == $_POST['"'.$x.'"'])
{
$error.="Please enter your".$x;
}
}
addError("name");
echo $error;
$error
будет внеscope
.