Page 1 sur 3

Utilisation de include() ?

Posté : 10 nov. 2008, 20:45
par le-coyote
Bonsoir tout le monde !

Déja je vous prie d'avance de m'excuser pour la question, mais je débute vraiment dans le php et j'aimerai faire une chose qui a l'air d'etre très simple mais que je n'arrive pas à réaliser...

J'ai tenté une recherche sur vos forums mais il y a tellement de messages que je n'ai pas trouvé...

J'aimerai avoir une page (videos.php) à la racine de mon site et appeler (à l'aide de la fonction "include"?) des pages situées dans un répertoire (/videos) en tapant une url du style "http://monsite.com/videos.php?video=1"

mes pages auraient comme nom : "1.htm", "2.htm", etc etc...

Je ne sais pas si vous me suivez... En tout cas d'avance merci pour votre aide !

Posté : 10 nov. 2008, 20:50
par sylvaing26
euh fo recuperer le nom de ta page avec les numero à l'aide de basename je pense, ensuite tu la coupe à partir de l'extension pour extraire le chiffre et definir donc la variable $numeropage et ensuite include("video.php?video=$numerodepage");
Ca serai bien que tu nous donne ce que tu as commencé à coder pour t'aider

Posté : 10 nov. 2008, 21:16
par le-coyote
euh fo recuperer le nom de ta page avec les numero à l'aide de basename je pense, ensuite tu la coupe à partir de l'extension pour extraire le chiffre et definir donc la variable $numeropage et ensuite include("video.php?video=$numerodepage");
Ca serai bien que tu nous donne ce que tu as commencé à coder pour t'aider
en fait je voudrais appeler les pages dans celle ci :

http://www.puissance-mgd.com/videos.php

avec dans l'url : "videos.php?video=1" par exemple, 1.html correspondant à ma vidéo 1, et ainsi de suite...

Posté : 10 nov. 2008, 21:54
par sylvaing26
eh ba alors rien de plus simple
$numeropage = $_GET['video'];
include ("/videos/$numeropage.html");

Posté : 10 nov. 2008, 21:56
par chrislabricole
En fait, l'intérêt du PHP c'est de ne plus avoir plein plein de page html, mais une seule en PHP, si tu fais une page PHP pour qu'elle appelle d'autre fichiers en HTML, ça n'a pas trop d'intérêt...

Après, ça dépend de se que tu veux faire ;)

Peux-tu nous mettre par exemple le code de 01.html et 02.html, il y a t-il beaucoup beaucoup de différences ?

Car c'est avec PHP que l'on va pouvoir changer seulement la partie qui varie, de façon à ne pas avoir plein de fichiers ;)

EDIT:
$numeropage = $_GET['video'];
include ("/videos/$numeropage.html");
mauvais exemple je pense... :/
$numeropage = intval($_GET['video']);
if( @!include('/videos/'.$numeropage.'.html') ){
      echo 'Erreur lors de l\'inclusion de la page';
}
C'est beaucoup mieux, ça fait prendre les bonnes habitudes aux nouveaux :)
Le arobase signifie de ne pas afficher l'erreur si il y en a une, dans ce cas là, on l'affiche pas puisque on dit un message.
le point d'exclamation dit d'inverser le TRUE et le FALSE (en gros) car si le fichier est bien inclus, elle renvoi TRUE, et si il y a une erreur, elle renvoi FALSE...
Donc si il y a une erreur, ne pas l'afficher mais afficher "Erreur lors de l'inclusion de la page" :P

Posté : 10 nov. 2008, 23:08
par le-coyote
En fait, l'intérêt du PHP c'est de ne plus avoir plein plein de page html, mais une seule en PHP, si tu fais une page PHP pour qu'elle appelle d'autre fichiers en HTML, ça n'a pas trop d'intérêt...

Après, ça dépend de se que tu veux faire ;)

Peux-tu nous mettre par exemple le code de 01.html et 02.html, il y a t-il beaucoup beaucoup de différences ?

Car c'est avec PHP que l'on va pouvoir changer seulement la partie qui varie, de façon à ne pas avoir plein de fichiers ;)
justement, c'est une page avec des vidéos du style youtube ou dailymotion... Donc ce qui changerait : le titre de la vidéo, le code d'embed de la video elle même, et un petit commentaire... En fait dans mon fichier d'exemple, la seule chose qui changerait ce serait "LE TITRE DE LA VIDEO" et "Contenu de la page ici"... Je pense que je suis obligé de passer par des fichiers html, mais cela ne me dérange pas trop en fait !

