2013-11-03 2 views
0

나는 그 기능을 가지고 있지만 작동하지 않습니다.무엇이 잘못 되었습니까? PHP 필드 검사 기능

function Checkfields($fields){ 
    $ret = false; 
    foreach($fields as $field) { 
     if ($_POST[$field] == "" || !isset($_POST[$field])) { 
      $ret = true; 
     } 
    } 
    if ($ret) { 
     $ret = "All fields are required."; 
     header('Location: ?erro='. $erro); 
    } 
} 

와 나는 그런 식으로 사용 UPDATED

Checkfields(array("username","password")); 

: 는 이미 변경하려고 :

function Checkfields($fields){ 
    $ret = false; 
    foreach($fields as $field) { 
     if ($_POST[$field] == "" || !isset($_POST[$field])) { 
      $ret = true; 
     } 
    } 
    if ($ret) { 
     $erro = "All fields are required."; 
     header('Location: ?erro='. $erro); 
    } 
} 

와 아무 반응이 없습니다. 존재하지 않는 요소가 오류

와 $ RET == 진정한

헤더가 표시되는 경우

+3

"작동하지 않음" –

+1

당신은'$ ret = "모든 필드가 필요합니다."; '$ erro = "모든 필드가 필요합니다.";'? – Sean

+0

그냥 아무것도 반환하지, 나는 POST를 비어 리디렉션하지. – Chinchila

답변

0
function Checkfields($fields){ 
     $ret = false; 
     foreach($fields as $field) { 
      if (!isset($_POST[$field])) { 
       $ret = true; 
      } 
     } 
     if ($ret) { 
      $error = "All fields are required."; 
      header('Location: ?erro='. $error); 
     } 
} 

$ret = "All fields are required."; 
     header('Location: ?erro='. $erro); 
을 넣어 .. 변수 POST의 코드 검증에이 버그가 존재

다른 페이지로 리디렉션하면 응답 오류가 발생하지 않습니다.

0

왜 코드가 아니오입니까? t의 리디렉션은 아마도 때문에 헤더 함수 호출이

header("Location:http://www.example.com/page.php?erro=$err") 

당신이 그것을 리디렉션하려는 페이지에 example.com/page.php을 대체처럼 호출 할 수 있습니다

이다. 위치는 기본적으로 302 리디렉션을 만들고 브라우저는 새 URL로 리디렉션됩니다. 따라서 절대 경로를 제공해야합니다.

관련 문제