2013-07-15 3 views
0

Я пишу простой скрипт проверки формы, но одна проблема, с которой я столкнулся, - это когда я запускаю свой скрипт через Google Chrome, весь мой php-тег появляется в полях ввода. В этом случае мой код для «firstname» будет иметь <?php echo $fn; ?> в поле ввода. Я попытался установить свои php-переменные, $ fn, $ ln, в null, но это, похоже, не решает проблему. Какие-либо предложения?Обработка формы, интеграция php в html

Вот мой код:

<html> 

<head> 
    <title> My Webpage! </title> 
</head> 

<body> 

<?php 

include 'connect_inc.php'; 
include 'validate.php'; 

$fn = null; 
$ln = null; 
$age = null; 
$birthday = null; 

    if(isset($_POST['firstname']) && isset($_POST['lastname']) && isset($_POST['age']) && isset($_POST['birthday'])) 
    { 
     $fn = $_POST['firstname']; 
     $ln = $_POST['lastname']; 
     $age = $_POST['age']; 
     $birthday = $_POST['birthday']; 

     if(!empty($fn) && !empty($ln) && !empty($age) && !empty($birthday)) 
     { 
      $sec = mysql_real_escape_string; 
      $query = "INSERT INTO `ppl` VALUES('','".$sec($fn)."','".$sec($ln)."','".$sec($age)."','".$sec($birthday)."')"; 
      if($query_run = mysql_query($query)) 
      { 
       header('Location: formSuccess.php'); 
      } 
      else 
      { 
       echo 'Unable to register at this time'; 
      } 

     } 
     else 
     { 
      echo 'Please make sure that all the fields are filled'; 
     } 
    } 
?> 

<form action = "form.php" method = "POST"> 
    Firstname: <br> <input type = "text" name = "firstname" maxlength = "40" value = "<?php echo $fn;?>" > <br><br> 
    Lastname: <br> <input type = "text" name = "lastname" maxlength = "40"> <br><br> 
    Age: <br> <input type = "text" name = "age" maxlength = "3"> <br><br> 
    Birthday: <br><input type = "text" name = "birthday" maxlength = "13"> <br><br> 
    <input type = "submit" value = "Submit"> 

</form> 

</body> 

</html> 
+0

[** Пожалуйста, не используйте 'mysql_ *' функции в новом коде **) (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://j.mp/PoWehJ). –

+0

'мой весь тег php появляется в коробках ввода', который звучит, как PHP, неправильно установлен. –

ответ

0

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

<?php if(isset($_POST['firstname'])) { echo $fn; } ?> 

Код выше будет проверить, если форма была отправлена ​​или нет. Если нет, он не будет отвечать на $ fn.

0

Не совсем уверен, всего несколько предложений.

  1. Ваш файл имеет имя *.html? Если да, то вы можете переименовать его в нечто вроде *.php и добавить заменить <html> тег со следующим:

    <?php ?>

    <html>

, а затем попытаться запустить этот файл в браузере (The * .php one)

Кроме того, вместо того, чтобы устанавливать все переменные в null, вы можете попробовать установить их на "".

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