我正在尝试使用登录表单连接到数据库。目前在数据库中有一个用户,但是当按下提交时,页面似乎只是刷新而不是应该重定向到主页。这是我的代码:
<html>
<head><title>Login</title></head>
<body>
<?php
ob_start();
include('connect.php');
$handle = mysql_connect($hostname, $username, $password)or die("cannot connect");
$error = mysql_select_db($databasename,$handle);
$myusername=$_POST['username'];
$mypassword=$_POST['password'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tablename WHERE UserName='$myusername' and Password='$mypassword'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
session_register("username");
session_register("password");
header("Location: home.php");
}
else {
echo "Wrong Username or Password";
}
?>
<form action='LoginREAL.php'
method='POST' style='margin: .5in'>
<p><label for='user_name' style='font-weight: bold;
padding-bottom: 1em'>USER ID: </label>
<input type='text' name='username' id='username'
value='' /></p>
<p><label for='password' style= 'font-weight: bold'>Password: </label>
<input type='password' name='password' id='password'
value='' /></p>
<p><input type='submit' value='Login'> </p>
<input type='hidden' name='sent' value='yes'/>
<a href= "/home/jparry2/public_html/register.php">Register</a>
</form>
</body>
</html>
答案 0 :(得分:1)
我的猜测是问题不是你的登录功能,而是你的header()重定向语句。 header()重定向仅在任何html发送到浏览器之前发生。 html启动后,http标头已经发送,无法更改。希望这是你唯一的问题。
答案 1 :(得分:0)
在将输出发送到浏览器之后,您无法使用header(),因此您需要将php内容放在html标记之前。
顺便说一下,我不知道你的服务器是如何设置的,但我不认为你的注册链接会起作用(我认为public_html是服务器的根目录......)。
编辑:我看到您正在打开输出缓冲,但您没有刷新缓冲区。有没有具体的理由这样做?