Page blanche sur un connexion.php

vinc -  
tryan44 Messages postés 1288 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je suis novice en php et je suis en train de crée mon site alors voila je vous explique , j'ai fait un systeme d'inscription qui va enregistré dans ma base de donné le login et le pass , j'ai donc dans ma table "id" "login" et "pass" , mon inscription marche impecable apres avoir corigé les beug du script php , seulement voila , quand je veux me connecté ca me dirige vers la page " connexion.php" et ca m'affiche une belle page blanche , et si je fait " afficher le code source de la page" il n'y a rien dedans hors dans mon editeur j'ai bien mon script php , voici mon script php :

<?php

session_start();

$BDD = mysql_connect("IP_Serveur","LOGIN_MYSQL","PASS_MYSQL"); // Connexion à la base de données.
mysql_select_db("Site"); // Sélection de la base de données utilisée.

// On met les variables utilisés du script PHP à FALSE.
$error = FALSE;

$connexionOK = FALSE;

// On regarde si l'utilisateur a bien utilisé le module de connexion pour traiter les données.
if(isset($_POST["connexion"])){

// On regarde si tout les champs sont remplis. Sinon on lui affiche un message d'erreur.
if($_POST["login"] == NULL OR $_POST["pass"] == NULL){

$error = TRUE;

$errorMSG = "Vous devez remplir tout les champs !";

}

// Sinon si tout les champs sont remplis alors on regarde si le nom de compte rentré existe bien dans la base de données.
else{

$sql = "SELECT login FROM users WHERE login = '".$_POST["login"]."' ";

$req = mysql_query($sql);

// Si oui, on continue le script...
if($sql){

// On sélectionne toute les données de l'utilisateur dans la base de données.
$sql = "SELECT * FROM users WHERE login = '".$_POST["login"]."' ";

$req = mysql_query($sql);

// Si la requête SQL c'est bien passé...
if($sql){

// On récupère toute les données de l'utilisateur dans la base de données.
$donnees = mysql_fetch_assoc($req);

// Si le mot de passe entré à la même valeur que celui de la base de données, on l'autorise a se connecter...
if($_POST["pass"] == $donnees["pass"]){

$connexionOK = TRUE;

$connexionMSG = "Connexion au site réussie. Vous êtes désormais connecté !";

$_SESSION["login"] = $_POST["login"];

$_SESSION["pass"] = $_POST["pass"];

}

// Sinon on lui affiche un message d'erreur.
else{

$error = TRUE;

$errorMSG = "Nom de compte ou mot de passe incorrect !";

}

}

// Sinon on lui affiche un message d'erreur.
else{

$error = TRUE;

$errorMSG = "Nom de compte ou mot de passe incorrect !";

}

}

// Sinon on lui affiche un message d'erreur.
else{

$error = TRUE;

$errorMSG = "Nom de compte ou mot de passe incorrect !";

}

}

}

mysql_close($BDD);

?>

<?php if(isset($_SESSION["login"]) AND isset($_SESSION["pass"])){

echo "<p style="color:green">Bienvenue <strong>".$_SESSION["login"]."</strong></p>"; }

} ?>

<?php if($error == TRUE){ echo "<p align="center" style="color:red"><strong>".$errorMSG."</strong></p>"; } ?>

<?php if($connexionOK == TRUE){ echo "<p align="center" style="color:green"><strong>".$connexionMSG."</strong></p>"; } ?>

Merci d'avance .

9 réponses

tryan44 Messages postés 1288 Date d'inscription   Statut Membre Dernière intervention   220
 
Salut,

Il me semble que la session ne peut être pris en compte dans une même page si celle-ci na pas été ré-actualisée. Par ailleurs, vous sélectionnez 2 fois les mêmes données et vos messages d'erreurs sont répétitifs. Pour finir, il y a des erreurs de double quotte sur les 2 dernières lignes.

A l'arrache ... :
<?php 
session_start();

mysql_connect("IP_Serveur","LOGIN_MYSQL","PASS_MYSQL"); // Connexion à la base de données. 
mysql_select_db("Site") or die('Impossible de sélectionner une base de données.'); // Sélection de la base de données utilisée. 

// On regarde si l'utilisateur a bien utilisé le module de connexion pour traiter les données. 
if(isset($_POST["connexion"])){

	// On regarde si tout les champs sont remplis
	if(empty($_POST["login"]) OR empty($_POST["pass"])){ 
		echo "Vous devez remplir tout les champs !"; 
	} 
	// Sinon si tout les champs sont remplis
	else{ 
		//on va chercher tout ce qui correspond à l'utilisateur
		$utilisateur = mysql_query("SELECT login, pass FROM users WHERE login='".mysql_real_escape_string($_POST["login"])."' AND pass='".mysql_real_escape_string($_POST["pass"])."'");
		$result = mysql_fetch_assoc($utilisateur);
		//si le résultat est égal à 0
		if(mysql_num_rows($utilisateur) == 0)
		{
			echo 'Aucun utilisateur ne correspond à votre demande!';
		}
		else{
			//on extrait les données
			extract($result);
			//on libère le résultat de la mémoire
			mysql_free_result($utilisateur);
			//on créer les sessions
			$_SESSION["login"] = $login; 
			$_SESSION["pass"] = $pass; 
			//on redirige vers cette même page pour que la session soit pris en compte
			echo 'Connexion réussie, redirection en cours...<script type="text/javascript">
window.setTimeout("location=(\'votrepage.php\');",3000)
</script>';
		}
	}
}
//si les 2 sessions existent
if(isset($_SESSION["login"]) && isset($_SESSION["pass"])){
	echo '<p style="color:green">Bienvenue <strong>'.$_SESSION["login"].'</strong></p>';
}

mysql_close();
?> 

1