2011-08-18 2 views
0

PHP를 처음 사용했습니다. 내 isset 함수가 작동하지 않습니다. 그것은 오류를 표시하지 않습니다. 항상 테이블을 삽입합니다. 나는 내 코드를 주었다. 친절PHP-Isset 함수가 작동하지 않습니다.

+0

확인 $의 _POST 배열을 수행해야 할 방법이다. 거기에 'submit'요소가 있습니까? – pltvs

+1

@Marc Towler : 확실히 대답입니다. 게시 해주세요! ;) – Shef

+0

1.'isset()'은 함수가 아니다. 2. 왜 여기에 어떤 종류의 오류가있을 것이라고 기대하십니까? 양식을 보여주십시오. – Mchl

답변

1

사용 !empty($a) 대신 isset($_POST['companyname'])의 ... 내가 친절하게 내 코드에서 문제를 해결하고 나에게 다시 보내기

<?php 
if(isset($_POST['submit'])) { 
    $a= $_POST['companyname']; 
    $b= $_POST['ballpark_url']; 
    $c= $_POST['username']; 
    $d= $_POST['email']; 
    $e= $_POST['login1']; 
    $f= $_POST['pass']; 
    $error = false; 
    if(validname($a) ==false) { 
     echo $nameerror = "enter the valid name"; 
    } 
    if(validemail($d) ==false) { 
     echo $nameerror = "enter the valid email"; 
    } 
    if(isset($_POST['companyname'])) { 
     if($error==false) { 
      $query= "INSERT INTO user VALUES ('$a','$b','$c','$d','$e','$f','');"; 
      if(!mysql_query($query)) { 
       die ('error:'.mysql_error()); 
      } 
      mysql_close($conn); 
     } 
     include("templats/header_1.html"); 
     include("templats/content.html"); 
     include("templats/footer.html"); 
    } 
?> 

에 잘못한 것을 조언.

그러나 페이지가 표시되지 않습니다. 왜 : 존재 나던 경우

<?php 
if(isset($_POST['submit'])) { 

    $company_name = $_POST['companyname']; 
    $ballpark_url = $_POST['ballpark_url']; 
    $username  = $_POST['username']; 
    $email  = $_POST['email']; 
    $login1  = $_POST['login1']; 
    $pass   = $_POST['pass']; 

    $error = false; 

    if(!validname($company_name)) { 
     echo "enter the valid name"; 
     $error = true; 
    } 

    if(!validemail($email)) { 
     echo "enter the valid email"; 
     $error = true; 
    } 


    if(empty($_POST['companyname'])) { 
     echo "enter a company name"; 
     $error = true; 
    } 

    if(!$error) { 
     $query= "INSERT INTO user VALUES ('$company_name', 
              '$ballpark_url', 
              '$username', 
              '$email', 
              '$login1', 
              '$pass','');"; 

     if(!mysql_query($query)) { 
     die ('error:' . mysql_error()); 

     mysql_close($conn); 
    } 

    include("templats/header_1.html"); 
    include("templats/content.html"); 
    include("templats/footer.html"); 
} 
?> 
+1

왜 그가 empty()를 사용하겠습니까? isset()은이 경우에 훨씬 더 안정적입니다. –

+0

@JK True이지만이 경우 사용자는 제출 키가 POST에 있는지 확인합니다. 배열, 오히려 실제로 그 내용을 확인하고 싶어? –

+0

@JK : [기타] (http://www.php.net/manual/en/function.empty.php#refsect1-function.empty-returnvalues) 방법 [주변] (http : // php .net/manual/ko/function.isset.php # refsect1-function.isset-returnvalues) !? : D – Shef

2

가비에 이어, 다음을 게시 할 말을하십시오 (...... 감사를 제출 한 이름으로 버튼을 제출 SHEF인가요 세트 한 당신의 HTML에 확인 ;))

1

확인 이름 값 쌍은 "제출"키와 함께 존재하는 경우

<input type="submit" name="submit" value="submitOrSomething"> 

귀하는 isset 검사처럼 형태의 라인이있는 경우. 따라서 제출 버튼이 있지만 submit과 다른 이름을 가진 경우 isset과 함께 사용해야합니다.

+1

내 게시글에 무엇이 있었는지 확인해 주신 Swordfish에게 감사드립니다. +1 –

2

그는 항상 $error 변수를 true로 설정하지 않으므로 항상 삽입됩니다.

$error = false; 
if(validname($a) ==false) { 
    echo $nameerror = "enter the valid name"; 
} 
if(validemail($d) ==false) { 
    echo $nameerror = "enter the valid email"; 
} 

이것은

$error = false; 
if(validname($a) ==false) { 
    echo $nameerror = "enter the valid name"; 
    $error = true; 
} 
if(validemail($d) ==false) { 
    echo $nameerror = "enter the valid email"; 
    $error = true; 
} 
관련 문제