#php
#php
Вопрос:
Я проводил мозговой штурм с этим фрагментом кода с очень долгого времени, но безуспешно.
$name = $_GET['name'];
$email = $_GET['email'];
$question = $_GET['question'];
mysql_connect ("localhost", "root", "") or die ('Error: ' . mysql_error());
mysql_select_db ("contact");
$query ="INSERT INTO contactus (name, email, question) VALUES ('".$name."', '".$email."', '".$question."')";
$done=mysql_query($query);
echo "Hello $name {$_GET["name"]}";
echo "nYour query $question {$_GET["question"]}";
Комментарии:
1. что вы ожидаете в качестве выходных данных? этот код выглядит нормально
2. Пожалуйста, опишите, где у вас находится ваш код, и есть ли у вас хотя бы начальный тег php
3. Пожалуйста, покажите URL, который вы используете для запроса скрипта. Я полагаю, у вас есть открывающий php-тег, не так ли?
4. У вас есть уязвимость SQL injection и уязвимость XSS.
5. Вы уверены, что переменные $ _GET установлены? Вы также должны избегать своих переменных $name, $ email и $ question.
Ответ №1:
Замените кавычки вокруг имени и вопроса одинарными кавычками:
echo "Hello $name {$_GET['name']}";
echo "nYour query $question {$_GET['question']}";
Поскольку вы уже определили строку с двойными кавычками, используйте одинарные кавычки, чтобы указать строку внутри вашей строки.
Ответ №2:
Если вы используете двойные кавычки, вы также можете использовать обозначения в стиле PHP3 без фигурных скобок:
echo "nYour query $question $_GET[question]";
Обратите внимание на отсутствие кавычек вокруг ключа массива. Однако этот синтаксис допустим только в двойных кавычках. В обычном контексте PHP они вам действительно нужны.
Ответ №3:
другой вариант:
echo "hello" . $name . "{" .$_GET['name']."}"; ....