2013-11-02 3 views
0

PHP 프로그래머가 아닙니다. 주문한 품목의 수량에 많은 텍스트 필드가있는 매우 큰 양식을 사용하고 있습니다. 나는 수백을 의미한다. 하나 또는 두 개의 항목을 채우면 (대부분 대개 5 개 정도입니다) 양식은 모든 결과를 반환하며 응답으로 선택한 사람들은 공백이지만 빈번한 이메일 결과는 단지 몇 개에 불과합니다. 채워지지 않은 필드가 전송되는 것을 막기위한 코드 나 스크립트 또는 무언가가 있습니까? 그것은 PHP 스크립트를 사용하여 이메일을 통해 보냅니다.보내지는 HTML 양식의 채워지지 않은 필드를 방지하십시오.

감사합니다, 밥 Z.

+0

당신은'의 영향에 뭔가를 사용해야하는 경우 (빈 ($ _ POST [ 'VARIABLE_NAME는'])) {죽을 ("당신은이 필드를 입력해야합니다."); }' –

답변

1

은 (당신이 이메일 메시지에 추가)를 $ _POST 값을 구문 분석하기 전에이 작업을 실행합니다. 그런 다음 foreach 또는 print_r 또는 클래스이든 전자 메일 본문에 POST 변수를 가져 오는 데 사용하는 방법이든간에 공백은 존재하지 않습니다.

$_POST=array_filter($_POST); 

공백을 포함하는 값이 == false 인 모든 키가 제거됩니다. 당신이 그 보존하려는 경우 0 == 거짓도하므로,이 대신

function myFilter($var){ 
    return ($var !== NULL && $var !== FALSE && $var !== ''); 
} 

$_POST=array_filter($_POST, "myFilter"); 
0

내가 양식이 처리 스크립트에 정보를 전송하는 METHOD="POST"을 사용하고 생각해야하지만합니다. 당신이 원하는 것은 모든 양식 필드가 함께있는 장소를 찾는 것입니다. 이 장소에서 필드 값이 비어 있거나없는 경우 수표를 추가해야합니다. 당신이 견적을 처리하고 이메일을 보내는 PHP 코드를 게시 할 경우

// init email 
$email = ''; 

// process fields 
foreach ($_POST as $fieldName => $fieldValue) 
{ 
    if ($value != '') 
    { 
     $email .= $fieldName . ': ' . $fieldValue . PHP_EOL; 
    } 
} 

// send email 
... 

, 당신에게 당신의 문제를 해결하는 정확한 코드를 더 쉽게 알 수있을 것이다 :

은 다음과 같이 할 수있다.

인사말, 리처드

+0

이 스크립트가 서버에 있고 나를 사용할 수없는 경우이 스크립트를 추가 할 수 없습니다. 또는 내 양식 페이지의 일부 장소입니까? – user2948063

+0

(DUH!) 밖으로 튀어 나와서 PHP 스크립트는 서버 측이 아니며 여기에있는 폴더에서 잊어 버렸습니다. 웬일인지 GoDaddy에서 gdform.php를 붙여 넣지 못하게합니다. 들여 쓰기와 다른 모든 작업을 수행하려고 노력했습니다. 이름을 바꾸고 위의 줄을 추가하고 위의 필터링 방법을 시도해 보겠습니다. 작동하는 경우 큰 소리로 들립니다. "YAHOO !!!!!!!!!!!" – user2948063

+0

OK 그 필터를 사용해 보았습니다. 그것이 한 일은 무작위로 채워진 들판이 통과하는 것을 막는 것입니다. 예를 들어, 한 섹션의 모든 상자에 수량을 입력하여 테스트를 시작합니다. 그들 중 절반은 숫자와 함께 돌아 왔고, 나머지 절반은 아무것도 반환하지 않았거나 간단히 보내지 않았습니다. 코드를 확인했는데 모두 괜찮습니다. 다시 보낸 필터를 제거하고 모든 필드를 보냈습니다. 다시 말해서, 수량으로 채워진 필드 만 보내고 아무 필드도 비워 두지 않는 것이 필요합니다. 여기에 스크립트를 붙여 넣을 수는 있지만 너무 커서 들여 쓰기가 작동하지 않습니다. – user2948063

관련 문제