我正在使用bootstrap面对这个php头重定向问题,请找到下面的代码,
索引文件:
<?php
if(!isset($_SESSION)){
session_start();
}
include("db.php");
?>
<html>
<head>
<title>
</title>
<!-- jQuery Imports
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>-->
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1 /css/bootstrap.min.css">
<!-- Latest compiled and minified JavaScript
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"> </script>-->
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.13.1/jquery.validate.min.js"></script>
<!-- custom Js -->
<script src="js/bookrate.js"></script>
<style type="text/css">
body{padding-top:20px;}
</style>
</head>
<body>
<div class="cycle">
<h3 class="text-center">--</h3><br>
<h2 class="text-center"><small>Admin Panel</small></h2><br>
</div>
<div class="container">
<div class="row">
<div class="col-md-4 col-md-offset-4">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Please sign in</h3>
</div>
<div class="panel-body">
<form id="adminLogin" method="POST">
<fieldset>
<div class="form-group">
<input class="form-control" placeholder="E-mail" name="email" type="text" id="email">
</div>
<div class="form-group">
<input class="form-control" placeholder="Password" name="password" type="password" value="" id="password">
</div>
<div class="checkbox">
<label>
<input name="remember" type="checkbox" value="Remember Me"> Remember Me
</label>
</div>
<input class="btn btn-lg btn-success btn-block" type="submit" value="Login">
</fieldset>
</form>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
我的Db文件是:
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');
?>
Ajax管理员登录页面
<?php
OB_start();
session_start();
include("db.php");
$adminEmail =$_POST['email'];
$adminPassword = $_POST['password'];
$adminLoginQry = "select email from `users` where (email='$adminEmail') and password='$adminPassword'";
$retval = mysql_query($adminLoginQry);
if(mysql_num_rows($retval)==1)
{
header("Location: main.php");
exit;
}else{
echo "<span style='color:red;'>Please enter valid Username and Password. </span>";
}
?>
Main.php
<?php
echo "My Menu Page";
?>
一旦我输入了电子邮件ID和密码,点击登录按钮就会触发GET和POST请求,这两个请求是如何获得我无法理解的触发器?但仍然一切正常,我可以用Mozilla firefox firebug(开发者控制台)确认。
登录成功后,主页位置重定向不会发生在main.php页面上。请告诉我这里有什么问题..
这个问题已经没有答案,对我来说标题位置工作正常,但它不能只用于bootstrap 3.请不要将其标记为重复。
答案 0 :(得分:0)
您的登录未成功,因为
mysql_select_db('mydb');
应该是
mysql_select_db('mydb', $conn);
和表格应该是
<form id="adminLogin" action="adminLogin.php" method="POST">
答案 1 :(得分:0)
问题是Headers已经发送,或者在调用header()函数时,输出已经以简单的语言发送到浏览器。
最好的解决方案是不要传递标题(将html / output发送到浏览器),直到触发point header()函数。
解决方案:
$url = "main.php";
if (!headers_sent()) {
header('Location: '.$url);
exit;
} else {
echo '<script type="text/javascript">';
echo 'window.location.href="'.$url.'";';
echo '</script>';
exit;
}
这个简单的代码可以帮到你。它将检查标头是否未发送,然后它将调用PHP的标头函数进行重定向。但是如果标题被发送,它将使用Javascript重定向到您想要的URL。