Moteur de recherche affichant le message d'une personne
Résolu/Fermé
Utilisateur anonyme
-
1 janv. 2017 à 16:04
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 - 5 juin 2017 à 22:04
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 - 5 juin 2017 à 22:04
A voir également:
- Moteur de recherche affichant le message d'une personne
- Message - Guide
- Recuperer message whatsapp supprimé - Guide
- Message d'absence thunderbird - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
10 réponses
jordane45
Messages postés
38304
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
1 janv. 2017 à 16:14
1 janv. 2017 à 16:14
Bonjour,
Tu as un seul champ "nom"
que tu récupères via l'instruction
.. au passage .. comme il me semble te l'avoir déjà dit ... il serait préférable de le faire "proprement" comme ceci :
Le probème c'est que ce champ contient à la fois le NOM et le PRENOM.
Hors.. ta variable $prenom .. n'est pas renseignée ...
Tu as plusieurs possibilités :
Soit tu "split" le contenu de $_POST['nom'] en deux variables ( $nom et $prenom)
Soit, dans ta requête, tu fais ton WHERE sur la CONCATENATION de tes deux champs ( nom prenom )
Par exemple :
Tu as un seul champ "nom"
que tu récupères via l'instruction
$nom = $_POST['nom'];
.. au passage .. comme il me semble te l'avoir déjà dit ... il serait préférable de le faire "proprement" comme ceci :
$nom = !empty($_POST['nom']) ? trim($_POST['nom']) : '';
Le probème c'est que ce champ contient à la fois le NOM et le PRENOM.
Hors.. ta variable $prenom .. n'est pas renseignée ...
Tu as plusieurs possibilités :
Soit tu "split" le contenu de $_POST['nom'] en deux variables ( $nom et $prenom)
$nomPrenom = !empty($_POST['nom']) ? $_POST['nom'] : ''; $NP = explode(" ",$nomPrenom); $nom = $NP[0]; $prenom = $NP[1];
Soit, dans ta requête, tu fais ton WHERE sur la CONCATENATION de tes deux champs ( nom prenom )
Par exemple :
SELECT message FROM personne WHERE concat_ws(' ',nom,prenom) = :nom
jee pee
Messages postés
40464
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
22 novembre 2024
9 425
1 janv. 2017 à 16:17
1 janv. 2017 à 16:17
Bonjour,
Avant ton select, avec $POST, tu récupères le nom du formulaire, mais pas le prénom.
Cdlt
Avant ton select, avec $POST, tu récupères le nom du formulaire, mais pas le prénom.
Cdlt
Utilisateur anonyme
1 janv. 2017 à 16:35
1 janv. 2017 à 16:35
Bon en écoutant ce que vous m'avez proposé, voici ce que j'ai fais :
Et le fichier _gestionBase.inc.php
Et ça ne marche pas.
<?php /* Fichier index.php */ //affichage des erreurs php //error_reporting(E_ALL); require_once '__gestionBase.inc.php'; $nom = !empty($_POST['nom']) ? trim($_POST['nom']) : ''; /*$nomPrenom = !empty($_POST['nom']) ? $_POST['nom'] : ''; $NP = explode(" ",$nomPrenom); $nom = $NP[0]; $prenom = $NP[1];*/ //traitement du formulaire if ($nomPrenom) { $messagePersonne = obtenirMessagePersonne($nomPrenom); } ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <link rel="icon" href="../../favicon.ico"> <title>De l'amour à la haine...</title> <!-- Bootstrap core CSS --> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"> <!-- Custom styles for this template --> <link href="bootstrap/css/theme.css" rel="stylesheet"> <link href="bootstrap/css/style.css" rel="stylesheet"> <!-- Just for debugging purposes. Don't actually copy these 2 lines! --> <!--[if lt IE 9]><script src=""quot;../../assets/js/ie8-responsive-file-warning.js"></script><![endif]--> <script src=""quot;../../assets/js/ie-emulation-modes-warning.js"></script> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src=""quot;https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src=""quot;https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <h1>De l'amour à la haine...</h1> <form class="navbar-form pull-left"method="POST"> <input type="text" name="nom" class="span4" placeholder="Prénom Nom" value="<?php echo $prenom . $nom; ?>"> <button type="submit" class="btn">Rechercher</button><br> <?php if (!empty($messagePersonne)) { echo "<h2>$messagePersonne</h2>"; } ?> </form><br> <script src=""quot;http://code.jquery.com/jquery.js"></script> <script src=""quot;js/bootstrap.min.js"></script> </body>
Et le fichier _gestionBase.inc.php
<?php /* __gestionBase.inc.php * Ce fichier regroupe l'ensemble des fonctions utilisées pour la connexion et la gestion de la base de données * */ /* La première fonction regroupe la fonction se connectant à la base de données * Elle se connecte à la base de données "amour et haine" du serveur de la base de données MySQL et retourne un gestionnaire de connexion * Elle retourne un objet PDO en cas de succès et false en cas d'échec */ function gestionnaireDeConnexion() { try { $pdo = new PDO('mysql:host=localhost;dbname=amourethaine; charset=utf8', 'root', ''); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); } catch (PDOException $e) { die("Erreur ! :" . $e->getMessage()); } return $pdo; } //var_dump(gestionnaireDeConnexion()); //Ne sert à rien ici ! /* * Retourne le message d'une personne * Retourne PDOStatement|false Un objet PDO en cas de succès, "false" en cas d'échec */ function obtenirMessagePersonne($nom, $prenom) { $pdo = gestionnaireDeConnexion(); if (isset($_POST['submit'])) { if (isset($_POST['nom'])) { $nom = $_POST['nom']; $prenom = $_POST['nom']; $sql = "select message from personne where concat_ws(' ',nom,prenom) = :nom"; $query = $pdo->prepare($sql); $query->bindParam(':nom', $nom); $query->bindParam(':prenom', $prenom); $query->execute(); $resultat = $query->fetch(); //le temps des tests : //print_r($resultat); $messagePersonne = !empty($resultat) ? $resultat->message : ''; //Pour les tests : /* echo "requête = ".$req; print_r($datas); */ return $messagePersonne; } else return 0; } else return false; }
Et ça ne marche pas.
jee pee
Messages postés
40464
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
22 novembre 2024
9 425
Modifié par jee pee le 1/01/2017 à 16:56
Modifié par jee pee le 1/01/2017 à 16:56
"en écoutant", je crois que tu entends mal des yeux ;-)
tu n'as pas lu tout ce que jordane45 a détaillé pour toi.
tu n'as pas lu tout ce que jordane45 a détaillé pour toi.
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 550
1 janv. 2017 à 17:06
1 janv. 2017 à 17:06
Si tu as deux champs (pour nom et pour prénom) dans ta base, ne serait-ce pas plus propre d'avoir deux champs dans ton formulaire?
Utilisateur anonyme
>
jee pee
Messages postés
40464
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
22 novembre 2024
1 janv. 2017 à 17:29
1 janv. 2017 à 17:29
Bon en lisant ce que vous dites, voici ce que j'ai fais :
Pour index.php :
Et le fichier __gestionBase.inc.php
Sachant peut-être que je n'ai pas tout compris dans ce que vous m'avez écrit, maintenant dans mes démonstrations, plus aucun message s'affiche.
Pour index.php :
<?php /* Fichier index.php */ //affichage des erreurs php //error_reporting(E_ALL); require_once '__gestionBase.inc.php'; $nom = !empty($_POST['nom']) ? trim($_POST['nom']) : ''; $prenom = !empty($_POST['prenom']) ? trim($_POST['prenom']) : ''; /* $nomPrenom = !empty($_POST['nom']) ? $_POST['nom'] : ''; $NP = explode(" ",$nomPrenom); $nom = $NP[0]; $prenom = $NP[1]; */ //traitement du formulaire if ($nom && $prenom) { $messagePersonne = obtenirMessagePersonne($nom, $prenom); } ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <link rel="icon" href="../../favicon.ico"> <title>De l'amour à la haine...</title> <!-- Bootstrap core CSS --> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"> <!-- Custom styles for this template --> <link href="bootstrap/css/theme.css" rel="stylesheet"> <link href="bootstrap/css/style.css" rel="stylesheet"> <!-- Just for debugging purposes. Don't actually copy these 2 lines! --> <!--[if lt IE 9]><script src=""quot;../../assets/js/ie8-responsive-file-warning.js"></script><![endif]--> <script src=""quot;../../assets/js/ie-emulation-modes-warning.js"></script> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src=""quot;https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src=""quot;https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <h1>De l'amour à la haine...</h1> <form class="navbar-form pull-left"method="POST"> <input type="text" name="nom" class="span4" placeholder="Nom" value="<?php echo $nom; ?>"> <input type="text" name="prenom" class="span4" placeholder="Prenom" value="<?php echo $prenom; ?>"> <button type="submit" class="btn">Rechercher</button><br> <?php if (!empty($messagePersonne)) { echo "<h2>$messagePersonne</h2>"; } ?> </form><br> <script src=""quot;http://code.jquery.com/jquery.js"></script> <script src=""quot;js/bootstrap.min.js"></script> </body>
Et le fichier __gestionBase.inc.php
<?php /* __gestionBase.inc.php * Ce fichier regroupe l'ensemble des fonctions utilisées pour la connexion et la gestion de la base de données * */ /* La première fonction regroupe la fonction se connectant à la base de données * Elle se connecte à la base de données "amour et haine" du serveur de la base de données MySQL et retourne un gestionnaire de connexion * Elle retourne un objet PDO en cas de succès et false en cas d'échec */ function gestionnaireDeConnexion() { try { $pdo = new PDO('mysql:host=localhost;dbname=amourethaine; charset=utf8', 'root', ''); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); } catch (PDOException $e) { die("Erreur ! :" . $e->getMessage()); } return $pdo; } //var_dump(gestionnaireDeConnexion()); //Ne sert à rien ici ! /* * Retourne le message d'une personne * Retourne PDOStatement|false Un objet PDO en cas de succès, "false" en cas d'échec */ function obtenirMessagePersonne($nom, $prenom) { $pdo = gestionnaireDeConnexion(); if (isset($_POST['submit'])) { if (isset($_POST['nom'])) { $nom = $_POST['nom']; $prenom = $_POST['prenom']; $sql = "select message from personne where concat_ws(' ',nom,prenom) = :nom"; $query = $pdo->prepare($sql); $query->bindParam(':nom', $nom); $query->bindParam(':prenom', $prenom); $query->execute(); $resultat = $query->fetch(); //le temps des tests : //print_r($resultat); $messagePersonne = !empty($resultat) ? $resultat->message : ''; //Pour les tests : /* echo "requête = ".$req; print_r($datas); */ return $messagePersonne; } else return 0; } else return false; }
Sachant peut-être que je n'ai pas tout compris dans ce que vous m'avez écrit, maintenant dans mes démonstrations, plus aucun message s'affiche.
Utilisateur anonyme
>
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 janv. 2017 à 17:40
1 janv. 2017 à 17:40
Ben c'est que j'ai fais dans mon formulaire index.php, j'ai rajouté un champ. Mais cela ne marche pas et maintenant aucun message ne s'affiche.
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 550
>
Utilisateur anonyme
1 janv. 2017 à 17:46
1 janv. 2017 à 17:46
et tu a remis la condition
where nom=:nom and prenom=:prenom?
jordane45
Messages postés
38304
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
Modifié par jordane45 le 1/01/2017 à 18:59
Modifié par jordane45 le 1/01/2017 à 18:59
Ah la la ....
Dans ta fonction... pourquoi avoir mis les lignes :
Alors que tu passes déjà les variables nom et prénom dans l'appel à ta fonction ??
Tu colles du code sans en comprendre le fonctionnement... ce n'est pas comme ça que tu vas apprendre !
Bref !:
Cordialement,
Jordane
Dans ta fonction... pourquoi avoir mis les lignes :
if (isset($_POST['submit'])) { if (isset($_POST['nom'])) { $nom = $_POST['nom']; $prenom = $_POST['prenom'];
Alors que tu passes déjà les variables nom et prénom dans l'appel à ta fonction ??
function obtenirMessagePersonne($nom, $prenom) {
Tu colles du code sans en comprendre le fonctionnement... ce n'est pas comme ça que tu vas apprendre !
Bref !:
<?php /* Fichier index.php */ //affichage des erreurs php error_reporting(E_ALL); ini_set('display-errors','on'); require_once '__gestionBase.inc.php'; $nom = !empty($_POST['nom']) ? trim($_POST['nom']) : NULL; $prenom = !empty($_POST['prenom']) ? trim($_POST['prenom']) : NULL; //traitement du formulaire if ($nom && $prenom) { $messagePersonne = obtenirMessagePersonne($nom, $prenom); } ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <link rel="icon" href="../../favicon.ico"> <title>De l'amour à la haine...</title> <!-- Bootstrap core CSS --> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"> <!-- Custom styles for this template --> <link href="bootstrap/css/theme.css" rel="stylesheet"> <link href="bootstrap/css/style.css" rel="stylesheet"> <!-- Just for debugging purposes. Don't actually copy these 2 lines! --> <!--[if lt IE 9]><script src=""quot;"quot;"quot;../../assets/js/ie8-responsive-file-warning.js"></script><![endif]--> <script src=""quot;"quot;"quot;../../assets/js/ie-emulation-modes-warning.js"></script> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src=""quot;"quot;"quot;https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src=""quot;"quot;"quot;https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <h1>De l'amour à la haine...</h1> <form class="navbar-form pull-left" method="POST" action=""> <input type="text" name="nom" class="span4" placeholder="Nom" value="<?php echo $nom; ?>"> <input type="text" name="prenom" class="span4" placeholder="Prenom" value="<?php echo $prenom; ?>"> <button type="submit" class="btn">Rechercher</button><br> <?php if (!empty($messagePersonne)) { echo "<h2>$messagePersonne</h2>"; } ?> </form> <br> <script src=""quot;"quot;quot;http://code.jquery.com/jquery.js"></script> <script src=""quot;"quot;quot;js/bootstrap.min.js"></script> </body> </html>
<?php /* __gestionBase.inc.php * Ce fichier regroupe l'ensemble des fonctions utilisées pour la connexion et la gestion de la base de données * */ /* La première fonction regroupe la fonction se connectant à la base de données * Elle se connecte à la base de données "amour et haine" du serveur de la base de données MySQL et retourne un gestionnaire de connexion * Elle retourne un objet PDO en cas de succès et false en cas d'échec */ function gestionnaireDeConnexion() { try { $pdo = new PDO('mysql:host=localhost;dbname=amourethaine; charset=utf8', 'root', ''); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); } catch (PDOException $e) { die("Erreur ! :" . $e->getMessage()); } return $pdo; } //var_dump(gestionnaireDeConnexion()); //Ne sert à rien ici ! /* * Retourne le message d'une personne * Retourne PDOStatement|false Un objet PDO en cas de succès, "false" en cas d'échec */ function obtenirMessagePersonne($nom, $prenom) { $pdo = gestionnaireDeConnexion(); $sql = "SELECT message FROM personne WHERE nom = :nom AND prenom =:prenom"; $query = $pdo->prepare($sql); $query->bindParam(':nom', $nom); $query->bindParam(':prenom', $prenom); $query->execute(); $resultat = $query->fetch(); $messagePersonne = !empty($resultat) ? $resultat->message : ''; return $messagePersonne; }
Cordialement,
Jordane
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
1 janv. 2017 à 19:23
1 janv. 2017 à 19:23
C'est bon j'ai réussi à le faire marcher parfaitement. En fait cela vient de mon fichier PDO _gestionBase.inc.php, j'ai modifié la condition si de ma fonction obtenirMessagepersonne:
Et pour mon fichier index.php, j'ai juste modifier la manière dont s'affiche le message en dessous du formulaire. Du coup, avec le nom et le prénom le message s'affiche bien en dessous :
function obtenirMessagePersonne($nom, $prenom) { $pdo = gestionnaireDeConnexion(); if (isset($_POST['nom']) && isset($_POST['prenom'])) { $nom = $_POST['nom']; $prenom = $_POST['prenom']; $sql = "select message from personne where nom=:nom and prenom=:prenom"; $query = $pdo->prepare($sql); $query->bindParam(':nom', $nom); $query->bindParam(':prenom', $prenom); $query->execute(); $resultat = $query->fetch(); //le temps des tests : //print_r($resultat); $messagePersonne = !empty($resultat) ? $resultat->message : ''; //Pour les tests : /* echo "requête = ".$req; print_r($datas); */ return $messagePersonne; } else return false; }
Et pour mon fichier index.php, j'ai juste modifier la manière dont s'affiche le message en dessous du formulaire. Du coup, avec le nom et le prénom le message s'affiche bien en dessous :
<?php /* Fichier index.php */ //affichage des erreurs php //error_reporting(E_ALL); include_once '_gestionBase.inc.php'; $nom = !empty($_POST['nom']) ? trim($_POST['nom']) : ''; $prenom = !empty($_POST['prenom']) ? trim($_POST['prenom']) : ''; //traitement du formulaire if ($nom && $prenom) { $messagePersonne = obtenirMessagePersonne($nom, $prenom); } ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <link rel="icon" href="../../favicon.ico"> <title>De l'amour à la haine...</title> <!-- Bootstrap core CSS --> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"> <!-- Custom styles for this template --> <link href="bootstrap/css/theme.css" rel="stylesheet"> <link href="bootstrap/css/style.css" rel="stylesheet"> <!-- Just for debugging purposes. Don't actually copy these 2 lines! --> <!--[if lt IE 9]><script src=""quot;../../assets/js/ie8-responsive-file-warning.js"></script><![endif]--> <script src=""quot;../../assets/js/ie-emulation-modes-warning.js"></script> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src=""quot;https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src=""quot;https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <h1>De l'amour à la haine...</h1> <form class="navbar-form pull-left"method="POST"> <input type="text" name="nom" class="span4" placeholder="Nom" value="<?php echo $nom; ?>"> <input type="text" name="prenom" class="span4" placeholder="Prenom" value="<?php echo $prenom; ?>"> <button type="submit" class="btn">Rechercher</button><br> <?php if (isset($messagePersonne)) : ?> <?php echo "<h2>$messagePersonne</h2>"; ?> <?php endif; ?> </form><br> <script src=""quot;http://code.jquery.com/jquery.js"></script> <script src=""quot;js/bootstrap.min.js"></script> </body>
jordane45
Messages postés
38304
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
1 janv. 2017 à 19:38
1 janv. 2017 à 19:38
Tu n'as pas lu la réponse que je viens de te donner !
Relis là et applique ce que j'y ai marqué .... (ce n'est pas compliquer à comprendre pourtant !!! )
Relis là et applique ce que j'y ai marqué .... (ce n'est pas compliquer à comprendre pourtant !!! )
Utilisateur anonyme
1 janv. 2017 à 19:38
1 janv. 2017 à 19:38
Mais quand c'est moi qu'il le fait, j'arrive à comprendre.
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 550
Modifié par yg_be le 1/01/2017 à 20:24
Modifié par yg_be le 1/01/2017 à 20:24
La fonction obtenirMessagePersonne reçoit $nom, $prenom comme paramètre, cela n'a pas de sens d'aller les chercher à nouveau dans $_POST: tu peux donc supprimer les lignes 3 à 5, ainsi que 22 à 24.
jordane45
Messages postés
38304
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
>
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 janv. 2017 à 20:24
1 janv. 2017 à 20:24
c'est bien ce que je lui ai déjà dit ... https://forums.commentcamarche.net/forum/affich-34231028-moteur-de-recherche-affichant-le-message-d-une-personne#11
.....
.....
Bonsoir. J'ai améliorer mon moteur de recherche en faisant du PHP orienté objet. Voici mon nouveau fichier gestionBase.php contenant mon fichier PDO :
Et voici mon nouveau fichier de traitement traitement.php :
Et voici l'IHM de mon moteur de recherche index.php :
Or pour le rappeler, je veux qu'un message s'affiche en fonction du nom et du prenom de la personne qui sont renseigné dans les champs du formulaire. Or le problème c'est que pour tous les noms et prénoms présents dans ma base de données, s'affiche le message "Inconnu au bataillon" quand je valide avec le bouton Rechercher. Or ce message s'affiche pour les personnes présentes dans ma base de données et renseigné dans les champs.
Pouvez-vous m'aider ? Merci d'avance.
<?php /* * _gestionBase.php * Ce fichier regroupe l'ensemble des fonctions utilisées pour la connexion et la gestion de la base de données * */ /* * La première fonction regroupe la fonction se connectant à la base de données * Elle se connecte à la base de données "amour et haine" du serveur de la base de données MySQL et retourne un gestionnaire de connexion * Elle retourne un objet PDO en cas de succès et false en cas d'échec */ class gestionBase { function gestionnaireDeConnexion() { $user = 'root'; $pass = ''; $hote = 'localhost'; $base = 'amourethaine'; $dsn = "mysql:host=$hote;dbname=$base"; try { $pdo = new PDO ( $dsn, $user, $pass ); $pdo->setAttribute ( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); $pdo->setAttribute ( PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ ); } catch ( PDOException $e ) { die ( "Erreur ! :" . $e->getMessage () ); } return $pdo; } /* * Retourne le message d'une personne * Retourne PDOStatement|false Un objet PDO en cas de succès, "false" en cas d'échec */ function obtenirMessagePersonne($nom, $prenom) { $pdo = $this->gestionnaireDeConnexion (); $sql = "select message from personne where nom=:nom and prenom=:prenom"; $query = $pdo->prepare ( $sql ); $query->bindParam ( ':nom', $nom ); $query->bindParam ( ':prenom', $prenom ); $query->execute (); $resultat = $query->fetch (); $messagePersonne = !empty($resultat) ? $resultat->message : 'Inconnu(e) au bataillon'; return $messagePersonne; } }
Et voici mon nouveau fichier de traitement traitement.php :
<?php /* Fichier index.php */ // affichage des erreurs php // error_reporting(E_ALL); require_once 'gestionBase.php'; class Traitement { function __construct() { } function interrogation() { $base = new gestionBase(); // Récupération des valeurs saisies dans le formulaire $nom = isset ( $_POST ['nom'] ) ? trim ( $_POST ['nom'] ) : NULL; $prenom = isset ( $_POST ['prenom'] ) ? trim ( $_POST ['prenom'] ) : NULL; // Traitement du formulaire if ($nom && $prenom) { $messagePersonne = $base->obtenirMessagePersonne ( $nom, $prenom ); } } } ?>
Et voici l'IHM de mon moteur de recherche index.php :
<?php /* Fichier index.php */ // affichage des erreurs php error_reporting ( E_ALL ); require_once '_debut.php'; require_once 'traitement.php'; $interro = new Traitement (); $nom = $interro->interrogation (); $prenom = $interro->interrogation (); ?> <body> <div class="container"> <h1>De l'amour à la haine...</h1> <form class="navbar-form pull-left" method="POST"> <input type="text" name="prenom" placeholder="Prenom" value="<?php echo $prenom; ?>"> <input type="text" name="nom" placeholder="Nom" value="<?php echo $nom; ?>"> <button type="submit" name="rechercher" class="btn">Rechercher</button> <br> <!--Affichage du message correspondant à la personne--> <?php if (isset($messagePersonne)) : ?> <?php echo "<h2>$messagePersonne</h2>"; ?> <?php elseif (isset($_POST["rechercher"])) : ?> <?php echo "<h2>Inconnu au bataillon</h2>"; ?> <?php endif; ?> <br> <!--button type="button" class="btn btn-default" href= "index.php">Rafraichir</button--> </form> <br> </div> <?php require_once '_fin.php'; ?>
Or pour le rappeler, je veux qu'un message s'affiche en fonction du nom et du prenom de la personne qui sont renseigné dans les champs du formulaire. Or le problème c'est que pour tous les noms et prénoms présents dans ma base de données, s'affiche le message "Inconnu au bataillon" quand je valide avec le bouton Rechercher. Or ce message s'affiche pour les personnes présentes dans ma base de données et renseigné dans les champs.
Pouvez-vous m'aider ? Merci d'avance.
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 550
>
Utilisateur anonyme
Modifié le 28 avril 2017 à 07:57
Modifié le 28 avril 2017 à 07:57
je vois tellement de bizarreries que je ne sais pas par où commencer...
c'est ton premier exercice en php orienté objet?
je te suggère de commencer par des exercices plus simples.
pourquoi ne commences-tu pas par t'aider toi-même, par exemple en examinant le contenu de tes variables après avoir fait:
c'est ton premier exercice en php orienté objet?
je te suggère de commencer par des exercices plus simples.
pourquoi ne commences-tu pas par t'aider toi-même, par exemple en examinant le contenu de tes variables après avoir fait:
$interro = new Traitement (); $nom = $interro->interrogation (); $prenom = $interro->interrogation ();
jordane45
Messages postés
38304
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
Modifié le 28 avril 2017 à 17:04
Modifié le 28 avril 2017 à 17:04
...
Cordialement,
Jordane
<?php /* Fichier index.php */ // affichage des erreurs php error_reporting ( E_ALL ); ini_set('display-erros','on'); //include des class require_once '_gestionBase.php'; require_once 'traitement.php'; $nom = !empty($_POST['nom']) ? trim($_POST['nom']) : NULL; $prenom = !empty($_POST['prenom']) ? trim($_POST['prenom']) : NULL; //traitement du formulaire if (isset($_POST['rechercher'])) { $interro = new Traitement(); $messagePersonne = $interro->interrogation($nom,$prenom); } ?> <?php require_once '_debut.php'; ?> <body> <div class="container"> <h1>De l'amour à la haine...</h1> <form class="navbar-form pull-left" method="POST"> <input type="text" name="prenom" placeholder="Prenom" value="<?php echo $prenom; ?>"> <input type="text" name="nom" placeholder="Nom" value="<?php echo $nom; ?>"> <button type="submit" name="rechercher" class="btn">Rechercher</button> <br> <!--Affichage du message correspondant à la personne--> <?php if (isset($messagePersonne)){ echo "<h2>$messagePersonne</h2>"; } ?> <br> <!--button type="button" class="btn btn-default" href= "index.php">Rafraichir</button--> </form> <br> </div> <?php require_once '_fin.php'; ?>
<?php /* * _gestionBase.php * Ce fichier regroupe l'ensemble des fonctions utilisées pour la connexion et la gestion de la base de données * */ class gestionBase { public bdd; private function gestionnaireDeConnexion() { $user = 'root'; $pass = ''; $hote = 'localhost'; $base = 'amourethaine'; $dsn = "mysql:host=$hote;dbname=$base"; try { $pdo = new PDO ( $dsn, $user, $pass ); $pdo->setAttribute ( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); $pdo->setAttribute ( PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ ); } catch ( PDOException $e ) { die ( "Erreur ! :" . $e->getMessage () ); } $this->bdd = $pdo; } }
<?php /* Class Traitement*/ class Traitement extends gestionBase{ function __construct() { //appel le constructeur de gestionBase //et instancie la variable bdd parent::constuct(); } /** * Recuperation du message */ public function interrogation($nom,$prenom) { // Traitement du formulaire if ($nom && $prenom) { $messagePersonne = $this->obtenirMessagePersonne ($nom, $prenom ); }else{ $messagePersonne = "Merci de renseigner le nom et le prenom "; } return $messagePersonne; } /* * Retourne le message d'une personne * Retourne PDOStatement|false Un objet PDO en cas de succès, "false" en cas d'échec */ private function obtenirMessagePersonne($nom, $prenom) { $pdo = $this->bdd; //vient de la class parent gestionBase $sql = "select message from personne where nom=:nom and prenom=:prenom"; $query = $pdo->prepare($sql); $query->bindParam(':nom', $nom); $query->bindParam(':prenom', $prenom); $query->execute(); $resultat = $query->fetch(); return !empty($resultat) ? $resultat->message : 'Inconnu(e) au bataillon'; } } ?> ?>
Cordialement,
Jordane
jordane45
Messages postés
38304
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
>
Utilisateur anonyme
28 avril 2017 à 17:46
28 avril 2017 à 17:46
.. à construire ... :-)
Autrement dit ... à instancier l'objet.
Autrement dit ... à instancier l'objet.
jordane45
Messages postés
38304
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
>
Utilisateur anonyme
28 avril 2017 à 20:13
28 avril 2017 à 20:13
Si ta class c'est gestionBASE ... que viendrait y faire ta méthode MessagePersonne ?? C'est comme si je rangeai des chaussures dans mon frigo ....
Chaque "container" à une utilité ... un but .. ..... faut pas commencer à y mettre n'importe quoi.
Sinon autant ne faire qu'une seule CLASS et y mettre directement toutes tes méthodes ....
Chaque "container" à une utilité ... un but .. ..... faut pas commencer à y mettre n'importe quoi.
Sinon autant ne faire qu'une seule CLASS et y mettre directement toutes tes méthodes ....
Utilisateur anonyme
4 juin 2017 à 18:46
4 juin 2017 à 18:46
Bonsoir. Concernant le dernier message, j'ai réglé l'erreur en en stockant dans des variables les appels de méthodes $compte->getUser() et $compte->getMdp(). Cependant, je n'arrive pas à me connecter à mon moteur de recherche. En effet, quand je me connecte, je dois basculer sur la page du moteur de recherche. Or ça ne marche pas, et j'ai l'impression qu'il ne récupère pas les valeurs de mes variables $_SESSION[].
Pouvez-vous m'aider, ce serait super.
Voici ma entête appelée "_debut.php" de ma page index :
Ensuite, voici ma page index.php où se trouve mon interface de connexion :
Les deux fichiers sont à la racine de mon projet.
Voici ma classe compte.php qui interagit avec ma table compte de ma base de données. Il est dans mon répertoire modele :
En dessous se trouve le manager de ma table compte appelé comptemanager.php Il se trouve dans mon répertoire modele :
Maintenant se trouve l'algorithme PHP d'authentification au moteur de recherche. Celui-ci se trouve dans mon répertoire controleur :
Merci de me répondre.
Pouvez-vous m'aider, ce serait super.
Voici ma entête appelée "_debut.php" de ma page index :
<?php ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <link rel="icon" href="#"> <title>De l'amour à la haine...</title> <!-- Bootstrap core CSS --> <link href="bootstrap/css/style.css" rel="stylesheet"> <link href="bootstrap/css/bootstrap.css" rel="stylesheet"> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"> <link href="bootstrap/css/bootstrap-responsive.css" rel="stylesheet"> <link href="bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <!-- Custom styles for this template --> <link href="bootstrap/css/theme.css" rel="stylesheet"> <!-- Just for debugging purposes. Don't actually copy these 2 lines! --> <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]--> <script src="../../assets/js/ie-emulation-modes-warning.js"></script> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> </head> <body>
Ensuite, voici ma page index.php où se trouve mon interface de connexion :
<?php /* Fichier index.php permettant au utilisateur de se connecter, c'est la page d'accueil */ // affichage des erreurs php error_reporting ( E_ALL ); include_once '_debut.php'; include_once 'controleur/authentification.php'; ?> <header></header> <center> <div class="container"> <h1>De l'amour à la haine...</h1> <form class="navbar-form navbar-left" role="search" method="POST" S> <div class="form-group"> <input type="text" class="form-control" placeholder="Login" name="user"> <input type="password" class="form-control" placeholder="Mot de passe" name="mdp"> </div> <button type="submit" class="btn btn-success" name="connecter">Se connecter</button> </form> </div> </center> <?php include_once '_fin.php'; ?>
Les deux fichiers sont à la racine de mon projet.
Voici ma classe compte.php qui interagit avec ma table compte de ma base de données. Il est dans mon répertoire modele :
<?php class Compte { protected $user; protected $mdp; public function getUser() { return $this->user; } public function getMdp() { return $this->mdp; } public function setUser($user) { $this->user = (string) $user; return $this; } public function setMdp($mdp) { $this->mdp = $mdp; return $this; } }
En dessous se trouve le manager de ma table compte appelé comptemanager.php Il se trouve dans mon répertoire modele :
<?php // Méthode CRUD de la table Compte class CompteManager { //Instance de PDO protected $db; public function __construct($pdo) { $this->setDb($pdo); } // Ajouter un compte public function add(Compte $compte) { $q = $this->db->prepare('INSERT INTO compte (user, mdp)VALUES(:user,:mdp)'); $q->bindvalue(':user', $compte->getUser()); $q->bindvalue(':mdp', $compte->getMdp()); $q->execute(); } //Suppression d'un compte public function delete(Compte $compte) { $this->db->execute('DELETE FROM compte WHERE user= ' . $compte->getUser()); } //Selection d'un utilisateur public function get(Compte $compte) { $user = $compte->getUser(); $mdp = $compte->getMdp(); $q = $this->db->prepare('SELECT user, mdp FROM compte WHERE user =:user AND mdp =:mdp'); $q->bindParam(':user', $user, PDO::PARAM_STR); $q->bindParam(':mdp', $mdp, PDO::PARAM_STR); $q->execute(); $u = $q->fetch(PDO::FETCH_ASSOC); return new Compte($u); } //Liste des utilisateurs public function getList() { $comptes = []; $q = $this->db->query('SELECT user, mdp FROM compte ORDER BY user'); while ($donnees = $q->fetch(PDO::FETCH_ASSOC)) { $comptes[] = new Compte($donnees); } return $comptes; } //Mise à jour d'un utilisateur en fonction du nom de l'utilisateur public function update(Compte $compte) { $q = $this->db->prepare('UPDATE compte SET user =: user, mdp =:mdp WHERE user =:user'); $q->bindParam(':user', $compte->getUser(), PDO::PARAM_STR); $q->bindParam(':mdp', $compte->getMdp(), PDO::PARAM_STR); $q->execute(); } public function setDb(PDO $pdo) { $this->db = $pdo; } } try { $pdo = new PDO('mysql:host=localhost;dbname=amourethaine', 'root', ''); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); } catch (PDOException $e) { die("Erreur ! :" . $e->getMessage()); }
Maintenant se trouve l'algorithme PHP d'authentification au moteur de recherche. Celui-ci se trouve dans mon répertoire controleur :
<?php include_once('modele/comptemanager.php'); // Algorithme permmetant au super utilisateur de se connecter include_once('modele/compte.php'); $compte = new Compte(); $manager = new CompteManager($pdo); if (isset($_POST ["connecter"])) { if (isset($_POST ["user"]) && isset($_POST ["mdp"])) { $user = $compte->getUser(); $_POST ["user"] = $user; $mdp = $compte->getMdp(); $_POST ["mdp"] = $mdp; $resultat = $manager->get($compte); if ($resultat == "true") { $_SESSION ["user"] = $user; $_SESSION ["mdp"] = $mdp; header("location:recherche.php"); print_r($_SESSION); } } }
Merci de me répondre.
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 550
4 juin 2017 à 19:45
4 juin 2017 à 19:45
bonjour, je ne vois pas de session_start(), ni de récupération des variables $_SESSION.
il est nécessaire d'appeler session_start() au début de chaque page participant à la session (créant, lisant ou modifiant les variables de la session).
il est nécessaire d'appeler session_start() au début de chaque page participant à la session (créant, lisant ou modifiant les variables de la session).
Utilisateur anonyme
>
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
4 juin 2017 à 20:08
4 juin 2017 à 20:08
Pour le session_start() je l'ai rajouté dans mon _debut.php inclus dans ma page de connexion.
Et pour la récupération des variables de $_SESSION, je dois faire quoi exactement ?
Et pour la récupération des variables de $_SESSION, je dois faire quoi exactement ?
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 550
>
Utilisateur anonyme
Modifié le 4 juin 2017 à 20:51
Modifié le 4 juin 2017 à 20:51
pour récupérer les variables de session, tu peux faire, par exemple (après le session_start()):
je n'ai pas analysé tout ton code, je réagis à ta phrase "j'ai l'impression qu'il ne récupère pas les valeurs de mes variables $_SESSION[]"
en passant: je ne comprends pas vraiment pourquoi tu enregistres le mot de passe dans la session: d'habitude, le mot de passe est vérifié une seule fois, avant de créer la session.
$session_user = $_SESSION["user"] ; $session_mdp = $_SESSION["mdp"] ;
je n'ai pas analysé tout ton code, je réagis à ta phrase "j'ai l'impression qu'il ne récupère pas les valeurs de mes variables $_SESSION[]"
en passant: je ne comprends pas vraiment pourquoi tu enregistres le mot de passe dans la session: d'habitude, le mot de passe est vérifié une seule fois, avant de créer la session.
Utilisateur anonyme
>
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
4 juin 2017 à 21:20
4 juin 2017 à 21:20
Parce que quand je pratique, c'est ce que je fais d'habitude. Bon pour le moment et selon tes suggestions, cela ne marche toujours pas.
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 550
>
Utilisateur anonyme
4 juin 2017 à 21:25
4 juin 2017 à 21:25
peux-tu donner des informations supplémentaires?
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
Ambassadeur
1 550
5 juin 2017 à 19:27
5 juin 2017 à 19:27
je suis un peu perdu, peux-tu partager le contenu de _debut.php et de _debutmenu.php?
merci de chaque fois mettre le nom du fichier avant le contenu.
si je comprends bien, la seule façon d'arriver à la page recherche.php, c'est à partir de la redirection dans la page authentification.php. c'est exact?
je comprends aussi que ton problème, c'est que l'utilisateur la redirection n'est jamais exécutée. est-ce exact?
je pense que c'est le moment d'ajouter des "else" dans authentification.php, cela nous permettra de comprendre ce qui se passe dans la page authentification.php.
suggestion pour authentication.php:
merci de chaque fois mettre le nom du fichier avant le contenu.
si je comprends bien, la seule façon d'arriver à la page recherche.php, c'est à partir de la redirection dans la page authentification.php. c'est exact?
je comprends aussi que ton problème, c'est que l'utilisateur la redirection n'est jamais exécutée. est-ce exact?
je pense que c'est le moment d'ajouter des "else" dans authentification.php, cela nous permettra de comprendre ce qui se passe dans la page authentification.php.
suggestion pour authentication.php:
<?php include_once('modele/comptemanager.php'); // Algorithme permmetant au super utilisateur de se connecter include_once('modele/compte.php'); $compte = new Compte(); $manager = new CompteManager($pdo); if (isset($_POST ["connecter"])) { if (isset($_POST ["user"]) && isset($_POST ["mdp"])) { $user = $compte->getUser(); $_POST ["user"] = $user; $mdp = $compte->getMdp(); $_POST ["mdp"] = $mdp; $resultat = $manager->get($compte); if ($resultat == "true") { $_SESSION ["user"] = $user; $_SESSION ["mdp"] = $mdp; header("location:recherche.php"); print_r($_SESSION); } else echo "resultat faux"; } else echo " user ou mdp non reçu"; } else echo " connecter non reçu"; //(...la suite manque, tu ne l'as pas partagée...)
Il me semble que précedemment j'ai partagé ces deux fichiers... Mais bon.
Voici le fichier de l'entête de ma page index.php, "_debut.php" :
Et enfin, voici le fichier "_debutmenu.php" entête du fichier "recherche.php"uniquement :
Voici le fichier de l'entête de ma page index.php, "_debut.php" :
<?php session_start(); $session_user = $_SESSION["user"] ; $session_mdp = $_SESSION["mdp"] ; include_once 'controleur/authentification.php'; ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <link rel="icon" href="#"> <title>De l'amour à la haine...</title> <!-- Bootstrap core CSS --> <link href="bootstrap/css/style.css" rel="stylesheet"> <link href="bootstrap/css/bootstrap.css" rel="stylesheet"> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"> <link href="bootstrap/css/bootstrap-responsive.css" rel="stylesheet"> <link href="bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <!-- Custom styles for this template --> <link href="bootstrap/css/theme.css" rel="stylesheet"> <!-- Just for debugging purposes. Don't actually copy these 2 lines! --> <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]--> <script src="../../assets/js/ie-emulation-modes-warning.js"></script> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> </head> <body>
Et enfin, voici le fichier "_debutmenu.php" entête du fichier "recherche.php"uniquement :
<?php session_start(); include_once 'controleur/restriction.php'; ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <link rel="icon" href="#"> <title>De l'amour à la haine...</title> <!-- Bootstrap core CSS --> <link href="bootstrap/css/style.css" rel="stylesheet"> <link href="bootstrap/css/bootstrap.css" rel="stylesheet"> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"> <link href="bootstrap/css/bootstrap-responsive.css" rel="stylesheet"> <link href="bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <!-- Custom styles for this template --> <link href="bootstrap/css/theme.css" rel="stylesheet"> <!-- Just for debugging purposes. Don't actually copy these 2 lines! --> <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]--> <script src="../../assets/js/ie-emulation-modes-warning.js"></script> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <nav class="navbar-fixed-top navbar"> <div class="container"> <div class="navbar-header"> <a class="navbar-brand"></a> </div> <div id="navbar" class="collapse navbar-collapse"> <?php if (!isset($_SESSION["user"])): ?> <div class="nav navbar-nav pull-right"> <span class="glyphicon glyphicon-user white xsTabulation" aria-hidden="true"> </span> <a href="utilisateur.php" rel="nofollow noopener noreferrer" target="_blank"><span class="text-center white xsTabulation"><?php echo "Bienvenue " . $_SESSION["user"]; ?></a> </span> <span> <a href="<?php echo $_SERVER[" rel="nofollow noopener noreferrer" target="_blank"PHP_SELF"]; ?>?logout" class="white"> <button type="submit" name="deconnecter" class="btn btn-success" span class="glyphicon glyphicon-log-out " aria-hidden="true" title="log-out" <?php include_once'controleur/deconnexion.php';?>>Se déconnecter</button></span> </a> </span> </div> <?php endif; ?> </div> <!-- /.nav-collapse --> </div> <!-- /.container --> </nav>
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
Ambassadeur
1 550
5 juin 2017 à 20:33
5 juin 2017 à 20:33
as-tu l'intention de répondre à mes questions en #44, et de tester la suggestion proposée?
autre question, pour clarifier si le problème est causé par la page authentification ou par la page recherche: que se passe-t'il si tu encodes l'adresse de la page recherche dans la barre d'adresse du navigateur?
autre question, pour clarifier si le problème est causé par la page authentification ou par la page recherche: que se passe-t'il si tu encodes l'adresse de la page recherche dans la barre d'adresse du navigateur?
Pour répondre à la première question sur la redirection du fichier "authentification.php" : oui c'est uniquement ce script là qui est censé redirigé vers la page "recherche.php" si il y a une session connecté.
Pour la deuxième question : oui l'utilisateur n'est jamais redirigé vue il ne semble pas reconnaitre les identifiants de connexion.
Et pour la questions du dernier post : si je mets le chemin qui mêne la page "recherche.php" dans ma barre d'adresse du navigation, et bien il redirige vers la page de connexion car seul les utilisateurs authentifiés peuvent y accéder. Et c'est le script du fichier "restriction.php" qui fait la redirection pour les utilisateurs non connectés.
Pour la deuxième question : oui l'utilisateur n'est jamais redirigé vue il ne semble pas reconnaitre les identifiants de connexion.
Et pour la questions du dernier post : si je mets le chemin qui mêne la page "recherche.php" dans ma barre d'adresse du navigation, et bien il redirige vers la page de connexion car seul les utilisateurs authentifiés peuvent y accéder. Et c'est le script du fichier "restriction.php" qui fait la redirection pour les utilisateurs non connectés.
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 550
5 juin 2017 à 21:06
5 juin 2017 à 21:06
1) si tu mets le chemin qui mène la page "recherche.php" dans ta barre d'adresse du navigation, après avoir été authentifié, que se passe-t'il?
2) que donne ma suggestion en #44?
2) que donne ma suggestion en #44?
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 550
>
Utilisateur anonyme
Modifié le 5 juin 2017 à 21:37
Modifié le 5 juin 2017 à 21:37
le but de ma suggestion, c'était de comprendre ce que fait la page authentification, pas de corriger.
le message "connecter non reçu" indique que le test
voilà, maintenant tu sais pourquoi la page recherche ne s'affiche pas.
le message "connecter non reçu" indique que le test
if (isset($_POST ["connecter"]))empêche de rediriger vers la page recherche.
voilà, maintenant tu sais pourquoi la page recherche ne s'affiche pas.
Utilisateur anonyme
>
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
5 juin 2017 à 21:43
5 juin 2017 à 21:43
En gros, pour bien comprendre. C'est que quand je clique sur le bouton connecter de mon formulaire de connexion, il redirigera toujours ma page de connexion c'est ça ?