이메일로 웹페이지를 보내는 방법은 무엇입니까? HTML과 PHP를 사용하여 이메일로 데이터를 보내는 가장 간단한 형태의 이메일로 북마크를 보내는 방법
사이트에서 가장 인기 있는 기능 중 하나는 신청서 또는 주문 양식으로, 이 양식에서 나온 데이터는 이메일을 통해 사이트 소유자에게 전송됩니다. 일반적으로 이러한 양식은 간단하며 데이터 입력을 위한 2~3개의 필드로 구성됩니다. 그러한 주문 양식을 작성하는 방법은 무엇입니까? 이는 언어의 사용이 필요하다 HTML 마크업그리고 PHP 프로그래밍 언어.
HTML 마크업 언어 자체는 간단합니다. 특정 태그를 삽입하는 방법과 위치만 알아내면 됩니다. PHP 프로그래밍 언어를 사용하면 상황이 좀 더 복잡해집니다.
프로그래머에게는 이러한 양식을 만드는 것이 어렵지 않지만 HTML 레이아웃 디자이너에게는 일부 작업이 어려워 보일 수 있습니다.
HTML로 데이터 제출 양식 만들기
첫 번째 줄은 다음과 같습니다
이제 모든 것을 하나로 묶어 보겠습니다.
이제 양식의 필드를 필수로 만들어 보겠습니다. 다음 코드가 있습니다.
HTML 양식의 데이터를 받아들이는 파일 만들기
이것은 send.php라는 파일이 될 것입니다.
파일의 첫 번째 단계에서는 포스트 배열의 데이터를 받아들여야 합니다. 이를 위해 두 가지 변수를 만듭니다.
$fio = $_POST["fio"];
$email = $_POST["이메일"];
PHP의 변수 이름 앞에는 $ 기호가 붙고 각 줄 끝에는 세미콜론이 표시됩니다. $_POST는 양식의 데이터가 전송되는 배열입니다. html 형식에서는 전송 방법을 method="post"로 지정합니다. 따라서 두 개의 변수가 다음에서 가져옵니다. HTML 양식. 귀하의 사이트를 보호하려면 이러한 변수를 여러 필터(php 함수)를 통해 전달해야 합니다.
첫 번째 함수는 사용자가 양식에 추가하려고 하는 모든 문자를 변환합니다.
이 경우 PHP에서는 새로운 변수가 생성되지 않고 기존 변수가 사용됩니다. 필터가 수행할 작업은 문자 "<" в "<". Также он поступить с другими символами, встречающимися в html коде.
두 번째 함수는 사용자가 URL을 양식에 추가하려고 하면 URL을 디코딩합니다.
$fio = urldecode($fio);
$email = urldecode($email);
세 번째 함수를 사용하면 줄의 시작과 끝에서 공백이 있는 경우 제거합니다.
$fio = 트림($fio);
$email = 트림($email);
PHP 변수를 필터링할 수 있는 다른 기능이 있습니다. 이들의 사용은 공격자가 이 HTML 이메일 제출 양식에 프로그램 코드를 추가하려고 시도할 것이라는 우려에 따라 달라집니다.
HTML 양식에서 PHP 파일로 전송된 데이터의 유효성 검사
이 코드가 작동하는지, 데이터가 전송되고 있는지 확인하려면 echo 함수를 사용하여 간단히 화면에 표시하면 됩니다.
에코 $fio;
에코 "
";
$email을 에코;
여기서 두 번째 줄은 PHP 변수의 출력을 다른 줄로 분리하는 데 필요합니다.
PHP를 사용하여 HTML 양식에서 받은 데이터를 이메일로 보내기
이메일로 데이터를 보내려면 PHP의 메일 기능을 사용해야 합니다.
mail("보낼 주소", "편지 제목", "메시지(편지 본문)","보낸 사람: 편지를 보낸 이메일 \r\n");
예를 들어 사이트 소유자나 관리자의 이메일로 데이터를 보내야 합니다. [이메일 보호됨].
편지의 제목은 명확해야 하며, 편지의 메시지에는 사용자가 HTML 형식으로 지정한 내용이 포함되어야 합니다.
우편(" [이메일 보호됨]", "사이트의 응용 프로그램", "전체 이름:".$fio.". 이메일: ".$email ,"발신자: [이메일 보호됨]\r\n");
양식이 PHP를 사용하여 지정된 이메일 주소로 전송되었는지 확인하는 조건을 추가해야 합니다.
if (메일(" [이메일 보호됨]", "사이트에서 주문", "이름:".$fio.". 이메일: ".$email ,"발신자: [이메일 보호됨]\r\n"))
{
echo "메시지가 성공적으로 전송되었습니다.";
) 또 다른 (
}
따라서 HTML 양식 데이터를 이메일로 보내는 send.php 파일의 프로그램 코드는 다음과 같습니다.
$fio = $_POST["fio"];
$email = $_POST["이메일"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = 트림($fio);
$email = 트림($email);
//에코 $fio;
//에코 "
";
//에코 $email;
if (메일(" [이메일 보호됨]", "사이트의 응용 프로그램", "전체 이름:".$fio.". 이메일: ".$email ,"발신자: [이메일 보호됨]\r\n"))
( echo "메시지가 성공적으로 전송되었습니다.";
) 또 다른 (
echo "메시지 전송 중 오류가 발생했습니다.";
}?>
데이터가 파일로 전송되고 있는지 확인하는 세 줄이 주석 처리되어 있습니다. 디버깅에만 필요하므로 필요한 경우 제거할 수 있습니다.
양식을 제출하기 위한 HTML 및 PHP 코드를 하나의 파일에 배치합니다.
이 기사에 대한 댓글에서 많은 사람들이 이메일로 데이터를 보내기 위한 HTML 형식과 PHP 코드가 둘이 아닌 하나의 파일에 있는지 확인하는 방법에 대해 질문합니다.
이 작업을 구현하려면 양식의 HTML 코드를 send.php 파일에 배치하고 POST 배열(이 배열은 양식에서 전송됨)에 변수가 있는지 확인하는 조건을 추가해야 합니다. 즉, 배열의 변수가 존재하지 않으면 사용자에게 양식을 보여주어야 합니다. 그렇지 않으면 배열에서 데이터를 수신하여 수신자에게 보내야 합니다.
send.php 파일에서 PHP 코드를 변경하는 방법을 살펴보겠습니다.
//POST 배열에 변수가 있는지 확인
if(!isset($_POST["fio"]) 및 !isset($_POST["email"]))(
?> ) 또 다른 (
//폼 보여주기
$fio = $_POST["fio"];
$email = $_POST["이메일"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = 트림($fio);
$email = 트림($email);
if (메일(" [이메일 보호됨]", "사이트의 응용 프로그램", "전체 이름:".$fio.". 이메일: ".$email ,"발신자: [이메일 보호됨]\r\n"))(
echo "메시지가 성공적으로 전송되었습니다.";
) 또 다른 (
echo "메시지 전송 중 오류가 발생했습니다.";
}
}
?>
isset() PHP 함수를 사용하여 POST 배열에 변수가 있는지 확인합니다. 조건에서 이 함수 앞에 느낌표가 있으면 부정을 의미합니다. 즉, 변수가 존재하지 않으면 양식을 표시해야 합니다. 느낌표를 넣지 않았다면 조건은 문자 그대로 "존재하는 경우 형식을 표시합니다"를 의미합니다. 그리고 이것은 우리의 경우에는 잘못된 것입니다. 당연히 index.php로 이름을 바꿀 수 있습니다. 파일 이름을 바꾸는 경우 해당 줄에서 파일 이름을 바꾸는 것을 잊지 마십시오.