是否可以这样做,即时尝试验证表单,如果为TRUE,它将使用header()重定向..但似乎没有工作?或者我的方法完全错了?
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$email = $_POST["clientEmail"];
if ($email != $sentEmailClients) {
echo 'Please enter a valid email';
} else {
$newURL = "http://www.myurl.com";
header('Location: ' . $newURL);
}
}
答案 0 :(得分:1)
向我们提供有关运行代码时实际发生情况的更多详细信息。您可能面临以下问题之一:
header()
。必须在任何其他输出之前发送标头。查看the docs。如果您使用die('redirecting')
更改该行并显示该文字,那么这就是您的问题。POST
。添加die($_SERVER['REQUEST_METHOD'])
。如果打印了除POST
以外的其他内容,那么这就是您的问题。$_POST['clientEmail']
未设置,或不等于$email
$email
不是您所期望的(它来自哪里?)$sentEmailClients
不是您所期望的(它来自哪里?)基本上,“为什么不起作用?”这不是一个好问题,因为它没有给我们很多信息来帮助你。更具体地说明正在发生的事情。
显示足够的代码,以便我们了解您使用的变量的来源。
答案 1 :(得分:0)
嗨好像你最外面的if condition
无效,这就是为什么你的header
function
无法正常工作我只是尝试了这个并且它很好。这意味着您的第一个if condition
为false
,或者如果条件变为true
则每次只需尝试echo
您的值,然后再检查它们。
<?php
if (1) {
$email = $_POST["clientEmail"];
if (0) {
echo 'Please enter a valid email';
} else {
$newURL = "http://www.google.com";
header('Location: ' . $newURL);
}
}
检查此print_r($_SERVER["REQUEST_METHOD"]);
是否为POST和
$email != $sentEmailClients true or false