8792 sujets

Développement web côté serveur, CMS

Bonjour!
C'est visiblement la semaine des questions et remises en cause. Plus je parcours les posts de ce forum, plus je trouve d'info et de liens, plus je met en doute mon boulot! Smiley biggol
Mais c'est positif, j'ai l'impression d'avancer. Encore merci Raphael Smiley cligne et les autres, évidemment. Smiley confused
Bon après cette introduction liminaire, le vif du sujet du post Smiley sweatdrop .
J'ai écrit, corrigé et validé mes pages (une dizaine pour le moment) qui ne pèsent pas très lourd (moins que moi Smiley lol ) certes (entre 5 et 8k/page) sans les images (de 3k à 55k -.gif inside-).
J'ai dans ces pages, au moins un header, un menu, un footer, et des nouvelles neuves du monde de l'intérieur de chez nous (aka "news"). Sûrement débile de m'en rendre compte après la bataille, j'ai réalisé que de mettre tout ce fratras à jour dans mes dix pages, ça n'allait pas être simple Smiley confus !
Après la lecture de "Optimiser son site : CSS et Include PHP" qui m'a titillé, je me demande (sachant que je n'y connait absolument rien en php) ce qu'implique l'utilisation de ce language dans mes pages, et du coup, d'externaliser le code en ayant un menu.htm, news.htm, etc...
Faut-il forcément un serveur en local pour interpréter le php? (genre apache de ce que j'ai compris... )
Faut-il forcément une base MySQL ou le code se limite-t-il à "<? include(mapage.htm); ?>" dans ma page XHTML? J'avoue avoir testé pour le moment cette solution qui me paraît simpliste; sans succès, j'attends vos réponses à ces questions basiques pour me lancer plus à fond. Smiley murf

Désolé de m'être un peu trop répandu et merci de m'avoir lu! Smiley cligne
Modifié par citronized (28 Feb 2005 - 11:21)
Le PHP est un langage coté serveur. Il permet une quantité quasi-infinie de choses. Pour ça, voir la documentation officielle. Ce langage nécessite un programme qui l'exécute, Apache par exemple. Cette infrastructure est proposée par passablement d'hébergeurs (de loin pas tous gratuits). PHPNet, Free, etc. Il faut savoir que la dernière version (5) permet une programmation orientée objet très poussée. Cette version pose certains (petits à mon sens) problèmes de compatibilité. Par conséquent, plusieurs hébergeurs restent à une version 4, qui reste tout à fait utilisable pour le commun des mortels.

Une base MySQL est en fait un fichier. On peut y stocker plein de choses multiples et diverses (texte, dates, chiffres, etc). PHP permet plus ou moins facilement de s'y connecter et d'extraire les informations contenues dans la base. Après, on peut stocker soit des contenus de pages, des noms d'utilisateurs, des mots de passe, des reçettes de cuisine, etc.

Si ton site a un menu (et/ou d'autres choses, copyright, titre) qui se retrouve sur plusieurs (toutes) les pages, il peut être avantageux d'utiliser le PHP (au lieu d'un "Remplaçer tout ..." dans un éditeur de texte) pour ça. C'est surtout pour la facilité d'utilisation. Cela permet effectivement d'"externaliser" du code.

Si tu as du PHP sur ton hébergement, tu peux tester une page essai.php (l'extension est conseillée, même si tu pourrais l'appeller essai.brocolis Smiley murf ) qui contiendrait:
[#red][b]<?php[/b][/#]
    [#darkblue]echo [#blue]'Hello World !'[/#];[/#]
[#red][b]?>[/b][/#]
Si un appel à cette page (distante) ne te donne rien (ou le code ci-dessus en regardant la source), c'est que n'as pas la possibilité d'exécuter du PHP.

Maintenant, pour répondre à tes questions:
citronized a écrit :
Faut-il forcément un serveur en local pour interpréter le php?
Non. Il faut que ton hébergeur te permette d'éxécuter du PHP. EasyPHP permet de faire des tests en local sous Windows.
citronized a écrit :
Faut-il forcément une base MySQL (...) ?
Pour une utilisation basique comme un site de dix pages, ce n'est pas indispensable, mais ça peut être utile. Cela risque de te demander plus de travail que la réponse à la question suivante Smiley murf !
citronized a écrit :
(...) le code se limite-t-il à "<? include(mapage.htm); ?>" dans ma page XHTML?
Oui. Il est utile de se référer à la référence de la fonction include(). include() ne fait qu'une chose: il met le contenu de la page cible à la place de l'appel de la fonction.

Exemple:
index.php
[#black]Ma page appelante. DÉBUT:
[#red][b]<?php[/b][/#] [#black][b]include[/b]([#blue]'contenu.dat'[/#]);[/#] [#red][b]?>[/b][/#]
FIN[/#]

contenu.dat
(pourquoi *.dat ? Tout simplement que, parce que, dans une application plus sérieuse que cet exemple, ton fichier de contenu ne sera pas une page HTML valide. Elle ne "mérite" pas l'extension *.htm)
[#black]CONTENU[/#]

http://www.exemple.com/index.php
[#black]Ma page appelante. DÉBUT:
CONTENU
FIN[/#]

(je ne sais pas s'il y a un retour de ligne ou pas, à tester. Peut peut-être donner (...) CONTENUFIN)

Il existe une autre solution que le PHP, mais qui me semble passablement contraignante. La balise object : Inclure un fichier dans une page HTML sans utiliser <iframe>.

Voilà, en espérant avoir répondu suffisemment à tes questions, bonne chance Smiley langue !

@+, HoPHP
Modifié par HoPHP (28 Feb 2005 - 12:11)
Smiley eek Merci pour cette réponse détaillée, je ne m'attendais pas à tant!
Je viens à l'instant de tester sur mon serveur avec l'exemple que tu m'as donné, pas de problème notoire, il intègre bien le contenu entre Début et Fin Smiley cligne .
Je pense que je tomberais encore sur quelques joyeusetés avant d'avoir mon site complètement includé avec des fichiers en *.brocoli et *.marmotte Smiley biggol
Plus j'avance moins vite dans mon boulot, moins j'avance plus lentement. Merci HoPHP Smiley murf
Une petite question subsidiaire (j'abuse? Smiley sweatdrop ), à partir de l'exemple fournis par HoPHP (utilisant index.php et contenu.dat): Quelle structure de pages mettre en place dans ce contexte?
Dans le cas simple d'un index à la racine et de pages s'y rapportant (dans un dossier éponyme), en adoptant la même structure que celle que je prévoyais, cela donne un index.php et des pageX.php contenant mes menu.htm (ou *.dat).
Est-il possible d'adopter une structure de type index.php et des pages de contenu (pageX.dat) s'intégrant dans celle-ci?
C'est plus, à mon sens une question de lien, non? C'est un peu confus là... Smiley confus
N'hésitez pas à me reprendre si vous ne saisissez pas, hein? Smiley cligne
Merci!
Bon, je m'y mets Smiley smile

Une structure switch permet de traiter différents cas pour une variable en entrée GET d'une page PHP.

Prenons un exemple:

index.php?page=essai ou index.php?page=un_autre_essai ou index.php?page=encore_un_autre_essai
[#red][b]<?php[/b][/#][#black]
[#purple]$page[/#] = @[#purple]$_GET[/#][[#blue]'page'[/#]]; [#lightgrey]/* Le "@" permet d'éviter une erreur au cas où la variable n'est pas fournie */[/#]
[b]switch[/b]([#purple]$page[/#])
{
	[b]case[/b] [#blue]'essai'[/#]:
		[#darkblue]echo[/#] [#blue]'Essai'[/#];
		[b]break[/b];
	[b]case[/b] [#blue]'un_autre_essai'[/#]:
		[#darkblue]echo[/#] [#blue]'Deuxième essai'[/#];
		[b]break[/b];
	[b]case[/b] [#blue]'encore_un_autre_essai'[/#]:
		[#darkblue]echo[/#] [#blue]'Troisième essai'[/#];
		[b]break[/b];
	[b]default[/b]:
		[#darkblue]echo[/#] [#blue]'Erreur 404'[/#];
		[b]break[/b];
}[/#]
[#red][b]?>[/b][/#]


=> Modos. Je ne peux pas jouer avec mes couleurs assez longtemps, je change de post! Smiley sweatdrop
Pour des raisons (j'allais dire évidentes) de sécurité, il est STRICTEMENT INTERDIT de faire quelque chose comme ça (je le cite en exemple, mais il ne faut pas le faire !)
[#red][b]<?php[/b][/#][#black]
[#lightgrey]/* !! INTERDIT !! */[/#]
[#purple]$page[/#] = @[#purple]$_GET[/#][[#blue]'essai'[/#]];
[b]include[/b]([#purple]$page[/#]);
[#lightgrey]/* !! INTERDIT !! */[/#]
[/#][#red][b]?>[/b][/#]
Pourquoi ?
Si j'appelle ma page avec index.php?essai=../../mes_infos_de_sécurité_mysql.dat, elles seront affichées ! Autre exemple: index.php?essai=http://www.un_site_pirate.com/un_script_indésirable. Bref, il est INDISPENSABLE de ne se baser que sur du connu. Il faut passer par une structure switch ou une série de if, afin de ne laisser aucune faille. Par contre, il est autorisé de créer une page index.php générique. Pour ça, remplaçer les "echo" par des "includes" dans mon exemple ci-dessus.

Maintenant, au niveau sémantique, il est préférable de générer des "title", "meta", etc spécifiques à chaque page.

Un bon conseil: Apprends le PHP ou utilise un CMS (DotClear, Plume ou autre)! Cela permet tant de choses qu'on en sort pas Smiley murf !

@+, HoPHP
Modifié par HoPHP (28 Feb 2005 - 21:17)
Encore merci HoPHP Smiley cligne
Suis loin d'avoir tout saisi, mais je n'ai pas envie d'encombrer le forum avec des questions relatives au PHP.
Qu'existe-t-il comme forum (francophone de préférence) traitant de ce language?
Bon, OK, on va arrêter avec tout ce PHP, ce n'est pas le lieu Smiley lol

Quelques sites de "référence" (liste à compléter):

. Le site du Zér0 - PHP
. PHPDébutant
. La documentation officielle annotée de PHP, sur Nexen.net !important et sa bibliothèque de scripts
. PEAR - PHP Extension and Application Repository - Une bibliothèque de classes. Environnement de travail très puissant.
. EasyPHP - Serveur Apache, bases MySQL en local sous Windows
. PHPScripts-fr - Bibliothèque de scripts

Je propose que si d'autres aficionados du PHP ont des sites de référence à proposer, ils me MP et je complète la liste ici, pour éviter une dispersion des informations. Qu'en pense Raphaël ?

@+, HoPHP
Sans aller jusqu'à créer dans Alsa un forum PHP à part entière (ce qui serait hors de propos), il me semble de plus en plus indispensable de tenir compte du rôle des scripts serveurs dans un simple site standard XHTML CSS (la gestion des divers informations spécifiées via HTTP sur le type de contenu, la langue, etc. sont un bon exemple).

Pourquoi ne pas ouvrir un forum dédié à ces questions, dont le champ devra évidemment être bien délimité ? Du type "les standards côté serveur" ?
Laurent Denis a écrit :

Pourquoi ne pas ouvrir un forum dédié à ces questions, dont le champ devra évidemment être bien délimité ? Du type "les standards côté serveur" ?

Ça serait effectivement très intéressant à mon avis Smiley lol

D'autant plus qu'en ce moment, j'ai les deux pieds dedans (Darwin, apache, php, mysql) Smiley langue
Modifié par Stephan (01 Mar 2005 - 20:46)
Au passage, ce serait l'occasion d'enrichir ce forum de quelques intervenants côté .Net... qui va être un terrain stratégique pour les standards sous peu Smiley cligne
Administrateur
@Laurent > cela parait tout à fait pertinent en effet.
Mais comment éviter de tomber dans le piège du "salon PHP" classique ?
Avec des modérateurs à poigne de fer dans un gant de velours, ce qui ne manque pas ici (au passage, ils font un très bon boulot, et cela mérite d'être dit) Smiley cligne

Je crois que le problème est à peu près identique à celui du forum Ergonomie et esthétique générale, demandes d'avis et de critiques qui fixe bien la règle du jeu: Salon dédié au design web, aux projets finalisés et conçus selon les normes de validité et de qualité en général : il y a peu de dérives et de sites non soucieux des standards, non ?

Quelque-chose du genre: "seules les questions relatives aux scripts serveurs ET aux standards Web seront traitées" ?

Le problème intéressant, justement, c'est que le champ de ces questions n'a pas encore été recensé simplement. L'i18n du W3C en donne une bonne idée. Opquast également.

Avec la démocratisation des scripts serveurs, et l'approfondissement des questions standards, c'est en tout cas un domaine essentiel.

Les amateurs de brocolis ne pourront pas manquer d'approuver, je suppose Smiley cligne
Modifié par Laurent Denis (01 Mar 2005 - 13:16)
Administrateur
Aussitôt dit, aussitôt fait Smiley cligne
Je vais en apprendre beaucoup dans ce nouveau salon Smiley smile
Modifié par Raphael (01 Mar 2005 - 13:44)
Smiley sweatdrop Et tout ça pour m... le php? Smiley murf
Merci Raphaël, c'est vrai que ce forum est très réactif et il sera, j'en suis sûr, intéressant de débattre de ce sujet dans cette -nouvelle- section.
D'autant plus que depuis hier, je suis pris par une espèce de phpsite aïgue qu'il faudra sûrement contenir Smiley langue !
Pour le moment, j'ai fait mes petites modifs avec des include, délais oblige.
Je reprendrais le code plus en profondeur une fois cette partie finalisée. J'ai déjà tellement de chose à améliorer Smiley biggol !

Si vous voulez vous en faire une idée plus précise, comme j'ai besoin de faire des tests depuis un serveur, j'ai uploadé les pages ici.
Les problèmes aussi gros que connus sont:
- JS emêchant toute naviguation, donc menu à re penser.
- Struture sûrement améliorable avec le php.
- Un graphisme un peu...light. Smiley lol

Merci pour tout!
Modifié par citronized (01 Mar 2005 - 16:28)
citronized a écrit :

Les problèmes aussi gros que connus sont:
- JS emêchant toute naviguation, donc menu à re penser.


Simple: supprimer l'effet "dynamique" sur le menu. Vu la brièveté de celui-ci, ce ne sont pas 4 liens de plus en pleine page qui l'alourdiront Smiley cligne

Sinon, pour ce type de site d'entreprise, le référentiel qualité Opquast est une excellente grille de lecture des divers standards impliqués.
Je t'avouerais que j'ai déjà relevé ce lien, mais que je n'ai pas encore pris le temps de lire les informations contenues dans le site d'Opquast. Smiley confused
Pour ce qui est du menu, il y a un peu plus que 4 liens, non? D'autant plus que mon entreprise souhaiterait assez de souplesse au niveau des maj. Je comprends completement leur point de vue, mais je n'ai pas encore trouvé de solution "accessible".
Quoi qu'il en soit, merci pour ton avis Laurent. Smiley cligne

@+