我的代码有问题 但在用用户名和密码提交后,我得到空白页面, 我试图建立一个登录系统,但是有一个问题,当提交表单时,这只是一个空白的白页
在我的脚本下面,名称为 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>
答案 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>
答案 1 :(得分:0)
你必须在start_session();
之后添加ob_start()当您在重定向页面之前编写html代码之后,成功登录标题将不会重定向页面,因为您的标题已经发送。
ob_start将作为存储html代码的缓冲区,如果您明确发送或文件结束将呈现html代码/发送标头