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

Langage PHP Discussion :

Problème sur la fonction include [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Juillet 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 21
    Points : 17
    Points
    17
    Par défaut Problème sur la fonction include
    Bonjour chères développeurs, je suis en train de développer un site web dynamique, et qui dit dynamique dit aussi la génération automatique du contenue de la page.

    Bref, j'ai une page d'accueil contenant une barre de navigation ( générée avec du php ) et j'ai une <div> centrale qui va contenir le texte associé à chaque page.

    Lorsque je clique sur une rubrique de la barre de navigation, le lien de la rubrique fait appel à une autre page appelée "articles.php" avec une variable id comme identifiant de la page à afficher, l'astuce c'est que j'utilise la div pour afficher le contenue de la page "articles.php",

    code de la barre de navigation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $rub0=mysql_query("select * from rubrique0");
      while($rubrique0=mysql_fetch_array($rub0)){
          echo '<li><a href="index.php?id='.$rubrique0['id0'].'"> '.$rubrique0['nom'].' </a>';
    }
    ?>
    code de la div de la page accueil.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <div id="maincolumn">												  
     <?php 
        $src="articles.php";
          if(isset($_GET['id']))
    	$src='articles.php?id='.$_GET['id'];
     
          else if(isset($_GET['id1']))
            $src='articles.php?id1='.$_GET['id1'];
     
          include($src); 
    ?>
    </div>
    Les liens, les nom des rubriques et les valeurs des gets tout est nikel, sauf la ligne de l'include "include($src);" me renvoie la div avec les erreurs suivantes :
    ------------------------------
    Warning: include("articles.php?id=1") [function.include]: failed to open stream: No error in C:\wamp\www\intellia\front_beta\index.php on line 96

    Warning: include() [function.include]: Failed opening '"articles.php?id=1"' for inclusion (include_path='.;C:\php5\pear') in C:\wamp\www\intellia\front_beta\index.php on line 96
    ---------------------------------
    sachant que include('articles.php?id=1'); ça marche mais lorsque je la remplace par la variable $src qui est varier en fonction du clique, ça n'a pas marché...

    pardon moi pour la langueur du sujet , mais je me suis bloqué ici ...

    en attente de votre aide et merci d'avance ....

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 31
    Points : 46
    Points
    46
    Par défaut
    Tu as essayer avec un chemin absolue ?

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Points : 342
    Points
    342
    Par défaut
    Ca ne fonctionne pas parce qu'on ne peut pas passer de paramètres get dans un include().

    Fais tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id="maincolumn">
    <?php
     include('articles.php');
    ?>
    </div>
    Et tu traite l'affichage conditionnel dans le fichier articles.php en fonction de $_GET['id'] et $_GET['id1'] :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php if(isset($_GET['id']))
    {
     echo(.........); 
    }
    else if(isset($_GET['id1']))
    {
    echo(.........); 
    }?>

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Juillet 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par philodido Voir le message
    Ca ne fonctionne pas parce qu'on ne peut pas passer de paramètres dans un include().

    Fait tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include('articles.php');
    Et tu traite l'affichage conditionnel dans le fichier articles.php en fonction de $_GET['id'] et $_GET['id1'].
    -------------
    Merci pour la solution ca marche nikel !

    Mais juste pour le passage de paramètres dans l'include je me suis basé sur un cours trouvé sur un autre site.

    Juste pour l'infos j'ai aussi trouvé une solution équivalente on utilisant les iframes, mais le problème de ces dernières c'est que ça leurs tailles (langueur) n'ai pas adapté en fonction de son contenue, mais c'est peut réglé via une fonction javascript appelé à chaque onload de la page :

    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
     
    <script language="javascript1.4">
     
    function calcHeight()//Fonction pour adapter le hauteur de l'iframe à son contenue
    {
      //récupère la hauteur de la page
      var the_height=document.getElementById('iframe_article').contentWindow.document.body.scrollHeight;
      //change la hauteur de l'iframe
      document.getElementById('iframe_article').height=the_height;
    }
    </script>
     
    <?php 
    	$src="articles.php";
    		if(isset($_GET['id'])){
    	     	 $src='articles.php?id='.$_GET['id'];
    	 			}
    		else if(isset($_GET['id1'])){
    		  $src='articles.php?id1='.$_GET['id1'];
    			}					
    ?>						
    <iframe onresize=reSize() id=iframe_article width="100%" height="1" name="iframe_article" src="<?php echo $src;?>" scrolling="no" frameborder="1">
    </iframe>
    Et je vous remercie une autre fois pour votre aide...

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Juillet 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par BByani Voir le message
    Tu as essayer avec un chemin absolue ?
    pas besoin d'un lien absolue puisque touts les fichiers se trouvent dans le même répertoire. Merci comme même

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Points : 342
    Points
    342
    Par défaut
    Citation Envoyé par eo-soft Voir le message
    Mais juste pour le passage de paramètres dans l'include je me suis basé sur un cours trouvé sur un autre site.[/url]
    Si tu regarde bien, il ne passe pas de paramètres get par la fonction include().

    Pour les Iframes je vois pas trop l'utilité dans ton cas en plus tu vas ralentir inutilement ta page avec un js. Fais le tout simplement comme tu voulais au départ puisque maintenant ça marche nickel .

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Juillet 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par philodido Voir le message
    Si tu regarde bien, il ne passe pas de paramètres get par la fonction include().

    Pour les Iframes je vois pas trop l'utilité dans ton cas en plus tu vas ralentir inutilement ta page avec un js. Fais le tout simplement comme tu voulais au départ puisque maintenant ça marche nickel .
    Pour les paramètres, moi aussi je ne passe pas des get par le fonction include() mais plutôt une chaîne de caractères contenant le lien + la valeur id (le tout comme chaîne de caractères), mais bon comme t'as déjà mentionné les iframes c'est dépassé et le js ralentie la page, alors je fait appel à ta solution , c'est plus optimiser chapeau man

  8. #8
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Points : 342
    Points
    342
    Par défaut
    Tu passe effectivement bien une chaine de caractères dans la fonction include(). Mais c'est justement là le problème : la fonction interprète cette chaine comme étant un lien sans paramètre get (l'id, dans ton cas), du coup si tu lui envoi lien + id alors quelle s'attend juste à un lien, elle ne comprend plus rien, et le serveur te renvoi le message que tu avais au début : [function.include]: failed to open stream = La fonction include n'a pas réussit à ouvrir le flux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] Problème avec la fonction include
    Par dubailth dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/07/2007, 11h34
  2. Problème avec la fonction include chez ifrance.com
    Par othmane126 dans le forum Langage
    Réponses: 10
    Dernier message: 26/05/2007, 11h56
  3. [Système] problème avec la fonction include()
    Par daemon2a dans le forum Langage
    Réponses: 4
    Dernier message: 10/05/2007, 11h02
  4. [MySQL] exécuter un script php en commande linux : problème sur les fonctions mysql
    Par dr_octopus74 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/03/2007, 16h34
  5. problème sur substring (fonction inconnue)
    Par nerick dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/12/2005, 15h46

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