2014-10-13 4 views
-2

Мой HTML-код, который принимает строку:

<!DOCTYPE html> 
<head> 
    <title>title</title> 
</head> 
<body> 
    <font face="Segoe UI" siz ="3"> 
    <form action="process.php" action="post"> 
    Suggestion: <input type="text" name="sgst" autocomplete="off"> 
    <input type="submit"> 
</form> 
</font> 
</body> 
</html> 

Мой PHP, который обрабатывает его: (process.php)

<?php 
    if ($_POST["sgst"]=="john") { 
     echo "john"; 
    } else { 
     echo "someone"; 
    } 
?> 

Я получаю ошибку

Примечание: Неопределенный индекс: sgst в C: \ xampp \ htdocs \ test \ process.php в строке 2

Может ли кто-нибудь сказать мне, что является причиной ошибки?

+0

Вы фактически проводкой форму права? – Jonathon

+1

в вашем атрибуте формы используйте метод = "post" вместо action = "post". –

+0

Это означает, что значение не было передано. Уведомления PHP обычно можно игнорировать, если у вас нет других проблем. – Anthony

ответ

1

Вы повторно с помощью атрибута action на form элемент:

<form action="process.php" action="post"> 

Я удивлен, что форма даже размещение на всем дано что. Хотя, учитывая симптомы, кажется, по крайней мере, достаточно, чтобы запутать ПОСТ. Я думаю, что вы имели в виду использовать атрибут method:

<form action="process.php" method="post"> 

Парочка другие примечания:

  • Вы хотите использовать isset() в вашей стороне сервера кода. Код не должен предполагать, что все значения будут опубликованы, поскольку сервер не может контролировать то, что клиент отправляет. Лучше явно проверять данные, поступающие перед использованием.
  • font Элементы довольно устарели, и если они официально не устарели, они должны быть :) CSS-стиль был бы способом использовать стили пользовательского интерфейса на стороне клиента.
0

это показывает не определено, потому что в первый значение не инициализирован

Используйте isset() Inorder для проверки объявленной стоимости или нет, то он не будет показывать ошибку ...

попробовать это я изменил

<?PHP 
if (isset($_POST["sgst"]) 
{ 
    if ($_POST["sgst"]=="john") { 
    echo "john"; 
    } else { 
    echo "someone"; 
    } 
} 
?> 
+0

Независимо от того, какое имя я вхожу сейчас, он всегда говорит «кто-то». – blah

+0

попробуйте это я изменил – Ronser

0

Попробуйте следующие

использование метода атрибута как method="post" в виде тега вместо action="post"

0
<!DOCTYPE html> 
<head> 
    <title>title</title> 
</head> 
<body> 
    <font face="Segoe UI" siz ="3"> 
    <form action="process.php" method="post"> 
    Suggestion: <input type="text" name="sgst" autocomplete="off"> 
    <input type="submit"> 
</form> 
</font> 
</body> 
</html>  


if (isset($_POST["sgst"]) && $_POST["sgst"]=="john") { 
      echo "john"; 
     } else { 
      echo "someone"; 
     } 
0

Вы отсутствует атрибут метода.

Использование двух форм - удаление первой формы.

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

<form action="process.php" method="post"> 

<?php 
     if(!empty($_POST)){ 
     if ($_POST["sgst"]=="john") { 
       echo "john"; 
      } else { 
       echo "someone"; 
      } 
     } 
     ?> 
0

использование Исеть

if(isset($_POST["sgst"]=="john")){ 

} 
+3

вы проверили это? – andrew

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