Intereting Posts
Как проверить, имеют ли все ключи в массиве пустые значения в PHP? Входящие сообщения в стиле Facebook В приложении Laravel mysql import преобразует значения timestamp null в 0000-00-00 00:00:00 Получить элементы DOM по имени тега с помощью DOMDocument :: loadHTML и getElementsByTagName Файл по умолчанию для Apache localhost Применение информации из одной таблицы в отдельную таблицу в той же базе данных? cURL error 60: SSL-сертификат prblm: невозможно получить сертификат локального эмитента Рассчитать количество занятых дней в течение периода с использованием MySQL и PHP Изменение стилей div с использованием таймера javascript с разными интервалами Как вернуть как целочисленный параметр, так и шаблон рендеринга в качестве ответа в Symfony2 Где размещать глобальные функции в кодеринговом Уничтожение сеанса PHP Нужно ли очищать пользовательский ввод для запросов DB :: query в laravel? Кодировка символов для французских акцентов Как я могу сделать скриншот сайта с PHP и GD?

PHP Неустранимая ошибка: вызов неопределенной функции test_input () в C: \ wamp \ www \ web \ new9.php в строке 11

Следующая форма показывает ошибку при нажатии кнопки отправки, если мы вводим только имя и отправляем. Показанная ошибка:

Неустранимая ошибка: вызов неопределенной функции test_input () в C: \ wamp \ www \ web \ new9.php в строке 11

Может ли кто-нибудь найти проблему в приведенном ниже коде.

<?php // define variables and set to empty values $name1Err = $email1Err = ""; $name1 = $email1 = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["input_1"])) {$name1Err = "Your name is required. Just the first will do. ";} else {$name1 = test_input($_POST["input_1"]); if (!preg_match("/^[a-zA-Z ]*$/",$name1)) { $name1Err = "Only letters and white space allowed"; } } if (empty($_POST["input_12"])) {$email1= "";} else {$email1 = test_input($_POST["input_12"]); // check if e-mail address syntax is valid if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email1)) { $emailErr = "Invalid email format"; } } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } } ?> <form method='post' enctype='multipart/form-data' action=''> name<input name='input_1' type='text' value='<?php echo $name1;?>' tabindex='1' /> <div class="validation_message"><?php echo $name1Err ?></div> email<input name='input_12' type='email' value='<?php echo $email1;?>'/><br/> <textarea name='input_5' tabindex='9' rows='10' cols='50'></textarea> <input type='submit' value='Submit' tabindex='25' /> </form> <?php echo "<h2>Your Input:</h2>"; echo "Name:".$name1; echo "<br>"; echo "Email:".$email1; echo "<br>"; ?> 

Извлеките свою функцию из условного оператора if

Это должно быть так …

 <?php // define variables and set to empty values $name1Err = $email1Err = ""; $name1 = $email1 = ""; // Moved here function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } if ($_SERVER["REQUEST_METHOD"] == "POST") { // .... your remaining code .......... ! 

Из PHP-документов …

Когда функция определяется условным образом … Ее определение должно обрабатываться до вызова.

Source

В общем, функции сначала анализируются и поэтому могут использоваться в любом порядке.

 echo foo(); function foo() {return "bar";} 

Вышеизложенное работает отлично.

Однако, в отличие от некоторых языков, таких как JavaScript, PHP позволяет условно определять функции. Вы можете сделать что-то вроде этого:

 if( $something) { function foo() {echo "bar";} } else { function foo() {echo "fish";} } foo(); 

Это плохо (лично я бы предпочел анонимные функции или поставил условие внутри функции), но это разрешено.

Однако это означает, что функции больше нельзя захватывать. Они ДОЛЖНЫ быть определены до их использования. Возвращаясь к нашему первому примеру:

 if( true) { echo foo(); function foo() {return "bar";} } 

Это не удастся.

пытаться

 <form method='post' enctype='multipart/form-data' action='<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>'> 

источник: w3schools