Page blanche sur un connexion.php

Fermé
vinc - 13 sept. 2012 à 07:58
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 - 16 sept. 2012 à 12:24
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 mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 220
13 sept. 2012 à 10:57
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