我正在使用if条件,并且有一些脚本然后是标题。 但剧本不会工作,直接标题工作。
if(strpos(mysql_error(),'Email')!=false)
{
print '<script type="text/javascript">';
print 'alert("The email address is already registered")';
print '</script>';
header('Location: register.php');
}
答案 0 :(得分:3)
用典型的JS替换标题。这就是诀窍。
if(strpos(mysql_error(),'Email')!==false)
{
echo ("<SCRIPT LANGUAGE='JavaScript'>
window.alert('The email address is already registered')
window.location.href='register.php';
</SCRIPT>");
}
答案 1 :(得分:2)
您的代码中存在一些不同的错误。
首先,header
来电应该是首先 输出。你不这样做。您之前没有缓冲print
。从(非常好的)PHP文档:
请记住,在发送任何实际输出之前,必须通过普通HTML标记,文件中的空行或PHP来调用header()。使用include或require,函数或其他文件访问函数读取代码是一个非常常见的错误,并且在调用header()之前输出空格或空行。使用单个PHP / HTML文件时存在同样的问题。
其次,即使您使用了缓冲输出,Javascript也永远不会执行,因为当有Location
标题时,不会评估正文。
第三,使用mysql_error
来确定某条记录是否存在是不可取的。更好的是(伪代码):
SELECT email FROM table WHERE email="someEmail"
if (rows found) {
alert "email already exists"
}
祝学习网络发展好运!
答案 2 :(得分:1)
使用:
window.location = "example.html";
首先查看@Bart Friederichs的答案,即使标题工作正常,JavaScript警报也无法正常工作因为页面一旦完成就会重定向,浏览器也不会为你执行JavaScript。
<?php
print '<script type="text/javascript">';
print 'alert("The email address is already registered");';
print 'window.location = "register";';
print '</script>';
?>
您也可以在没有PHP的情况下输出它!例如:
if(strpos(mysql_error(),'Email')!==false)
{
?>
<script type="text/javascript">
alert("The email address is already registered");
window.location = "register.php";
</script>
<?php
}
?>