2009-12-09 2 views
0

Я пытаюсь подключиться к базе данных с помощью формы входа. В настоящее время в базе данных есть один пользователь, но при нажатии на кнопку появляется только что обновленная страница и не перенаправляется на домашнюю страницу, как следует. Вот мой код:Php подключение к базе данных

<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> 

ответ

1

Мое предположение было бы связано не с вашими функциями входа, а с инструкцией перенаправления header(). Переадресация header() будет работать только в том случае, если это произойдет до того, как любой html будет отправлен в браузер. Как только html запустился, заголовки HTTP уже отправлены и не могут быть изменены. Надеюсь, это ваша единственная проблема.

+0

Я изменил это, но все еще имею ту же проблему. Есть идеи? – user228180

+0

Хорошо, мне что-то не хватает, но когда вы используете session_register(), почему вы регистрируете «имя пользователя»? Если я правильно понимаю session_register(), вы устанавливаете только переменную сеанса с именем «имя пользователя», которая не имеет значения. Возможно, попробуйте поставить «myusername» (который является вашей переменной со значением из имени пользователя) вместо «username». Я никогда раньше не использовал session_register(), поэтому я мог ошибаться. – darthnosaj

+0

В соответствии с руководством php session_register() в любом случае устарел. Вместо этого я попытался бы использовать $ _SESSION ["username"] = $ myusername. Надеюсь, это поможет! – darthnosaj

0

Вы не можете использовать header() после отправки вывода в браузер, поэтому вам нужно поместить материал php перед тегом html.

Кстати, я не знаю, как настроен ваш сервер, но я не думаю, что ваша запись будет работать (я предполагаю, что public_html - это корень сервера ...).

Редактировать: Я вижу, что вы активируете буферизацию вывода, но вы не смываете буфер. Есть ли какая-то конкретная причина для этого?