提交登录后显示空白页

时间:2017-01-18 07:06:19

标签: php login error-handling

我的代码有问题 但在用用户名和密码提交后,我得到空白页面, 我试图建立一个登录系统,但是有一个问题,当提交表单时,这只是一个空白的白页

在我的脚本下面,名称为 login.php

<?php session_start();?>
<!DOCTYPE html>
<html lang="en">
<title>Login</title>
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
<style>
        body {
            background-color:#eee;
        }
        .row {
            margin:100px auto;
            width:300px;
            text-align:center;

        }
        .login {
            border-radius: 5px;
            background-color:#fff;
            padding:20px;
            margin-top:20px;
        }
    </style>
<body>
<div class="container">
        <div class="row">
<?php
if(isset($_POST['submit'])){
include 'db.php';
$user=addslashes($_POST['user']);
$pass=md5($_POST['pass']);
$cari= "select user from guru where user='$user' and pass='$pass'";
$query= mysql_query($cari);
$num=mysql_num_rows($query);
if($num>0){ 
session_register('user');
$row= mysql_fetch_array($query);
$_SESSION['user']=$row['user'];
header("location:index.php");
exit;
 } else {
 echo '
 <div class="alert alert-danger" role="alert">User atau password salah.</div>';
};
}
?>
<div class="login">

<div class="panel panel-info" >
                    <div class="panel-heading">
                        <div class="panel-title">Masuk</div>

                    </div>     

                    <div style="padding-top:30px" class="panel-body" >

                        <div style="display:none" id="login-alert" class="alert alert-danger col-sm-12"></div>

                        <form id="loginform" class="form-horizontal" role="form" action="" method="post">

                            <div style="margin-bottom: 25px" class="input-group">
                                        <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
                                        <input id="login-username" type="text" class="form-control" name="user" value="" placeholder="username">                                        
                                    </div>

                            <div style="margin-bottom: 25px" class="input-group">
                                        <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
                                        <input id="login-password" type="password" class="form-control" name="pass" placeholder="password">
                                    </div>






                                <div style="margin-top:10px" class="form-group">
                                    <!-- Button -->

                                    <div class="col-sm-12 controls">
                                      <input type="submit" name="submit" class="btn btn-primary btn-block" value="Masuk" />


                                    </div>
                                </div>



                            </form>     



                        </div>                     
                    </div>


    </div>


</body>
</html>

2 个答案:

答案 0 :(得分:0)

建议使用mysqli或PDO_MySQL扩展。建议不要将旧的mysql扩展用于新开发,因为它在PHP 5.5.0中已被弃用,并在PHP 7中被删除。下面提供了详细的功能比较矩阵。所有三个扩展的整体性能被认为是大致相同的。虽然扩展的性能只占PHP Web请求总运行时间的一小部分。通常,影响低至0.1%

您的代码应为:

<?php session_start();?>
<!DOCTYPE html>
<html lang="en">
<title>Login</title>
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
<style>
        body {
            background-color:#eee;
        }
        .row {
            margin:100px auto;
            width:300px;
            text-align:center;

        }
        .login {
            border-radius: 5px;
            background-color:#fff;
            padding:20px;
            margin-top:20px;
        }
    </style>
<body>
<div class="container">
        <div class="row">
<?php
if(isset($_POST['submit'])){
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
//to get all error 

//include 'db.php' file is unreachable;
$user=addslashes($_POST['user']);
$pass=md5($_POST['pass']);

    $mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

    if ($result = mysqli_query($link, "select user from guru where user='$user' and pass='$pass'")) {    

        $num=mysqli_num_rows($result);
        if($num>0){ 
session_register('user');
$_SESSION['user']=$result[0]['user'];
  /* free result set */
    mysqli_free_result($result);
header("location:index.php");
exit;
 } else {
 echo '
 <div class="alert alert-danger" role="alert">User atau password salah.</div>';
};
 }
}
?>
<div class="login">

<div class="panel panel-info" >
                    <div class="panel-heading">
                        <div class="panel-title">Masuk</div>

                    </div>     

                    <div style="padding-top:30px" class="panel-body" >

                        <div style="display:none" id="login-alert" class="alert alert-danger col-sm-12"></div>

                        <form id="loginform" class="form-horizontal" role="form" action="" method="post">

                            <div style="margin-bottom: 25px" class="input-group">
                                        <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
                                        <input id="login-username" type="text" class="form-control" name="user" value="" placeholder="username">                                        
                                    </div>

                            <div style="margin-bottom: 25px" class="input-group">
                                        <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
                                        <input id="login-password" type="password" class="form-control" name="pass" placeholder="password">
                                    </div>






                                <div style="margin-top:10px" class="form-group">
                                    <!-- Button -->

                                    <div class="col-sm-12 controls">
                                      <input type="submit" name="submit" class="btn btn-primary btn-block" value="Masuk" />


                                    </div>
                                </div>



                            </form>     



                        </div>                     
                    </div>


    </div>


</body>
</html>

check link

答案 1 :(得分:0)

你必须在start_session();

之后添加ob_start()

当您在重定向页面之前编写html代码之后,成功登录标题将不会重定向页面,因为您的标题已经发送。

ob_start将作为存储html代码的缓冲区,如果您明确发送或文件结束将呈现html代码/发送标头