2013-11-30 4 views
0

им Тринг называть PHP страницу с помощью простого HTML-страницы, и я не могу найти ошибку синтаксиса это HTMLPHP И если оператор

<html> 
<body style="background-color:#990000;"> 
<h5 align="center" style="font-family:tahoma;color:white;font-size:50px;"> Welcome! </h5> 

<form align="center" method="post" action="php_site.php"> 
First name: <input type="text" name="firstname"><br> 
Last name: <input type="text" name="lastname"><br> 
<input type="submit" value="Search!"> 
</form> 
</body> 
</html> 

и это РНР

<?php 
if (isset($_POST['firstname']) && (isset($_POST['lastname']))) 
{ 
    echo "Welcome $_POST['firstname']"; 
    echo "This is your last name $_POST['lastname']"; 
} 
else 
{ 
    echo "This is Empty!"; 
} 
?> 

благодаря!

+2

Попробуйте 'echo" Welcome ". $ firstname; 'вместо этого. –

+0

Какая синтаксическая ошибка? – Jon

+1

@ Фред-и: Серьезно? Положитесь на ['register_globals'] (http://php.net/manual/en/security.globals.php)? – Jon

ответ

4

Синтаксис встроенных ссылок на $ _POST внутри строк не совсем прав. Некоторые способы это исправить являются:

  1. Заверните их в {} скобках:

    echo "Welcome {$_POST['firstname']}"; 
    echo "This is your last name {$_POST['lastname']}"; 
    
  2. Или удалить одиночные кавычки:

    echo "Welcome $_POST[firstname]"; 
    echo "This is your last name $_POST[lastname]"; 
    
  3. Или используйте строку concatentation с . вместо вложения:

    echo "Welcome " . $_POST['firstname']; 
    echo "This is your last name " . $_POST['lastname']; 
    
  4. и/или тянуть значения в равнинных названных переменных первым:

    $firstname = $_POST['firstname']; 
    $lastname = $_POST['lastname']; 
    echo "Welcome $firstname"; 
    echo "This is your last name $lastname"; 
    

Смотрите документ на variable parsing in strings.

+1

+1 или потеряйте одинарные кавычки вокруг клавиш. Но конкатенация - это ИМО лучшая. – Jon

+0

@Jon Не знал этого! Благодарю. – Boann

0
<?php 
    if (isset($_POST['firstname']) && isset($_POST['lastname'])) 
    { 
     echo "Welcome ".$_POST['firstname']; 
     echo "This is your last name $_POST['lastname']"; 
    } 
    else 
    { 
     echo "This is Empty!"; 
    } 
?> 
1

Попробуйте это:

<?php 
if (isset($_POST['firstname']) && isset($_POST['lastname'])) 
{ 
    echo "Welcome ".$_POST['firstname']; 
    echo "This is your last name ".$_POST['lastname']; 
} 
else 
{ 
    echo "This is Empty!"; 
} 
?> 
0

Во-первых, вы должны установить набор ваших $_POST значений переменных.

$firstname = $_POST['firstname']; 
    $lastname = $_POST['lastname']; 

Затем убедитесь, что вы расщепление строки из переменных с помощью конкатенации пунктуации .:

echo "Welcome" . $firstname; вместо echo "Welcome $_POST['firstname']";

Кроме того, пожалуйста, напишите синтаксическую ошибку вы получаете , Если PHP ломается (белый экран смерти), то, пожалуйста, добавьте ini_set("display_errors", "1");, чтобы записать ошибки на экран, а затем опубликовать вывод ошибки.

+0

Неудачный импорт всех переменных $ _POST в глобальную область - плохая идея. Прошли годы, чтобы [уйти отсюда] (http://www.php.net/manual/en/security.globals.php). Не возвращай его. – Boann

+0

Нет, справедливо. Думаю, мне нужен еще кофе, обновленный ответ. – Xarus

Смежные вопросы