Я новичок в PHP, я пытался работать в школьных школах примера размещения данных о формах.
Это никогда не работает для меня … на веб-странице не отображаются какие-либо данные, я пробовал несколько форумов, а также SO, которые никогда не помогали … Я все равно все путаю!
Пример №1: Простой контакт из – HTML-код
<form action="action.php" method="post"> <p>Your name: <input type="text" name="name" /></p> <p>Your age: <input type="text" name="age" /></p> <p><input type="submit" /></p> </form>
Пример № 2: печать данных из нашей формы
Hi <?php echo htmlspecialchars($_POST['name']); ?>. You are <?php echo (int)$_POST['age']; ?> years old.
Ожидаемый результат этого скрипта может быть:
Hi Joe. You are 22 years old.
Фактический результат:
Hi . You are years old
Параметр «Сообщение» не отображает данные. Любая помощь действительно оценена.
То, что W3Schools (обработка форм PHP) не упоминается, состоит в том , что целые (2) тела кода должны либо находиться внутри одного файла, либо в двух отдельных файлах, чтобы он работал как ожидалось.
Однако код из W3Schools и OP не является indentical и был изменен, используя htmlspecialchars
и (int)
Если вы хотите использовать htmlspecialchars
, выполните следующие действия в файле htmlspecialchars
:
<?php $fname = htmlspecialchars($fname); ?> Welcome <?php echo $_POST["fname"]; ?>!<br> You are <?php echo (int)$_POST['age']; ?> years old.
<html> <body> <form action="welcome.php" method="post"> Name: <input type="text" name="fname"> Age: <input type="text" name="age"> <input type="submit"> </form> </body> </html>
Я не видел упоминания на веб-сайте W3Schools об использовании htmlspecialchars
или (int)
Hi <?php echo htmlspecialchars($_POST['name']); ?>. You are <?php echo (int)$_POST['age']; ?> years old.
Если вы хотите использовать htmlspecialchars, тогда вы должны использовать следующий синтаксис:
$fname = htmlspecialchars( $fname );
И помещены в теги <?php
и ?>
Например:
<?php $fname = htmlspecialchars( $fname ); ?>
ПРИМЕЧАНИЕ . Я почти ничего не знаю о запуске веб-сервера с моего собственного компьютера, но из информации, которую я нашел здесь, на SO упоминает, что для доступа к вашим файлам PHP вам нужно набрать http://localhost
в адресной строке вашего веб-браузера и папку, в которой находится ваш файл.
Пожалуйста, посетите этот ответ
StackOverflow не позволял мне вставлять коды на эту страницу по той или иной причине.
В <form>
«действие» отправляется ваше сообщение POST. Так выглядит ли ваша файловая структура так?
//index.php <form action="action.php" method="POST"> // <-- make sure to capitalize method="POST" as well <p>Your name: <input type="text" name="name" /></p> <p>Your age: <input type="text" name="age" /></p> <p><input type="submit" /></p> </form>
,
//action.php Hi <?php echo htmlspecialchars($_POST['name']); ?>. You are <?php echo (int)$_POST['age']; ?> years old.
РЕДАКТИРОВАТЬ
Похоже, что вы можете получать ошибки в PHP, которые отключены. Попробуйте это в файле action.php и повторно отправьте страницу.
//action.php <?php error_reporting(E_ALL); ?> Hi <?php echo htmlspecialchars($_POST['name']); ?>. You are <?php echo (int)$_POST['age']; ?> years old.
EDIT 2
Похоже, что вы можете получать ошибки в PHP, которые отключены. Попробуйте это в файле action.php и повторно отправьте страницу.
//action.php <?php error_reporting(E_ALL); ?> Hi <?php echo $_POST['name']; ?>. You are <?php echo $_POST['age']; ?> years old.
Следующее должно быть в action.php
Hi <?php echo htmlspecialchars($_POST['name']); ?>. You are <?php echo (int)$_POST['age']; ?> years old.
Если вы все же получите это, перейдите на php.ini и установите свои ошибки в E_ALL и E_STRICT
и проверьте, какая ошибка.
Скорее всего, теперь он должен работать …
В вашей форме проверьте, не отправляет ли пустые значения.
ШАГ 1 скопируйте и вставьте следующий код в текстовый редактор и запустите его. Это позволит вам проверять значения из формы без перенаправления страницы.
Следующий код должен быть в index.php
<form action="action.php" method="POST" onsubmit="return validate()"> <p>Your name: <input type="text" name="name" id="name"/></p> <p>Your age: <input type="text" name="age" id="age"/></p> <p><input type="submit" /></p> </form> <script type="text/javascript"> function validate(){ var name=document.getElementById("name").value; var age=document.getElementById("age").value; alert ("Name="+name+" age="+age); return false; } </script>
Этот код проверяет правильность ввода значений без перенаправления страницы на action.php.
Шаг 2 Если вы получаете желаемый результат из предыдущего кода, вы можете заменить функцию проверки на код ниже. ( замените все между тегами скрипта )
function validate(){ var name=document.getElementById("name").value; var age=document.getElementById("age").value; if (name==null || name==""){ return false; } if (age==null || age==""){ return false; } return true; }
Если имя и возраст заполнены в форме, отправьте теперь перенаправление на action.php
Шаг 3 В action.php используйте следующий код.
<? //These code goes in action.php extract ($_POST); echo "Hi $name. You are $age years old"; ?>
отредактирован с инструкциями по запросу OP
Просто укажите, что ваша форма работает с вашего сервера ( http: // localhost. ), А не сама форма (файл: /// C: xampp ..). Счастливое кодирование