IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Fonction recuperation d'information dans l'url ,affichage de celle ci si elle est contenue dans la bdd


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Fonction recuperation d'information dans l'url ,affichage de celle ci si elle est contenue dans la bdd
    Bonjour,
    Je suis nouvelle en php, sql , html, css et en technologies du web . J'essaie de créer une fonction qui afficherait en fonction du nom du partenaire contenue dans l'url , un message de bienvenue correspondant . J'ai essayé de la concevoir selon l'architecture MVC , sauf que dans la vue je ne sais pas variable entrer pour afficher le nom du partenaire correspondant dans la page d'acceuil .

    Dans mon model : (account.php)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    class Nom_part{
    // fonction permettant de retourner le nom dupartenaire en fonction de la page correspondante 
     
    public function recupere_nom_part()
    {
        // recuperation dans l'url 
         $path_parts = pathinfo('http://site.com/home/pagepartenaire');
         $_GET['nom']=$path_parts['filename']; 
     
         // Connection à la base de données
            $database = new database;
            $database = $database->getDatabase();
     
        // selection du champs nom_part dans la table info_partenaires
            $requete=$database->prepare('SELECT nom_part FROM info_partenaires WHERE info_partenaire.nom_part=?');
            $requete->execute (array($_GET['nom']));
     
        // Parcourir le champs nom_part et comparer les valeurs de ce champs à la valeur de la variable recue dans url du controlleur/home
        while($nom=$requete->fetch()) 
        {
     
                return $nom['nom_part'];
     
        }
    }
    }
    Dans mon controlleur home.php)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function affichage_part()
        {
            $this->model('account');
            $req=new Nom_part();
            $req->recupere_nom_part();
            $this->view('home/index');
        }
    dans la vue (index.php)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <html>
     <!-- block du message d'accueil -->
          <div class="main_top block_title"  >
                          
            <h3 id="subtitle1" style="margin-top:0px;">
              <?php echo $nom['nom_part'] ; ?> </br> Vous simplifie la vie </h3>
    c est a ce niveau la que ca ne marche pas et qu'en testant on m'affiche variable indefinie, mais je ne comprend pas en quoi j'ai faux/
    j'ai essaye aussi en faisant " echo $_GET['nom'];" meme message d'erreur

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Déjà simplement dans la syntaxe, ton $nom à l'intérieur de ta classe, n'existe pas à l'extérieur de ta classe.
    C'est pour ça que tu obtiens variable non définie. (A priori parce que tu ne nous montres que des bouts de code).

    Ensuite si ton client appelle une URL comme tu nous montres "http://site.com/home/pagepartenaire" ... Il faut qu'il y ait une réecriture d'URL derrière qui dise que "pagepartenaire" c'est le "nom".
    Est-ce que cette opération est faite ?

    Et d'un point de vue logique on n'écrit pas [CODEINLINE]$_GET[xxx] = ....[CODEINLINE] : $_GET ce sont les variables provenant de l'url, donc on ne l'affecte pas, on ne fait que les lire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Hello ! merci beaucoup pour tes explications, j'ai déjà compris pas mal de mes erreurs !

    Pour ce qui est de l'affectation de 'pagepartenaire' à la variable nom, pour mon je le faisait dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $path_parts = pathinfo('http://site.com/home/pagepartenaire');
         $_GET['nom']=$path_parts['filename'];
    et en le testant cela marchait bien et m'affichait seulement 'page partenaire' . J'ai compris ce que tu veux dire au niveau des variables GET ,du coup comment se fait-il que ce bout de code marche dans ce cas la ? et que retourner dans ma vue ?
    " Nom_part->recupere_nom_part()" ? appel de la fonctionrecupere_nom_part() dans la classe Nom_part ? il faudrait du coup que je crée avant un objet de cette classe ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ici tu ne testes pas avec une vraie URL saisie dans le navigateur mais avec une URL que tu as saisie dans le code pour laquelle il n'y a pas de nom de fichier.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/05/2015, 17h49
  2. Réponses: 8
    Dernier message: 17/06/2013, 07h26
  3. Réponses: 2
    Dernier message: 09/05/2011, 14h29
  4. transformer un caractère accentué contenu dans une URL
    Par Tail dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/09/2008, 12h37
  5. [Reflection] Executer une fonction dont le nom est contenu dans un String
    Par christobal dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 05/07/2004, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo