저는 PHP를 처음 사용하고 이메일 주소의 유효성을 올바르게 검사하고 데이터가 텍스트 상자에 입력되었는지 확인하려고했습니다. 나는 정말로 필요한 것을 발견 할 수 없으며 php.net의 예제를 따라 가면서 나를 원형으로 보낸다. 어떤 도움이라도 대단히 감사하겠습니다! 또한이 양식으로 올바른 방향으로 향하고 있습니까? 양식이 작동하면 드롭 다운 상자에서 이메일 주소 중 하나를 선택하는 방식으로 이메일이 전송됩니다.PHP 문의 양식 - 확인 및
-UPDATE- 필자의 스크립트 중 일부를 다시 작성했습니다 ... 누군가가 체크 아웃 할 수 있습니까? 지금 더 많은 문제가 있습니다. 양식에 아무 것도 입력되지 않은 경우에도 이메일을 보내며, 그렇게해도 입력 한 내용은 모두 발송합니다. "전자 메일"테스트 예를 통해 예제를 사용할 수 있습니다.
<?php
//Sainitize function
function sanitizeString($value){
$value = strip_tags($value);
$value = trim($value);
$value = escapeshellcmd($value);
$value = htmlentities($value);
return $value;
}
$send = $_POST[send];
//Email validation - does not work by the way
if (filter_var($from, FILTER_VALIDATE_EMAIL)) {
$email_error = true;
$error_message[] = "Please use a valid email format: [email protected]";
}
if($send == 1){$email_sent = true; $step_1 = "complete";}
else{$email_sent = false; $step_1 = "complete";}
if($email_sent === true) {
$from = sanitizeString($_POST['from']);
$to = sanitizeString($_POST['to']);
$name = sanitizeString($_POST['name']);
$title = sanitizeString($_POST['title']);
$company = sanitizeString($_POST['company']);
$phone = sanitizeString($_POST['phone']);
$subject = sanitizeString($_POST['subject']);
$message = sanitizeString($_POST['message']);
// define variables and initialize with empty values
$nameErr = $addressErr = $emailErr = $messageErr = $phoneErr = "";
$name = $address = $email = $message = $phone = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Please enter your name.";
}
else {
$name = $_POST["name"];
}
if (empty($_POST["email"])) {
$emailErr = "Please enter your email.";
}
else {
$email = $_POST["email"];
}
if (empty($_POST["phone"])) {
$phoneErr = "Please enter a phone number.";
}
else {
$phone = $_POST["phone"];
}
if (empty($_POST["message"])) {
$messageErr = "Cannot leave message box blank.";
}
else {
$message = $_POST["message"];
}
}
//select the correct to address
switch ($to) {
case "1":
$to = "[email protected]";
break;
case "2":
$to = "[email protected]";
break;
default:
$to = "[email protected]";
break;}
if($message_error !== true && $email_error !== true){
$email_headers = "From:".$from."\nMIME-Version: 1.0 \nContent-type: text/html; charset=iso-8859-1";
$message_send = "<h3>".$name."<br>".$title."<br>".$company."<br>".$phone."<br>".$from."</h3><hr><h4>".$subject."</h4>".$message;
if (mail($to, $subject, $message_send, $email_headers)) {$error_message = "Thank you, your email is on the way!";}
else {$error_message = "There seems to be a problem!";}}
}
?>
<body>
<form action="<?php ($_SERVER["PHP_SELF"]);?>" method="post">
<table style="border-collapse:collapse; border-spacing:0" >
<tr>
<td>Name:</td>
<td><input name="name" placeholder="Name*" type="text" class="text"/>
<span class="error"><?php echo $nameErr;?></span></td>
</tr>
<tr>
<td>Title:</td>
<td><input type="text" placeholder="Title" name="title" size="50"/></td>
</tr>
<tr>
<td>Company:</td>
<td><input type="text" placeholder="Company" name="company" size="50" /></td>
</tr>
<tr>
<td>Phone:</td>
<td>
<input name="phone" placeholder="Phone*" type="tel" size="10" maxlength="10" value="<?php echo htmlspecialchars($phone);?>"/>
<span class="style1">Example: 1234567890</span> <span class="error" style="color:#990000"><?php echo $phoneErr;?></span></td>
</tr>
<tr>
<td>Email:</td>
<td><input name="from" placeholder="Email*" type="email" class="text" value="<?php echo htmlspecialchars($email);?>">
<span class="error"><?php echo $emailErr;?></span></td>
</tr>
<tr>
<td>To:</td>
<td><select name="to" size="1">
<option value="1">Contact 1</option>
<option value="2">Contact 2</option>
</select></td>
</tr>
<tr>
<td>Subject:</td>
<td><input type="text" name="subject" placeholder="Subject" size="50" /></td>
</tr>
<tr>
<td valign="top">Detail:</td>
<td colspan="2"><textarea cols="50" rows="4" name="message" placeholder="Type your message here."></textarea></td>
</tr>
<tr>
<td colspan="2" style="text-align:center;"><input type="hidden" name="send" value="1" /><input type="submit" value="Send" name="email_1" /></td>
</tr>
</table >
</form>
중복 가능성 (http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address) – Beat
전자 메일 주소의 유효성을 검사하여 [email protected] 형식으로 표시하는 방법을 알려줍니다. 그렇지만 다른 필드와의 유효성 검사가 필요합니까? – TAG
확인 I는, 사용 입력 필드를 확인하는 방법을 발견 ($ _SERVER [ "REQUEST_METHOD"] == "POST") { 경우 (빈 ($ _ POST [ "이름"])) { $ nameErr 경우 = "이름을 입력하십시오."; } else { $ name = $ _POST [ "name"]; } 다음은 이름 입력 필드입니다. php echo $ nameErr;?> 위의 스크립트를 보내시겠습니까? – TAG