创建条件重定向PHP表单

时间:2014-10-30 17:46:55

标签: php forms redirect conditional

我正在尝试创建一个表单,确认用户已输入其中一个允许的电子邮件地址,然后将用户重定向到“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; $ allowed 变量是学校的数组,其.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>";}
?>

为了澄清,我希望只有当他们的电子邮件地址在 $ allowed 数组中时,访问他们的电子邮件地址才会被重定向到NewPost.php,否则他们会被卡在当前页面上( Verify.php)。 如果有人想自己尝试,地址为here

谢谢!

1 个答案:

答案 0 :(得分:1)

您正在将字符串与数组进行比较。你不能这样做。您需要查看该字符串是否 。使用in_array()isset()

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

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