Probleme avec un link dans mon fichier de connexion
Résolu
flexi2202
Messages postés
3822
Date d'inscription
Statut
Membre
Dernière intervention
-
flexi2202 Messages postés 3822 Date d'inscription Statut Membre Dernière intervention -
flexi2202 Messages postés 3822 Date d'inscription Statut Membre Dernière intervention -
bonsoir a tous
je viens de tester mon site sur un hébergeur gratuit et tout fonctionne a merveille
notamment la connexion
par contre sur mon hébergeur payant j ai un soucis avec mon fichier de connexion et notamment avec ce morceau de code voir ci après
lorsque je le laisse dans mon code
j ai un message d erreur comme quoi la variable link n est pas définie ?
Notice: Undefined index: link in /home/u434600775/domains/pecheperle.be/public_html/phil/connexion.php on line 66
normalement je ne devrais pas recevoir de message d erreur puisque je la teste
et si elle est vide je suis redirige vers l acceuil
je viens de tester mon site sur un hébergeur gratuit et tout fonctionne a merveille
notamment la connexion
par contre sur mon hébergeur payant j ai un soucis avec mon fichier de connexion et notamment avec ce morceau de code voir ci après
lorsque je le laisse dans mon code
j ai un message d erreur comme quoi la variable link n est pas définie ?
Notice: Undefined index: link in /home/u434600775/domains/pecheperle.be/public_html/phil/connexion.php on line 66
normalement je ne devrais pas recevoir de message d erreur puisque je la teste
et si elle est vide je suis redirige vers l acceuil
<?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(); } } ?>`
A voir également:
- Probleme avec un link dans mon fichier de connexion
- Gmail connexion - Guide
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
5 réponses
bonsoir
merci pour la réponse
mais lorsque j enlève le ";" le code me dit qu il manque un point virgule
merci pour la réponse
mais lorsque j enlève le ";" le code me dit qu il manque un point virgule
C'est toute la ligne qui est mauvaise. On ne met pas de condition dans un else. Le else, c'est l'action à faire lorsque les autres if/else if sont invalides.
D'ailleurs le reste du code n'est pas sans défaut... c'est bien de faire une variable
D'ailleurs le reste du code n'est pas sans défaut... c'est bien de faire une variable
$link, mais elle sert à quoi ? Tu ne l'utilises pas dans ton code.
bonjour Pyraah
ah bon tout est mauvais ...
et donc en relisant mon code je n utilise pas cette variable link en effet
je ne comprends pas bien comment je pourrais faire avec les if et les else
car
mon code est fait de cette manière
j ai bien 3 if
puis 3 else
qui sont imbrique les uns dans les autres
je ne vois pas comment j aurais pu faire
le pire c est que ce code fonctionne sur l hébergeur gratuit
ah bon tout est mauvais ...
et donc en relisant mon code je n utilise pas cette variable link en effet
je ne comprends pas bien comment je pourrais faire avec les if et les else
car
mon code est fait de cette manière
j ai bien 3 if
puis 3 else
qui sont imbrique les uns dans les autres
je ne vois pas comment j aurais pu faire
le pire c est que ce code fonctionne sur l hébergeur gratuit
Je n'ai pas dit que le code est mauvais, j'ai dit que la ligne est mauvaise...et que tu n'utilises pas ta variable $link ;-).
Et tu as tendance à te perdre facilement dans ton code, c'est normal lorsqu'on débute. Et c'est pour ça qu'il faut faire attention à l'indentation du code, pour qu'il soit lisible.
Et ton if/else... else se traduit littéralement par "sinon". Si tu veux mettre une condition, c'est un else if (sinon si) qu'il faut utiliser.
Après peu importe combien de if tu as imbriqués. Le else sera toujours la fin du if le plus proche. Et il sera toujours exécuté si le if le plus proche n'a pas satisfait une condition.
Je n'ai pas la pédagogie nécessaire pour mieux t'aider, mais je te conseille fortement de survoler un cours dédié aux débutants.
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql?status=published
Et tu as tendance à te perdre facilement dans ton code, c'est normal lorsqu'on débute. Et c'est pour ça qu'il faut faire attention à l'indentation du code, pour qu'il soit lisible.
Et ton if/else... else se traduit littéralement par "sinon". Si tu veux mettre une condition, c'est un else if (sinon si) qu'il faut utiliser.
Après peu importe combien de if tu as imbriqués. Le else sera toujours la fin du if le plus proche. Et il sera toujours exécuté si le if le plus proche n'a pas satisfait une condition.
IF 1
IF 2
IF 3
ELSE 3 (fin du IF 3)
ELSE 2 (fin du IF 2
ELSE 1 (fin du IF 1)
Je n'ai pas la pédagogie nécessaire pour mieux t'aider, mais je te conseille fortement de survoler un cours dédié aux débutants.
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql?status=published
merci pour la reponse
il est vrai que j ai tendance a me perde dans mon code et pourtant quand je vois mes débuts cela va beaucoup mieux
oui j ai bien compris le principe du if et else
pourtant j ai beau me relire
je suis bon quand même
y a un truc qui m échappe
j ai mis les numéros des if et else en commentaire
il est vrai que j ai tendance a me perde dans mon code et pourtant quand je vois mes débuts cela va beaucoup mieux
oui j ai bien compris le principe du if et else
pourtant j ai beau me relire
je suis bon quand même
y a un truc qui m échappe
j ai mis les numéros des if et else en commentaire
<?php session_start(); //gestion des erreurs error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //je me connecte a ma base de donnee require_once 'base.php'; //je verifie le pseudo et le password //if numero 1 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 numero 2 if ($row == 1) { //on verifie le pawword si il est ok on continue , sinon sortie //if numero 3 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 numero 4 if (empty($_SESSION['link'])) { header('Location: accueil-peche-perle.php?pseudo=' . $_SESSION['pseudo']); //sinon on va faire la dernière page visitée } //else numero 4 else (!empty($_SESSION['link'])); { header('location: ' . $_SESSION['link']); } die(); } //else numero 3 else { header('Location: connexion-site.php?login_err=password'); die(); } } //else numero 2 else { header('Location: connexion-site.php?login_err=already'); die(); } } ?>`
Bonjour
Logne 68... Tu ne peux pas mettre de CONDITION sur un ELSE
Logne 68... Tu ne peux pas mettre de CONDITION sur un ELSE
//if numero 4 if (empty($_SESSION['link'])) { header('Location: accueil-peche-perle.php?pseudo=' . $_SESSION['pseudo']); //sinon on va faire la dernière page visitée } //else numero 4 else { header('location: ' . $_SESSION['link']); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question