繁体   English   中英

重定向到PHP中的其他URL时出错

[英]Error with redirecting to other URL in Php

我是Java程序员,是Php的新手。 我正在尝试在Php中设计一个登录表单,我正在其中检查数据库中的用户ID和密码。如果读取的数据正确,我想将用户重定向到welcome.php页面。以下是我的代码:

<?php
ob_start();
include("config.php");
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST")
{
$myusername=addslashes($_POST['username']); 
$mypassword=addslashes($_POST['password']);
$sql="SELECT rid FROM register WHERE rname='$myusername' and rpass='$mypassword'";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
@$active=$row['active'];
$count=mysql_num_rows($result);
if($count==1)
{
session_register("myusername");
$_SESSION['login_user']=$myusername;
error_reporting(E_ALL | E_WARNING | E_NOTICE);
ini_set('display_errors', TRUE);
flush();
header('Location: http://localhost/login/welcome.php');
die('should have redirected by now');
}
else 
{
$error="Your Login Name or Password is invalid";
}
}
?>

但是,使用正确的ID和密码提交表单后,出现如下错误:

在此处输入图片说明

我尝试了许多解决方案,例如删除空白,使用ob_start()等,但是徒劳。

您应该使用以下方法在会话中注册变量:

$_SESSION['myusername'] = $myusername;

不要使用session_register("myusername"); 因为它不再受支持

您是否真的需要flush() 也许尝试用死拥抱头

die(header('Location: ...'));

我使用简单的解决方案。

在您的情况下,您发送了一些无法修改的标头。

简单的解决方案是发送一些脚本代码。

echo "<script language=\"javascript\">
window.location.assign('http://localhost/login/welcome.php')</script>";

祝你今天愉快。

弗朗索瓦

您可能要检查login.php和config.php之间的字符集是否有任何区别。 我遇到的情况是,执行包含时字符集的差异导致输出奇怪。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM