Page 1 sur 1

problème avec mon fichier de connexion

Posté : 19 juil. 2021, 01:37
par flexi2202
bonsoir a tous
je viens de tester mon site sur un hébergeur gratuit et tout fonctionne a merveille
notamment la connexion voici le code complet
mais lorsque je le transfère sur mon hébergeur payant après la connexion j ai une feuille blanche


Code : Tout sélectionner

<?php session_start(); //gestion des erreurs error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //je rends la variable link propre $link = !empty($_GET['link']) ? $_GET['link'] : NULL; //je me connecte a ma base de donnee require_once 'base.php'; //je verifie le pseudo et le password if (!empty($_POST['pseudo']) && !empty($_POST['password'])) { //je mts au propre deux variables $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo'] : NULL; $password = !empty($_POST['password']) ? $_POST['password'] : NULL; //debut requete $sql = 'SELECT pseudo, email,id, password FROM utilisateurs WHERE pseudo = ?'; $datas = [$pseudo]; //Execution de la requete try { $requete = $bdd->prepare($sql); $requete->execute($datas); } catch(Exception $e) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage(); echo " Les datas : "; print_r($datas); } $data = $requete->fetch(); $row = $requete->rowCount(); //si le peusdo est bien dans la base alors on continue sinon on sort if ($row == 1) { //on verifie le pawword si il est ok on continue , sinon sortie if (password_verify($password, $data['password'])) { //on definit et on cree les variables sessions $_SESSION['user'] = array( 'id' => $data['id'], 'pseudo' => $data['pseudo'], 'email' => $data['email'] ); $_SESSION['id'] = $data['id']; $_SESSION['pseudo'] = $data['pseudo']; $_SESSION['email'] = $data['email']; //on test la variable link si elle est vide on va vers index if (empty($_SESSION['link'])) { header('Location: accueil-peche-perle.php?pseudo=' . $_SESSION['pseudo']); //sinon on va faire la dernière page visitée } else (!empty($_SESSION['link'])); { header('location: ' . $_SESSION['link']); } die(); } else { header('Location: connexion-site.php?login_err=password'); die(); } } else { header('Location: connexion-site.php?login_err=already'); die(); } } ?>`
apparemment lorsque je retire ce morceau de code fonctionne bien

Code : Tout sélectionner

else (!empty($_SESSION['link'])); { header('location: ' . $_SESSION['link']); }



normalement je ne devrais pas me retrouver face a une feuille blanche puisque je la variable de session
et si elle est vide je suis redirige vers l accueil
si elle est remplie je suis redirige vers la dernière page que j ai visiter ou la variable session link est crée

qui pour m aider merci

Re: problème avec mon fichier de connexion

Posté : 19 juil. 2021, 15:34
par ynx
Bonjour,

Tu as 2 erreurs de syntaxe dans ton code PHP :
1) Tu ne peux pas mettre une condition après l'instruction else, pour cela il faut utiliser l'instruction elseif
2) Il ne faut pas de point-virgule après l'instruction else ou elseif

Après correction avec l'instruction elseif, ton code pourrait ressembler à ceci :
if (empty($_SESSION['link']))
{
	header('Location: accueil-peche-perle.php?pseudo=' . $_SESSION['pseudo']);
	die();
}
elseif (!empty($_SESSION['link']))
{
	header('location: ' . $_SESSION['link']);
	die();
}

Néanmoins la condition dans l'instruction elseif est inutile dans ce cas puisqu'on vérifie déjà si la variable de session link est vide ou non dans l'instruction if. Le code peut donc être simplifié en utilisant uniquement l'instruction else :
if (empty($_SESSION['link']))
{
	header('Location: accueil-peche-perle.php?pseudo=' . $_SESSION['pseudo']);
	die();
}
else
{
	header('location: ' . $_SESSION['link']);
	die();
}

Bonne journée,

Re: problème avec mon fichier de connexion

Posté : 19 juil. 2021, 15:39
par @rthur
Et un guide pratique à suivre en cas de page blanche :
tutoriels/page-blanche-script-php-comme ... 73178.html

Re: problème avec mon fichier de connexion

Posté : 19 juil. 2021, 20:04
par flexi2202
bonjour a vous deux merci pour les réponses et l aide
cela est donc résolu grâce a votre aide
un grand merci pour la correction

bonne soirée a vous deux