Partage
  • Partager sur Facebook
  • Partager sur Twitter

Soucis avec Header()

Sujet résolu
14 septembre 2020 à 19:53:05

Bonjour,

Je viens de découvrir la fonction header, et elle a l'air bien intéressante !Malheureusement mes tests ne sont pas encore extraordinaires.

J'ai fait un test bateau. On essaye de se connecter et si cela réussit, on est redirigé vers jeuxvideo.com (il faut bien commencer par quelques choses :) )

Mais cela ne fonctionne pas, la page est fonctionnelle mais je suis pas redirigé vers la page demandé.

Voici le code :

<label>Pseudo</label><input type="text" name="Pseudo"/><br>
<label>Mot de passe</label><input type="text" name="MDP"/><br>

<p><input type="submit" value=OK></p>
</form>
<?php
try //Connexion base de donnée
{
	$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8','root','root');  // connexion base de donnée
}
catch (Exception $e)
{
        die('Erreur : ' . $e->getMessage());   // message si erreur avec la base
} // Fin de connexion base de donnée
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1); // Pour détecter erreur PHP




$pseudo = $_POST['Pseudo'];
$mdp = $_POST['MDP'];


$req = $bdd -> prepare ('SELECT * FROM id WHERE Pseudo = ?');
$req -> execute(array($pseudo));
$resultat = $req -> fetch();

$mdpcorrect = password_verify($mdp, $resultat['Mdp']);

if(!$resultat)
{
	echo"Problème avec le pseudo ou le mot de passe";
}
else
{
	if($mdpcorrect)
	{
		session_start();
		$_SESSION['id'] = $resultat['id'];
		header("Location : https://www.jeuxvideo.com/");
		exit;
	}
	else
	{
		echo"Problème avec le pseudo ou le mot de passe";
	}
}


?>
</html>


Bon code :

<!DOCTYPE html>
<html>
	<head>
	<meta charset="utf-8" />
	<link rel="stylesheet" href="Acceuil.css" />
	<title>Connexion</title>
	</head>
	
<form action="" method="post">

<label>Pseudo</label><input type="text" name="Pseudo"/>
<label>Mot de passe</label><input type="password" name="MDP"/><br>

<p><input type="submit" value=OK></p>
</form>

<?php
try //Connexion base de donnée
{
	$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8','root','root');  // connexion base de donnée
}
catch (Exception $e)
{
        die('Erreur : ' . $e->getMessage());   // message si erreur avec la base
} // Fin de connexion base de donnée
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1); // Pour détecter erreur PHP
error_reporting(E_ALL);


ob_start();

if(isset($_POST['Pseudo'])) //verif que pas NULL
{

$pseudo = $_POST['Pseudo'];
$mdp = $_POST['MDP'];

$req = $bdd -> prepare ('SELECT * FROM joueur WHERE Pseudo = ?');
$req -> execute(array($pseudo));
$resultat = $req -> fetch();



if(!$resultat)
{
	echo"Problème avec le pseudo ou le mot de passe";
}
else
{ $mdpcorrect = password_verify($mdp, $resultat['Mdp']);
	if($mdpcorrect)
	{
		session_start();
		$_SESSION['id'] = $resultat['id'];
		header("Location: Acceuil.php?id=".$_SESSION['id']);
		exit();
	}
	else
	{
		echo"Problème avec le pseudo ou le mot de passe";
	}
}
}

?>



</html>



-
Edité par VincentLoup 15 septembre 2020 à 20:32:18

  • Partager sur Facebook
  • Partager sur Twitter
14 septembre 2020 à 20:54:45

Bonjour,

Sauf que la fonction header est comme la doc le dit, une fonction qui doit être avant le moindre affichage donc avant le moindre code html envoyé.

On met toujours le php avant le html car la tu demandes à afficher les erreurs mais trop tard.

Enfin ta ligne 30 devrait se faire après la ligne 37 car la si aucun résultat, tu auras une belle erreur "undifined index" ....

  • Partager sur Facebook
  • Partager sur Twitter
15 septembre 2020 à 19:23:54

J'ai fait la modif que tu m'as demandé, j'arrive sur une page blanche. J'ai regardé sur internet mais j'ai pas trouvé grand chose sur mon problème.

J'edit car cela fonctionne !

C'est juste l'erreur du débutant du siècle. J'avais mis header(Location : ......) alors que je devais mettre header(Location: .....). Le soucis était un espace !

Merci de votre aide ;)

-
Edité par VincentLoup 15 septembre 2020 à 19:40:59

  • Partager sur Facebook
  • Partager sur Twitter
15 septembre 2020 à 19:58:53

si tu as une page blanche c'est que les erreurs ne sont pas activées (cf la FAQ PHP)

Il est bien de poster le nouveau code pour aider les personnes qui tomberait sur ce sujet. Merci

  • Partager sur Facebook
  • Partager sur Twitter