Не судите строго. Это можно сказать мой первый скрипт, который я разбираю и тот комом. :( Короче суть вот в чём. Есть форма send.html:
<html>
<body>
<form action="script.php" method="POST">
Введите имя: <input type=text name="name"><br>
Введите возраст: <input type=text name="age"><br>
<input type=submit value="GO!">
</form>
</body>
</html>
И есть скрипт script.php:
<?php
echo "Привет,$_POST['name']! Вам $_POST['age'] лет !";
?>
Так в результате работы этого простого скрипта вылетает ошибка:
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in E:\wamp64\www\mysite\script.php on line 2
И вот я не пойму: либо что-то в коде не правильно, либо мой веб-сервер глючит. К слову у меня сборка WAMP 64bit 3.0.6.
Во избежание таких же ошибок в дальнейшем, лучше всего выносить все переменные за кавычки и использовать одинарные кавычки. Использование одинарных кавычек предпочтительнее с точки зрения быстродействия: интерпретатору PHP не придется искать наличие переменных (экономия "на спичках", но все же), так как в одинарных кавычках они не обрабатываются.
Если вы планируете изучать и работать с PHP в дальнейшем, старайтесь не обращаться к переменным $_POST, $_GET и подобным напрямую. Это связано с тем, что $_POST['name'] может быть не установлен и если вы настроили отображение ошибок уровня E_STRICT (весьма полезно при написании скриптов), то ошибки будут постоянно появляться. Для получения данных лучше всего использовать функцию filter_input(), с её помощью можно проверить данные на корректность, но об этом уже почитайте в документации.
Никогда не выводите данные, введенные пользователем напрямую, без обработки, на страницу. Это чревато многими проблемами, например XSS. Все данные, которые могут содержать амперсанд, кавычки, знаки меньше и больше нужно заключать в функцию htmlspecialchars().
В итоге ваш echo может выглядеть так:
echo 'Привет, '.htmlspecialchars(filter_input(INPUT_POST, 'name')).'! Вам '.htmlspecialchars(filter_input(INPUT_POST, 'age')).' лет !';
Dmitry OnGamer, правильно отметил! При использовании переменных в вводе, в частности в echo "" Переменную нужно оборачивать в {$var} фигурные скобки, для того чтобы компилятор отличил ее от обычного текста. Если вы используете двойные кавычки в echo, то обычные переменные типа $var можно и без {}. Но переменные типа массив $var['value] нужно оборачивать в фигурные скобки. Так же можно использовать конкатенацию Примеры
echo "Привет $name"; //двойные кавычки
echo "Привет {$_POST['name]}"; //Переменная типа массив
echo "Привет " . $_POST['name']; //Конкатенация
Используйте фигурные скобки:
echo "Привет,{$_POST['name']}! Вам {$_POST['age']} лет !";
Фрилансер или Digital-агентство - Как сделать правильный выбор?
Я уже использовал на практике WooCommerce api на определенной страницеРазобрался с тем как должен выглядеть путь запрос
Допустим, имеется категория Вода (id='500') а в ней есть подразделы
Для системы очередей использую данное расширениеНа сайте стоит Redis движок