Код, не дающий выходных данных

#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']."}"; ....