Utilisation de include() ?

Eléphanteau du PHP | 16 Messages

10 nov. 2008, 20:45

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 !

Mammouth du PHP | 686 Messages

10 nov. 2008, 20:50

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

Eléphanteau du PHP | 16 Messages

10 nov. 2008, 21:16

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...

Mammouth du PHP | 686 Messages

10 nov. 2008, 21:54

eh ba alors rien de plus simple
$numeropage = $_GET['video'];
include ("/videos/$numeropage.html");

Mammouth du PHP | 959 Messages

10 nov. 2008, 21:56

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

Eléphanteau du PHP | 16 Messages

10 nov. 2008, 23:08

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 !

Mammouth du PHP | 686 Messages

10 nov. 2008, 23:21

pourquoi ne pas stocker la description et le titre la video avec son lien ds une base de données ?

Eléphanteau du PHP | 16 Messages

10 nov. 2008, 23:41

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:
Modifié en dernier par le-coyote le 10 nov. 2008, 23:45, modifié 1 fois.

Mammouth du PHP | 686 Messages

10 nov. 2008, 23:45

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
?>
Modifié en dernier par sylvaing26 le 10 nov. 2008, 23:47, modifié 1 fois.

Eléphanteau du PHP | 16 Messages

10 nov. 2008, 23:47

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 ;)

Mammouth du PHP | 686 Messages

10 nov. 2008, 23:49

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';  
} 
?>

Eléphanteau du PHP | 16 Messages

10 nov. 2008, 23:53

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...

Mammouth du PHP | 686 Messages

10 nov. 2008, 23:55

[quote="le-coyote ] ../../../videos/'.$numeropage.'.html' [/quote]
euh pourqoui tous ces ../ ? enleve les pr voir

Eléphanteau du PHP | 16 Messages

10 nov. 2008, 23:59

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...

Mammouth du PHP | 686 Messages

11 nov. 2008, 00:01

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