그래서 이것은 Contact Form PHP 스크립트로 기본 유효성 검사입니다. 이 스크립트는 아무 문제 나 오류없이 절대적으로 잘 실행되었습니다. 최근까지 파일을 다른 웹 호스팅으로 전송했습니다. 새로운 웹 호스트 내가 그래서 무슨 일인지 모르겠다 PHP에 대해 잘 모르는 PHP 버전 5.4.45PHP 알림 : 정의되지 않은 색인 - 연락처 양식이 작동하지 않습니다.
을 가지고 있지만
이전 웹 호스트
는 PHP 버전 5.4.35 했다. 다음은 누군가 contact 양식을 제출할 때마다 error_log가 기록한 내용입니다.[17 월 2016 17시 5분 20초 기타/GMT] PHP 공지 : 정의되지 않은 인덱스 : 라인 (70)
[17 월에 /home/domain/public_html/contact.php의 이름 -2016 17:05:20 Etc/GMT] PHP 알림 : 정의되지 않은 색인 : /home/domain/public_html/contact.php 온라인 주소 76
[17-6 월 -2016 17:05:20] 기타/GMT ] PHP 알림 : 정의되지 않은 색인 : /home/domain/public_html/contact.php 온라인에있는 메시지
이 문제를 해결하기 위해 ror 변수 ($ name, $ email, $ message)를 null로 설정하면 오류는 더 이상 발생하지 않지만 문의 양식은 작동하지 않습니다.
도와주세요! 왜이 문제가 발생하는지 모르겠습니다.
<?php
if (isset($_POST["submit"])) {
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$human = intval($_POST['human']);
$to = '[email protected]';
$subject = 'Contact Form';
$header = "From:[email protected] \r\n";
$header = "Cc:[email protected] \r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html\r\n";
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
if (!$_POST['name']) {
$errName = 'Please enter your name';
}
if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$errEmail = 'Please enter a valid email address';
}
if (!$_POST['message']) {
$errMessage = 'Please enter your message';
}
if ($human !== 2) {
$errHuman = 'Your anti-spam is incorrect';
}
if (!$errName && !$errEmail && !$errMessage && !$errHuman) {
if (mail($to, $subject, $body, $header)) {
$result='Thank You! Your message will be replied soon!';
} else {
$result='Sorry there was an error sending your message.';
}
}
}
?>
<form class="col l12" method="post" action="contact.php">
<input id="name" name="name" type="text" class="validate" value="<?php echo htmlspecialchars($_POST['name']); ?>">
<?php echo "<p class='red-text'>$errName</p>";?>
<label for="name">Name</label>
<input id="email" name="email" type="email" class="validate" value="<?php echo htmlspecialchars($_POST['email']); ?>">
<?php echo "<p class='red-text'>$errEmail</p>";?>
<label for="email">Email</label>
<textarea name="message" class="materialize-textarea"><?php echo htmlspecialchars($_POST['message']);?></textarea>
<?php echo "<p class='red-text'>$errMessage</p>";?>
<label for="message">Message</label>
<label for="human"><strong>AntiSPAM Check:</strong> 5 - 3 = ?</label>
<input id="human" name="human" type="text" class="validate">
<?php echo "<p class='red-text'>$errHuman</p>";?>
<p class="left-align"><button class="blue darken-1 btn-large waves-effect waves-light" id="submit" type="submit" style="font-weight:500;" name="submit">Send</button>
<?php echo $result; ?>
</form>
@ Rizier123이 오류 태그는 다른 스레드에서 언급 한 변경 사항을 구현했지만 중복 된 것처럼 보일 수 있지만 문제를 해결하지는 못합니다. 동일한 "php notice"태그 아래에 표시되어 있지만이 문제는 고유합니다. – Swayam