我有以下代码:
if($_POST['profileName']!="") {
$profileName = $_POST['profileName'];
if (!($stmt = $con->prepare("UPDATE `user_settings` SET ProfileName=?,ProfileSetup=? WHERE Username=?")) || !is_object($stmt)) {
die( "Error preparing: (" .$con->errno . ") " . $con->error);
}
$stmt->bind_param('sis', $profileName, 1, $_SESSION['user']);
if($stmt->execute()) {
echo '<div class="alert_successful alert_absolute_center">';
echo 'Profile Name change Successful!';
echo '</div>';
} else {
echo '<div class="alert_unsuccessful alert_absolute_center">';
echo 'Something went wrong... Try again!';
echo '</div>';
}
}
我希望能够根据if语句的结果重定向到不同的地方...我已经尝试设置变量然后使用元重定向,但当然这不起作用,因为它正在寻找实际设置之前的变量......
非常感谢任何帮助。
答案 0 :(得分:2)
如果您使用的是Output buffering,则可以设置header
重定向:
if($stmt->execute())
header('Location: your_page_success.php');
else
header('Location: your_page_fail.php');
如果您已经开始输出数据(例如,使用header
),则echo
调用无效。
答案 1 :(得分:0)
重定向是easy。这是你的方法,需要一些工作。
基本上,这就是你想要做的事情:
首先,我建议重定向用户,即使它是在同一页面上。这样可以防止“您想再次提交此表单吗?”如果用户在提交表单后刷新页面,则会输入提醒。
redirect的最佳方法是使用PHP的header
函数。只需确保在执行此命令之前没有任何内容打印到页面。另外,请始终使用exit();
。
那么用户的反馈信息呢?有很多方法可以解决这个问题;这是一对夫妇:
http://redirecttohere.com/?msg=badpwd
现在,您可以使用此参数并检索并显示相应的消息。