2014-10-30 2 views
0

Я пытаюсь создать форму, которая подтверждает, что пользователь ввел один из разрешенных адресов электронной почты, а затем перенаправляет пользователя на страницу «NewPost.php»; в противном случае (если пользователь не ввел один из разрешенных адресов электронной почты), они застряли на этой странице. В настоящее время я могу получить блюдо передается на следующую страницу, если я изменюСоздание условной переадресации 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). Если кто-то хочет попробовать сами, адрес here

Спасибо!

ответ

1

Вы сравниваете строку с массивом. Вы не можете этого сделать. Вам нужно посмотреть, есть ли эта строка вмассив. Используйте либо in_array() или isset():

if (in_array($school, $allowed)) { 

или

if (isset($allowed[$school])) { 
+0

Пробовал как Исеть и in_array, ни работал. – Will

+0

Убедитесь, что значения этих переменных являются ожидаемыми. Лидирующие или завершающие символы пробела будут отбрасывать вещи. Также избавитесь от котировок вокруг ключей массива: $ name = $ split [0]; $ school = $ split [1]; –

+0

TRIM должен позаботиться о белом пространстве? К сожалению, он все еще не работает должным образом. – Will

Смежные вопросы