2011-05-12 4 views
1

나는 보낸 사람이 표시되도록 내 PHP 메일 양식의 헤더를 변경합니다. 연락처 이름 옵션이 있습니다. 이러한 옵션을 두 개의 값으로 지정하여 한 위치에서 값을 쿼리하고 다른 위치에서 값을 쿼리 할 수 ​​있습니다. 값을 쿼리 할 수 ​​있으려면 값을 다른 선택 이름에 할당해야한다고 생각합니다. 그러나이를 수행하는 방법에 대한 실마리가 없습니다. 예 :하나 이상의 _post 값을 가진 선택 옵션을 제공합니다.

PHP 양식

Contact: 
<select name="contactname"> 
<option></option> 
<option value1="John Smith" value2="[email protected]">John Smith</option> 
</select> 

PHP 포스트

$contactname = $_POST [contactname]; 

$header = "From: " . $value 1 here . " <" . $value 2 here . ">\r\n"; 

$message = " 

Contact: $value 1 here 
"; 


mail("email.email.com", $subject, $message, $header,); 

사람은 어떻게 얻으려고 무엇을 코딩하는 어떤 아이디어가?

+0

배열을 쉼표로 구분 한 다음 고유 변수로 분해 할 수는 없습니까? – ngen

답변

2

HTML

<select name="contactname"> 
<option value="John Smith|[email protected]">John Smith</option> 
</select> 

PHP이이 스푸핑 할 수 있기 때문에 적절한 방법이 있지 않은 것으로 있다고

$pieces = explode('|', $_POST['contactname']); 

$from = $pieces[0]; // John Smith 
$to = $pieces[1]; // [email protected] 

참고.

1

연락처 :

<select name="contactname"> 
    <option></option> 
    <option value="John Smith,[email protected]">John Smith</option> 
</select> 

PHP

$contactname = $_POST['contactname']; 

$contact_arr = explode(",", $contactname); 

$header = "From: ".$contact_arr[0]." <".$contact_arr[1].">"; 

$message = " 

Contact: ".$contact_arr[0]." 

"; 

mail("[email protected]", $subject, $message, $header); 

폭발과 구분이 그것을 할 것입니다. 실제로 $ _POST에 대한 유효성 검사를 실행하여 처음부터 확실하게 확인해야합니다.

+0

감사합니다! 나는 DB에서 그것을 실행하지 않을거야 그래서이 sultion 내가 찾고 있었어! –

+0

좋아, 코드를 작성하려고했는데 게시 페이지에서이 문제가 발생했습니다. 예기치 않은 구문 분석 오류 T_CONSTANT_ENCAPSED_STRING –

+0

어떻게 페이지 코드를 표시 할 수 있습니까? 새로운 질문을 시작해야합니까? –

2

옵션 목록이 데이터베이스에서 나오는 경우 대신 테이블의 기본 키 값을 입력하면 양식 제출시 적절한 값을 찾을 수 있습니다. 악의적 인 사용자가 "[email protected]"라고 말하고 메시지에 몇 가지 위협을 가할 스크립트를 해킹 할 수 없다고 말하면서 이메일 주소를 검증해야하는 번거 로움을 덜어줍니다. 그들은 메시지를 보냈지 만, 당신은 Secret Service가 당신의 문을 두드리게 할 사람입니다.

+1

이것은 제안 된 것보다 훨씬 나은 해결책이며 "올바른 방법"입니다. OP가이 조언을 받아 구현할 수있을 것이라고 확신하지는 못하지만 이것이 내 프로젝트라면 분명히 할 수있는 일입니다! +1 –

+0

아니요! 밖으로 찾아 주셔서 감사합니다. IE에서 "보기 소스"를 빠르게 잠그는 방법을 알고 있습니까? –

+0

수 없습니다. 대부분 숨겨진 메뉴가있는 창을 팝업 할 수 있고 마우스 오른쪽 버튼 클릭 컨텍스트 메뉴를 비활성화하려고 시도하지만 그 것은 밴드입니다. 누군가가 html을보고 싶다면, 그들은 그렇게 할 것입니다. –

관련 문제