我试着写这个脚本,说如果电子邮件被禁用插入数据库并重定向,否则重定向错误消息只有我的重定向不起作用,我不是非常伟大的PHP和仍然阅读主题所以id欣赏任何建议,提前谢谢!
<?php
$userid = $usersClass->userID();
$user_email=$_POST['email_upd'];
if(!filter_var($user_email, FILTER_VALIDATE_EMAIL))
{
header('Location: http://www.mysite.co.uk/mytwitter.php?msg=invalid');
}
else
{
mysql_query(" UPDATE produgg_users SET email='$user_email' where produgg_users.id = ".$usersClass->userID()) or die(mysql_error());
header('Location: http://www.mysite.co.uk/mytwitter.php?msg=success');
}
?>
很抱歉没有说明出现了什么问题,发生的事情是我的网页没有重定向到标题中的页面(位置)
我现在启用了错误报告,我仍然只看到一个白页,这是我的整个页面代码。
<?php
error_reporting(E_ALL);
require 'config.inc.php';
?>
<?php
$userid = $usersClass->userID();
$user_email=$_POST['email_upd'];
if(!filter_var($user_email, FILTER_VALIDATE_EMAIL))
{
header('Location: http://www..co.uk/mytwitter.php?msg=invalid');
}
else
{
mysql_query(" UPDATE produgg_users SET email='$user_email' where produgg_users.id = ".$usersClass->userID()) or die(mysql_error());
header('Location: http://www..co.uk/mytwitter.php?msg=success');
}
?>
答案 0 :(得分:0)
这应该可行,但是确保你在header方法之前没有任何代码,当我说代码我的意思是从任何其他文件中的php或HTML标签输出时,这需要先执行, 但是你还需要确保重定向后的代码没有执行,使用exit;
header(....
exit;
答案 1 :(得分:0)
您能发布完整的脚本吗? Senad说的是真的:如果你的脚本将任何写入输出缓冲区,那么任何header();将不再工作。根据你给出的代码,没有任何内容写入输出缓冲区(除非你得到一个mysql错误,你没有告诉我们,我认为不是这样)。
此外,无需使用,然后重新打开它。仅供参考。
答案 2 :(得分:0)
我设法使用以下代码使其工作,我根据我读到的关于SQL注入的内容重写了它并且它工作正常,我很感激任何建议,谢谢!
<?php
require 'config.inc.php';
$userid = $usersClass->userID();
$user_email=mysql_real_escape_string($_POST['email_upd']);
if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $user_email))
{
mysql_query(" UPDATE produgg_users SET email='$user_email' where produgg_users.id = ".$usersClass->userID()) or die(mysql_error());
echo "<meta http-equiv=\"refresh\" content=\"0;URL=/mytwitter.php?msg=email updated\">";
}
else
{
echo "<meta http-equiv=\"refresh\" content=\"0;URL=/mytwitter.php?msg=email error\">";
}
?>