Problème de connexion 2
Fermé
shegy93
Messages postés
2
Date d'inscription
samedi 28 mai 2016
Statut
Membre
Dernière intervention
28 mai 2016
-
Modifié par jordane45 le 31/05/2016 à 00:20
jordane45 Messages postés 38390 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 janvier 2025 - 31 mai 2016 à 00:40
jordane45 Messages postés 38390 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 janvier 2025 - 31 mai 2016 à 00:40
A voir également:
- Problème de connexion 2
- Gmail connexion - Guide
- D'où peut venir un problème de connexion internet sur un ordinateur ? - Guide
- Facebook connexion - Guide
- Hotmail connexion - Guide
- Word numéro de page 1/2 - Guide
2 réponses
aminos1996
Messages postés
353
Date d'inscription
dimanche 26 février 2012
Statut
Membre
Dernière intervention
31 août 2018
125
30 mai 2016 à 16:17
30 mai 2016 à 16:17
bonsoir
essaye de faire un echo "erreur"; avant chaque ligne comme ça tu sauras bien quelle ligne cause l'arrêt du script
essaye de faire un echo "erreur"; avant chaque ligne comme ça tu sauras bien quelle ligne cause l'arrêt du script
jordane45
Messages postés
38390
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 janvier 2025
4 731
Modifié par jordane45 le 31/05/2016 à 00:48
Modifié par jordane45 le 31/05/2016 à 00:48
Bonjour,
Déjà ... place le code de connexion à ta BDD dans un fihcier à part que tu n'auras qu'à inclure dans les pages où tu en auras besoin...
Ca t'éviter de copier/coller 50 fois la même chose ....
Par exemple :
Ensuite, au début de ton script, ajoutes la ligne :
En gros, ton code avec quelques corrections, donnerait un truc du genre :
Cordialement,
Jordane
Déjà ... place le code de connexion à ta BDD dans un fihcier à part que tu n'auras qu'à inclure dans les pages où tu en auras besoin...
Ca t'éviter de copier/coller 50 fois la même chose ....
Par exemple :
<?php //Fichier de connexion à la bdd : cnxBdd.php try{ $bdd= new PDO('pgsql:host=localhost;port=5432;dbname=projetweb;user=postgres;password=root'); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); } catch(PDOException $e) { die('Erreur de connexion : ' . $e->getMessage()); }
Ensuite, au début de ton script, ajoutes la ligne :
//Active l'affichage des erreurs PHP error_reporting(E_ALL);
En gros, ton code avec quelques corrections, donnerait un truc du genre :
<?php //affichage des erreurs pHP error_reporting(E_ALL); /* Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1)*/ header('Content-type: text/html; charset=UTF-8'); // Démarrage des sessions (à Faire DES LE DEBUT !) if (!session_id()){ session_start(); } //connexion à la bdd (on inclus le fichier de connexion) require_once "cnxBdd.php"; /* Initialisation de la variable du message de réponse*/ $message = null; /* Récupération des variables issues du formulaire par la méthode post*/ $login = filter_input(INPUT_POST, 'login'); $password = filter_input(INPUT_POST, 'password'); /* Teste que les valeurs ne sont pas vides ou composées uniquement d'espaces */ $login = !empty(trim($login)) ? trim($login) : null; $password = !empty(trim($password)) ? trim($password) : null; if ($login,$password)){ /* Si le formulaire est envoyé et Si $pseudo et $pass différents de null */ /* Requête pour récupérer les enregistrements répondant à la clause : champ du pseudo et champ du mdp de la table = pseudo et mdp posté dans le formulaire */ //* Préparation de la requête*/ $requete = "SELECT count(*) as NB FROM profil WHERE login = :login AND password = :password"; $datas = array(':login'=>$login,':password'=>$password); try { //execution de la requete $req_prep = $bdd->prepare($requete); $req_prep->execute($datas); $resultat = $req_prep->fetchAll(); /* Création du tableau du résultat avec fetchAll qui récupère tout le tableau en une seule fois*/ } catch (PDOException $e){ $message = 'Problème dans la requête de sélection :' . $e->getMessage(); } $nb_result =!empty($resultat) ? $resultat[0]['NB'] : 0; if ($nb_result == 1) { $_SESSION['login'] = $login; $message = 'Bonjour '.htmlspecialchars($_SESSION['login']).', vous êtes connecté'; /*ou redirection vers une page en cas de succès ex : menu.php*/ //header("Location: ./menu.html"); //exit(); /* Si vous voulez récupérer les données elles se trouvent dans la première et unique ligne du tableau $resultat par exemple */ /**$result = $resultat[0]; echo $result['pseudo']; //echo $result['date_enregistrement']; ***/ } else if ($nb_result > 1) { /* Par sécurité si plusieurs réponses de la requête mais si la table est bien construite on ne devrait jamais rentrer dans cette condition */ $message = 'Problème de d\'unicité dans la table'; } else { /* Le pseudo ou le mot de passe sont incorrect */ $message = 'Le pseudo ou le mot de passe sont incorrect'; } } else {/*au moins un des deux champs "pseudo" ou "mot de passe" n'a pas été rempli*/ $message = 'Les champs Pseudo et Mot de passe doivent être remplis.'; } ?>
Cordialement,
Jordane