Я пытаюсь создать форму, которая подтверждает, что пользователь ввел один из разрешенных адресов электронной почты, а затем перенаправляет пользователя на страницу «NewPost.php»; в противном случае (если пользователь не ввел один из разрешенных адресов электронной почты), он застревает на этой странице. В настоящее время я могу перевести заявку на следующую страницу, если я изменю
<form action="Verify.php">
в
<form action="NewPost.php">
но это игнорирует условное. Форма выглядит следующим образом:
<form action="Verify.php" method="post" name="VerifyEmail" id="VerifyEmail">
<p>Please enter your student email address</p>
<p> <input type="text" name="Email" size="40" maxlength="40" required/></p>
<p><input type="submit" name="Post" value="Post"/></p>
</form>
И PHP; $ разрешено Переменная — это массив школ, чьи адреса электронной почты .edu должны соответствовать условию, чтобы пользователь мог вводить свой адрес электронной почты, перенаправленный на NewPost.php.
<?php
$Email = trim($_POST['Email']);
$allowed = array ('columbia.edu', 'nyu.edu', 'fitnyc.edu', 'pratt.edu', 'newschool.edu', 'stjohns.edu', 'cooper.edu', 'manhattan.edu', 'pace.edu', 'bard.edu', 'berkeleycollege.edu', 'qc.cuny.edu');
$split = explode($Email, "@");
$name = $split['0'];
$school = $split['1'];
if ($school == $allowed) {
header('Location: /NewPost.php');
}
else{echo "<p>Sorry your school is not supported yet</p>";}
?>
Чтобы уточнить, я хочу, чтобы посещение с указанием адреса электронной почты было перенаправлено на NewPost.php, только если его адрес электронной почты находится в пределах $ разрешено массив, иначе они застряли на текущей странице (Verify.php).
Если кто-то хочет попробовать это сами, адрес Вот
Спасибо!
Вы сравниваете строку с массивом. Вы не можете сделать это. Вы должны посмотреть, если эта строка в массив. Используйте либо in_array()
или же isset()
:
if (in_array($school, $allowed)) {
или же
if (isset($allowed[$school])) {
Других решений пока нет …