messagee warning sur utilisation fonction include()

Eléphanteau du PHP | 18 Messages

07 nov. 2010, 20:06

Bonjour,
je fais mes premiers pas php pour les besoins de mon projet site internet professionnel, mon site est fait en xhtml strict et css
les memes informations se retrouvant sur un bon nombre de pages, informations qui serons fréquement mises à jour, donc je souhaite faire un include et j'ai fait un programme exterieur
après essais, j'ai ce genre de message

Code : Tout sélectionner

Warning: include(NOM DE FICHIER.php) [function.include]: failed to open stream: No such file or directory in /home/XXXX/www/URL DE PAGE.html on line 156 Warning: include() [function.include]: Failed opening '/NOM DE DOSSIER/NOM DE FICHIER.php' for inclusion (include_path='.:/usr/share/php5') in /home/XXXX/www/URL DE PAGE.html on line 156
voila mon programme que le include fait appel, (il s'agit pour des produits nouveautés, de photos aléatoires avec liens vers la fiche produit)
<?php
$images = array(
    array('image-url' => 'PRODUIT01.jpg' , 'image-link' => 'URL FICHE PRODUIT01.html'),
    array('image-url' => 'PRODUIT02.jpg' , 'image-link' => 'URL FICHE PRODUIT02.html'),
    array('image-url' => 'PRODUIT03.jpg' , 'image-link' => 'URL FICHE PRODUIT03.html'),
);
  $random = rand(0,count($image)-1);
  echo '<a href="'.$images['random']['image-link'].'"><img src="'.$images['random']['image-url'].'" /></a>';   
?>
et voici la fonction que j'utilise pour faire appel dans la page html (dans une box définit en css)
<?php include('path/vers/le/NOM DE DOSSIER/NOM DE FICHIER.php'); ?>
là ma question le path c'est un dossier qui doit existé ??
je dois mettre vers/le/ puis NOM DE DOSSIER/NOM DE FICHIER.php ??

Merci pour votre aide, car je séche totalement. En cherchant sur le net je vois beaucoup d'erreurs équivalentes, mais aucune solutions
précision constat identique quelques soit le navigateur
Modifié en dernier par elodoriel le 08 nov. 2010, 01:24, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

07 nov. 2010, 20:31

salut,

tu a vraiment mis <?php include('path/vers/le/NOM DE DOSSIER/NOM DE FICHIER.php'); ?> ?

il faut, bien sur, mettre le nom du fichier à inclure.

donc si ton code est dans le fichier header.php tu fait un include('header.php').
s'il n'est pas dans le même dossier les régles habituelle s'applique (par exemple si le fichier est dans le répertoire includes : include('includes/header.php');


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 19672 Messages

07 nov. 2010, 20:36

Ce n'est pas un problème de navigateur, la fonction include étant exécutée en PHP coté serveur. C'est donc un problème de validité du chemin vers ton fichier qui est en cause. Le message indique tout simplement que le fichier n'est pas là où il est attendu.

Tu peux utiliser un chemin relatif ou absolu. Si tu utilises un chemin relatif, vérifie que ce dernier correspond bien à sa position par rapport au fichier d'où part l'appel.
Si tu utilises un chemin absolu comme semble le montrer ton message d'erreur, alors vérifie que le fichier est bien présent à cet endroit : "/home/XXXX/www/URL DE PAGE.html" : mais là en voyant ça, j'ai un doute : ça devrait être "/home/XXXX/www/NOM-DE-FICHIER.html" avec un nom de fichier et pas une URL.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 18 Messages

07 nov. 2010, 21:59

Si tu utilises un chemin absolu comme semble le montrer ton message d'erreur, alors vérifie que le fichier est bien présent à cet endroit : "/home/XXXX/www/URL DE PAGE.html" : mais là en voyant ça, j'ai un doute : ça devrait être "/home/XXXX/www/NOM-DE-FICHIER.html" avec un nom de fichier et pas une URL.
Sorry coquille en neutralisant mes infos

Code : Tout sélectionner

Warning: include(path/vers/le/DOSSIER/FICHIER.php) [function.include]: failed to open stream: No such file or directory in /home/xxxx/www/DOSSIER/PAGE.html on line 156 Warning: include() [function.include]: Failed opening 'path/vers/le/DOSSIER/FICHIER.php' for inclusion (include_path='.:/usr/share/php5') in /home/XXXX/www/DOSSIER/PAGE.html on line 156

Eléphanteau du PHP | 18 Messages

07 nov. 2010, 22:13

salut,
tu a vraiment mis <?php include('path/vers/le/NOM DE DOSSIER/NOM DE FICHIER.php'); ?> ?
il faut, bien sur, mettre le nom du fichier à inclure.
donc si ton code est dans le fichier header.php tu fait un include('header.php').
s'il n'est pas dans le même dossier les régles habituelle s'applique (par exemple si le fichier est dans le répertoire includes : include('includes/header.php');
@+
Merci de ta réponse, donc je dois mettre soit l'url absolue complète (http://NOMDEDOMAINE/DOSSIER/fichier.php), soit relative, uniquement le dossier/nomfichier.php c'est ça, j'ai pourtant je crois essayer les deux, je refais pour voir.

j'ai sur le net trouvé qu'il fallait mette pour une histoire de protection piratage, d'un port ouvert 24h autant que j'ai compris ?? le path/vers/le ou path/to avant, ça que je ne comprend pas

dont en clair
je met dans ma page html , entre les deux div de ma box css, comme tu dis dans dont exemple il faut mettre juste include('header.php') ou je dois mettre
<?php include('path/NOM DE DOSSIER/NOM DE FICHIER.php'); ?>
ma question étant le vers/le/ ou to/ c'est pour l'explication ou il faut le mettre vraiement dans le code ???

mes premiers pas php :wink:
Modifié en dernier par elodoriel le 07 nov. 2010, 22:20, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

07 nov. 2010, 22:18

il faut des fichiers avec l'extension .php

ensuite <?php include('header.php'); ?> à l'endroit voulu.

Je pense qu'il serait bon de lire les tutos de base pour t'aider.

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 18 Messages

07 nov. 2010, 22:25

merci des infos, il est vrai que je suis trop impatiente, je vais zyeuxté les tutoriels à ce sujet...
mais j'avoue... j'ai 1 mois et demi de retard sur la mise en ligne de mon site, jeune artisan qui cherche avec un site vitrine la relance des ses ventes, et Noel est proche, je vais perdre des ventes si je met pas en ligne au plus vite, et j'ai tout fait sauf le php,
l'include va me servir à deux modules sur 100 pages articles
et après me reste 2 formulaires en vérification php et envoi sur mail
et encore toutes mes photos à faire et intégrer pfffff

je vais faire le test avec l'url comme tu dis, et je te dis au courant

mais le path/vers le ça sert ou pas ??? vraiement une histoire de protection fichiers ???

Eléphanteau du PHP | 18 Messages

07 nov. 2010, 22:40

Bon la cata, j'ai encore plus de warning, je vous met la liste après... je m'en vais faire le repas...

mais mon programme image aléatoires doit avoir une erreur, car je n'ai que des symboles images et non les images d'essais.
Pourtant je viens de vérifier, pour image bon dossier, bon nom
et quand je clique le lien n'est pas le lien vers la page produit de l'image comme prévue mais vers la page déjà ouverte ??

concernant un tutoriel sur le forum, pas trouvé sur la fonction include()
Modifié en dernier par elodoriel le 07 nov. 2010, 22:54, modifié 1 fois.

Mammouth du PHP | 19672 Messages

07 nov. 2010, 22:49

Fais afficher la source du code HTML généré pour voir ce qu'il y a réellement d'envoyé au navigateur : ce sera un point de départ pour avoir une bonne idée de base de ce qui se passe.

Et accessoirement, si tu as un doute sur un bout de ton code,affiche-en les parties pertinentes ici, on repèrera probablement les coquilles s'il y en a. Pour l'instant, le premier bout que tu as montré au départ est correct, reste à voir le reste qui aboutit à ton problème actuel.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 18 Messages

07 nov. 2010, 22:56

Merci cyrano le code est mis en début de ce post... image aléatoires

bon après tentative de modif, j'ai plein de warning différent, mais pas mangé je reviens dans 40mn si tu n'es plus là on verra demain soir

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

07 nov. 2010, 23:48

<?php
$images = array(
    array('image-url' => 'PRODUIT01.jpg' , 'image-link' => 'URL FICHE PRODUIT01.html'),
    array('image-url' => 'PRODUIT02.jpg' , 'image-link' => 'URL FICHE PRODUIT02.html'),
    array('image-url' => 'PRODUIT03.jpg' , 'image-link' => 'URL FICHE PRODUIT03.html'),
);
  $random = rand(0,count($image)-1);
  echo '<a href="'.$images[$random]['image-link'].'"><img src="'.$images[$random]['image-url'].'" /></a>';  
?>
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 18 Messages

08 nov. 2010, 00:31

Bon voici tout les warnings suite à ma tentative de mettre
<?php include('DOSSIER/fichier_images_aleatoires.php'); ?>
dans ma page html
Précision, je n'ai pas connecté à ma base MSQL, qui a été crée, mais dont je ne sais pas me servir encore, mais le warning cite bisarrement son nom XXXX

Code : Tout sélectionner

Warning: include(DOSSIER/fichier_images_aleatoires.php) [function.include]: failed to open stream: No such file or directory in /home/XXXX/www/DOSSIER/PAGE_OU_SE_TROUVE_LE_CODE.html on line 156 Warning: include() [function.include]: Failed opening 'DOSSIER/fichier_images_aleatoires.php' for inclusion (include_path='.:/usr/share/php5') in /home/XXXX/www/DOSSIER/PAGE_OU_SE_TROUVE_LE_CODE.html on line 156
si vous comprenez plus que moi... ?
Pour le bout de code que Moogli a remis pour moi (merci Moogli) il est la totalité du code, bien entendu il y aura plus d'images en vrai...

si je met dans une page en xhtml je dois mette telle que le php soit <?php include('DOSSIER/fichier_images_aleatoires.php'); ?> ou mettre en formulation html avec le code php dedans ???

bon je viens de tester mon programme php déjà lui a un soucis il fonctionne pas, meme s'il semble bon au niveau syntaxe
c'est l'adaptation de ce programme, mais je le veux en plus cliquable vers le lien du produit en question (image=produit)
http://www.supportduweb.com/scripts_tut ... asard.html

merci de votre précieuse aide :?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

08 nov. 2010, 02:39

on va faire simple

1/ tu travail sur ton pc ou sur un serveur web (en ligne chez un hébergeur quelconque).
2/ si c'est sur ton PC quel est le chemin réelle du fichier ( par exemple c:\wamp\www\fichier_images_aleatoires.php)
3/ même chose sur le serveur distant mais il faut regarder sur ce serveur le chemin
4/ il faut mettre le chemin du fichier sur le PC où il se trouve en partant du répertoire de base du site web (en général www) donc dans mon exemple cela ferais simplement include('fichier_images_aleatoires.php');

a vu de nez je pense que include('/home/XXXX/www/fichier_image_aleatoires.php') en remplaçant xxxx par les infos que tu a enlevée devrait résoudre ton problème.

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 18 Messages

08 nov. 2010, 02:58

pour répondre à tes questions:
1/ je travaille sur serveur via envoi FileZilla... hébergement: firstheberg qui a tout, mais moi je n'utilisais jusqu’à maintenant que le xhtml
2/ donc pas du local
3/ a ton autre question, chemin serveur /www/NEWSITE/
4/ je test comme tu dis

j'ai ouvert le MSQL pour les besoins de faire une base de donnée future, mais pour l'instant ça en reste là... pas le temps de m'y mettre... j'ai déjà passé ses 2 derniers moi à apprendre le xhtml et css pour réaliser mon site qui est sur la finalisation... et j'avoue avoir l'esprit totalement saturé à l'heure actuelle..
mon hébergeur me permet le langage php

MAIS LA QUESTION EN FOUILLANT LE NET.... dans une page tout en html et css peut-on mettre un include () qui est du langage php envoyant sur un fichier .php,
je trouve des NON

car c'est mon cas, vu que cette info va se trouver sur l'intégralité des pages de mon site soit 102 dans l'immédiat... hors de question d'avoir un fichier à corriger chaque mois manuellement, d'ou le fichier php que je veux inclure dans le cartouche réservé
Modifié en dernier par elodoriel le 08 nov. 2010, 03:47, modifié 1 fois.

Eléphanteau du PHP | 18 Messages

08 nov. 2010, 03:15

je viens de tester dans ma page html la mise en place du code
<div id="produitnouveaute01">
     <?php include('XXXX/www/NEWSITE/coupscoeurs02.php') ?>
</div>
si devant l'adresse je met /home/
j'ai ce warning :

Code : Tout sélectionner

Parse error: syntax error, unexpected T_STRING, expecting ')' in /home/XXXX/www/NEWSITE/coupscoeurs02.php on line 4
si j'enleve / ou /home même warning :

Code : Tout sélectionner

warning (include_path='.:/usr/share/php5') in /home/XXXX/www/NEWSITE/page.html on line 156
je dois charger un fichier :?: mettre en place une base php5 :?:

j'en reviens toujours à me demander si un code d'appel fichier.php dans une page xhtml est autorisé et si c'est cette forme :?:
8-| le programme qui se semble pas fonctionner de son coté est-il la cause de toute ça :?:

je suis sensée avoir suite au programme, à chaque chargement de page une image aléatoire avec le lien qui emmene vers le descritif du produit en image (page elle en XHTML)