Je vais tester tout ça je vous tiens au courant ! merci pour tout déja !

Posté : 10 nov. 2008, 23:21
par sylvaing26
pourquoi ne pas stocker la description et le titre la video avec son lien ds une base de données ?

Posté : 10 nov. 2008, 23:41
par le-coyote
bon j'ai une erreur (ça ne m'étonne qu'à moitié)

http://www.puissance-mgd.com/videos.php?numeropage=1

et le bout de code que j'ai inséré dans mon fichier :

Code : Tout sélectionner

$numeropage = intval($_GET['video']); if( @!include('../../../videos/'.$numeropage.'.html') ){ echo 'Erreur lors de l\'inclusion de la page'; }
j'ai du louper quelque chose :oops: j'ai un doute car mon fichier php est à la racine du site, mais est lié à un fichier "template" stocké ici : /styles/prosilver/template/videos_body.html

Les modifs que j'ai apporté on été faites sur ce fichier, et non le fichier php à la racine... D'ou les /../ que j'ai rajouté

EDIT :
pourquoi ne pas stocker la description et le titre la video avec son lien ds une base de données ?
Vous voyez déja comment je galère pour appliquer un simple code... Alors une base de donnée... :cry:

Posté : 10 nov. 2008, 23:45
par sylvaing26
normal le code c'est
$numeropage = intval($_GET['video']); 
if( @!include('/videos/'.$numeropage.'.html') ){ 
      echo 'Erreur lors de l\'inclusion de la page'; 
} 
donc ta page s'ecrit http://www.puissance-mgd.com/videos.php?video=1
et lorsqu tu met ces code oublie pas de les mettre entre les balises php <?php
le code
?>

Posté : 10 nov. 2008, 23:47
par le-coyote
normal le code c'est
$numeropage = intval($_GET['video']); 
if( @!include('/videos/'.$numeropage.'.html') ){ 
      echo 'Erreur lors de l\'inclusion de la page'; 
} 
donc ta page s'ecrit http://www.puissance-mgd.com/videos.php?video=1
oups autant pour moi... Mais ça ne marche pas pour autant :oops:

pour info, j'ai édité mon post au dessus pour plus d'infos ;)

Posté : 10 nov. 2008, 23:49
par sylvaing26
Lorsqu'on fait appel a du code php dans une page on les mets entre <?php et ?> sinon il croi que c'est du code html
<?php
$numeropage = intval($_GET['video']);  
if( @!include('/videos/'.$numeropage.'.html') ){  
      echo 'Erreur lors de l\'inclusion de la page';  
} 
?>

Posté : 10 nov. 2008, 23:53
par le-coyote
Lorsqu'on fait appel a du code php dans une page on les mets entre <?php et ?> sinon il croi que c'est du code html
Ah ben j'aurai appris quelque chose ce soir :)

voici mon code désormais :
<?php
$numeropage = intval($_GET['video']); 
if( @!include('../../../videos/'.$numeropage.'.html') ){ 
      echo 'Erreur lors de l\'inclusion de la page'; 
}
?>
Plus de message d'erreur, mais pas de vidéo non plus... et j'ai un code "erreur sur la page" dans mon navigateur

Désolé encore pour mon ignorance et merci pour votre patience...

Posté : 10 nov. 2008, 23:55
par sylvaing26
[quote="le-coyote ] ../../../videos/'.$numeropage.'.html' [/quote]
euh pourqoui tous ces ../ ? enleve les pr voir

Posté : 10 nov. 2008, 23:59
par le-coyote
euh pourqoui tous ces ../ ? enleve les pr voir
j'ai rajouté ces /../ parce qu'en fait mon fichier php est à la racine du site, mais est lié à un fichier "template" stocké ici : /styles/prosilver/template/videos_body.html et c'est ce fichier videos_body.html ou je colle mon code

mon dossier /videos/ est quant à lui à la racine du serveur.

J'ai enlevé les "/../" pour ne laisser que /videos/ mais toujours pareil...

Posté : 11 nov. 2008, 00:01
par sylvaing26
essaire de rajouter un ligne avec ecrit echo $numeropage;
Ensuite il va t'ecrire le lien vers ta video. copie là et colle ds ton navigateur pour voir si finalement c'est le bon lien vers la page concernée