그래서 나는 PHP 용 폼의 유효성을 검사하려고합니다.내 foreach 루프와 관련된 문제
이if (empty($_POST) === false) {
$errors = array();
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
if(empty($name) === true || empty($email) === true || empty($message) === true) {
$errors[] = 'Please fill out all the required forms!';
} else {
if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
$errors[] = 'Sorry please enter a valid email address';
}
if (ctype_alpha($name) === false) {
$errors[] = 'Sorry, name must contain only letters!';
}
}
print_r ($errors);
지금 내가 인쇄하려고 :
내 연락처 양식
<form method="post" action="contact.php">
<table class="contact">
<tr>
<th>
<label for="name">Name</label>
</th>
<td>
<input type="text" name="name" id="name">
</td>
</tr>
<tr>
<th>
<label for="email">Email</label>
</th>
<td>
<input type="text" name="email" id="email">
</td>
</tr>
<tr>
<th>
<label for="message">Message</label>
</th>
<td>
<textarea name="message" id="message"></textarea>
</td>
</tr>
</table>
<input type="submit" value="Send">
지금 내가 여기에 PHP는 유효성 검사를 추가 할 당신의 전형적인 형태이다 그래서 나는 다음을 생성 이 출력과 배열은 데이터가 입력란에 입력 된 것으로 보이며 모든 유효성 검사가 올바르게 작동합니다. 내가 가진 문제는 목록에서 배열을 에코하기 위해 PHP를 추가하는 다음 단계입니다.
<?php
if (empty($errors) === false) {
echo '<ul>';
foreach($errors as $error) {
echo '<li>' , $error ,'</li>';
}
echo '</ul>';
}
?>
하지만 지금 문제는 이것이다 :
내가 폼 위에 추가 코드는 검증의 실패에 대해 표시 한 오류를 나열하는 가정 된 foreach 루프이었다 매번 지금 내가 작성 foreach가 보이지 않으면 오류가 양식에서 원래 배열을 생성하는 목록을 생성하지 않습니다.
어떤 제안이나 도움이 좋을 것입니다!
들 덕분에,이와
과 같은 결과를 제공 훨씬 적은 문자입니다. 음 ... 아마 10 년 전 일 겁니다. :) – keyboardSmasher
'=== false'를 popnoodles에있는 것으로 바꾸거나! empty를 대신 사용해야합니다. – Celeritas
테이블의 양식에 관한 한 가지는 다른 방법보다 입력을 정렬하는 마크 업이 적고 필드가 표 형식으로 작동하지 않게하려면? 레이아웃을 위해 테이블을 사용하지 않는 것은 절대적으로 옳지 만 입력 후 입력이있는 양식에서는 제대로 작업하지 않아도됩니다. 얼굴을 아는 것처럼 코를 자르는 것과 같습니다. – Popnoodles