2013-07-15 3 views
0

간단한 양식 유효성 검사 스크립트를 작성하고 있지만 한 가지 문제는 Google 크롬을 통해 스크립트를 실행할 때 전체 PHP 태그가 입력란에 표시된다는 것입니다. 이 경우 "firstname"에 대한 코드는 입력란에 <?php echo $fn; ?>이됩니다. 내 PHP 변수 인 $ fn, $ ln을 null로 설정하려고 시도했지만 문제가 해결되지 않는 것 같습니다. 어떤 제안?양식 처리, HTML 내에서 PHP 통합

<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)를 참조하십시오. 대신 [* prepared statements *] (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> 태그를 교체 .php one

또한 모든 변수를 null으로 설정하는 대신 ""으로 설정할 수 있습니다.