2009-12-09 11 views
0

J'essaie de me connecter à une base de données en utilisant un formulaire de connexion. Actuellement, il y a un utilisateur dans la base de données, mais lorsque vous appuyez sur Soumettre, la page semble juste rafraîchir et n'est pas redirigée vers la page d'accueil comme il se doit. Voici mon code:Connexion php à la base de données

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

Répondre

1

Je suppose que le problème n'est pas avec votre fonctionnalité de connexion, mais avec votre instruction de redirection header(). La redirection d'en-tête() ne fonctionnera que si elle se produit avant que tout html ne soit envoyé au navigateur. Une fois le html démarré, les en-têtes http ont déjà été envoyés et ne peuvent plus être modifiés. J'espère que c'est votre seul problème.

+0

J'ai changé cela mais j'ai toujours le même problème. Des idées? – user228180

+0

Bon, il se peut que je manque quelque chose, mais lorsque vous utilisez session_register(), pourquoi inscrivez-vous "username"? Si je comprends correctement session_register(), vous définissez uniquement une variable de session appelée "nom d'utilisateur" qui n'a aucune valeur. Peut-être essayez de mettre "myusername" (qui est votre variable avec la valeur de l'utilisateur) au lieu de "nom d'utilisateur". Je n'ai jamais utilisé session_register() auparavant, donc je peux me tromper. – darthnosaj

+0

Selon le manuel php, session_register() est de toute façon obsolète. J'essaierais d'utiliser $ _SESSION ["username"] = $ myusername à la place. J'espère que ça aide! – darthnosaj

0

Vous ne pouvez pas utiliser header() après avoir envoyé la sortie au navigateur, vous devez donc placer le fichier php avant le tag html. Par ailleurs, je ne sais pas comment votre serveur est configuré, mais je ne pense pas que votre lien d'enregistrement va fonctionner (je suppose que public_html est la racine du serveur ...).

Modifier: Je vois que vous activez la mémoire tampon de sortie mais vous ne videz pas le tampon. Y a-t-il une raison spécifique de le faire?

Questions connexes