在php中,登录数据库后试图将用户重定向到链接
在php中,我试图在从数据库查询时将用户重定向到链接。登录后,结果只显示url,而不是重定向到url在php中,登录数据库后试图将用户重定向到链接,php,mysql,Php,Mysql,在php中,我试图在从数据库查询时将用户重定向到链接。登录后,结果只显示url,而不是重定向到url <?php if(isset($_POST['submitMain'])) { $username= $_POST['username']; $password = $_POST['password']; $_POST['username'] = $_SESSION['username']; $_POST['password'] = $_SESSI
<?php
if(isset($_POST['submitMain']))
{
$username= $_POST['username'];
$password = $_POST['password'];
$_POST['username'] = $_SESSION['username'];
$_POST['password'] = $_SESSION['password'];
$sql = "SELECT * FROM user WHERE username='$username' and password='$password'";
$result = mysql_query($sql);
// Mysql_num_row is counting table row
$count = mysql_num_rows($result);
if($count == 1){
$result = mysql_fetch_contents($result); // get the result set from the query
$url = trim($result['url']); // get the url column's value
if ($url == '') {
echo "No url value was set!";
} else {
$ob_get_contents = 'admin.php';
echo "$ob_get_contents ";
exit;
}
} else {
echo "Wrong Username or Password";
}
}
这部分不行。它只是呼应“admin.php”。您似乎试图使用ob\u get\u contents
函数做一些事情,但它不是这样工作的。在代码中,只有一个名为ob\u get\u contents
的变量,它与函数无关
此外,ob\u get\u contents
不是从另一页获取信息或执行重定向到另一页的正确功能
要重定向到另一页,请使用位置
标题:
header('Location:' . $url);
exit;
这将导致浏览器的小往返。基本上,您向浏览器发送一个小结果,告诉它对另一个url执行第二个请求。但别担心。这是一种常见的解决方案,尤其是在发布信息之后。请参阅有关的详细信息。要重定向用户,需要设置重定向标头
为此,您需要使用以下功能:
header("location: your location goes here"); exit();
例如,如果您的站点位于,则要重定向到管理区域,您将使用以下用户:
header("location: http://www.example.com/admin.php"); exit();
您还需要在重定向标头之后退出。使用标头('Location:xyz.php');有关更多检查链接,您似乎正在学习PHP。如果是这样,最好不要学习mysql.*
函数。他们被弃用了。最好使用mysqli
或PDO
。关于任何mysql\u*
函数,函数顶部有一个大的红色框,为您提供更多信息。但是url对于每个用户都是唯一的。啊,然后在位置标题中使用您的$url
变量(请参阅答案中的修复)。我对您代码中的硬编码admin.php
感到有点困惑,我真的不明白您试图在那里实现什么。当我使用该代码时,我收到以下错误消息警告:无法修改标题信息-标题已由发送(输出开始于C:\xampp\htdocs\alchesman\index.php:210)在C:\xampp\htdocs\alchesm\index.php的第238行,这一定是因为您以前输出过内容。这不会发生在您发布的代码中,但可能还有其他代码已经输出了某些内容。您需要发送标题以执行重定向,但只有在您之前未发送任何内容(或者实际上,当您尚未发送标题时)时,才能发送标题。不,我没有使用标题
header("location: http://www.example.com/admin.php"); exit();