PHP标头位置无法使用BootStrap 3 [正常标头位置正常工作]

时间:2014-11-27 11:32:13

标签: php jquery twitter-bootstrap redirect location

我正在使用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.请不要将其标记为重复。

2 个答案:

答案 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。