Comment créer une architecture propre et fonctionelle...

Comment créer une architecture propre et fonctionelle... - PHP - Programmation

Marsh Posté le 19-09-2005 à 19:59:28    

hello
 
je réalise en ce moment un site pour une petite entreprise... la partie design et prete, de même que la mise en page (HTML + CSS)
 
Comme j'y connais pas grand chose en PHP, avant pour avoir dans le navigateur une adresse de type index.php?page=contact je passais par un switch... mais apres m'etre un peu renseigné, il parait que c'est pourri comme solution :D donc je fais appel a vous :)  
 
voilà mes fichiers:
http://flasheur.free.fr/forum/arbo.png
 
le fichier index.php apelle header.inc-fr.php et content.inc.php (au milieu)
 
comment faire une architecture qui puisse gérer les 2 langues et les includes en fonction des langues ?
j'ai vu quelques tutos avec la variable $HTTP_ACCEPT_LANGUAGE mais ça donne rien, et je crois qu'on a plus le droit d'utiliser cette variable maintenant...
 
bon enfin, j'espère que vous comprenez ce que je veux faire :D  
 
merci d'avance :jap:

Reply

Marsh Posté le 19-09-2005 à 19:59:28   

Reply

Marsh Posté le 20-09-2005 à 08:46:54    

:bounce: up du matin
 
(chagrin ? [:totoz])

Reply

Marsh Posté le 20-09-2005 à 09:45:52    

Tu pourrais expliquer un peu plus comment c'est sensé fontionner?


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 20-09-2005 à 09:45:58    

Bah tu passes une variable dans l'url ou je sais pas ou "en" et "fr".
Apres :
if($mavar == 'en')
 include('mapage.en.php');
elseif (....)
 ...
 
A part ca, je me permet de faire remarquer que c'est à la limite du scandaleux qu'un mec qui fait un site de prod pour une entreprise ne maitrise absolument pas les outils qu'il doit utilser


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 20-09-2005 à 09:47:49    

Après ca dépend aussi des myens de l'entreprise....


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 20-09-2005 à 09:50:54    

bon g utilisé ça:
 

Code :
  1. <?php
  2.   // On définit le tableau contenant les pages autorisées
  3.   // ----------------------------------------------------
  4.   $pageOK = array('news' => 'news.php',
  5.                   'accueil' => 'accueil.php');
  6.   // On teste que le paramètre d'url existe et qu'il est bien autorisé
  7.   // -----------------------------------------------------------------
  8.   if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
  9.     include($pageOK[$_GET['page']]);   // Nous appelons le contenu central de la page
  10.   } else {
  11.     include('accueil.php');   // Page par défaut quant elle n'existe pas dans le tableau
  12.   }
  13. ?>

Reply

Marsh Posté le 20-09-2005 à 09:52:35    

esox_ch a écrit :

Bah tu passes une variable dans l'url ou je sais pas ou "en" et "fr".
Apres :
if($mavar == 'en')
 include('mapage.en.php');
elseif (....)
 ...
 
A part ca, je me permet de faire remarquer que c'est à la limite du scandaleux qu'un mec qui fait un site de prod pour une entreprise ne maitrise absolument pas les outils qu'il doit utilser


 
chui en contrat de qualif, g commencé y'a 2 semaines... j'apprend [:spamafote]

Message cité 1 fois
Message édité par Proov le 20-09-2005 à 09:58:56
Reply

Marsh Posté le 20-09-2005 à 10:00:35    

Et ca qu'est ce que tu en dis?

Code :
  1. <?
  2. if ( file_exists("pages/".$_GET["page"].".php" ) AND !ereg("[/|\\\\]",$_GET["page"]) ) {
  3.    include "pages/".$_GET["page"].".php";
  4. }else{
  5.    include "pages/index.php";
  6. }
  7. ?>

Message cité 1 fois
Message édité par dwogsi le 20-09-2005 à 10:00:51

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 20-09-2005 à 10:02:01    

Proov a écrit :

chui en contrat de qualif, g commencé y'a 2 semaines... j'apprend [:spamafote]


 
C'est pas de ta faute, mais souvent les entreprises preferent  prendre un mec qui a juste le "webdev pour les nuls" et le payer 3x rien que de faire recourt a qqn de serieu... Et le jour ou le site se fait hacker et l'entreprise y laisse des plumes, elle tappe sur le pauvre gars...


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 20-09-2005 à 10:04:37    

Moi mon entreprise à trouvée la bonne solution, j'ai plein de formations qui ne donnent pas de diplôme, donc je suis sous payé (lol) mais ca se passe bien... ...pour eux! Ras le cul en ce qui me concerne!


Message édité par dwogsi le 20-09-2005 à 10:05:18

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 20-09-2005 à 10:04:37   

Reply

Marsh Posté le 20-09-2005 à 10:06:06    

dwogsi a écrit :

Et ca qu'est ce que tu en dis?

Code :
  1. <?
  2. if ( file_exists("pages/".$_GET["page"].".php" ) AND !ereg("[/|\\\\]",$_GET["page"]) ) {
  3.    include "pages/".$_GET["page"].".php";
  4. }else{
  5.    include "pages/index.php";
  6. }
  7. ?>



 
merci je vais potasser, je viens d'apprendre que $_GET ça servait a récupérer la variable d'une url :D  
 

esox_ch a écrit :

C'est pas de ta faute, mais souvent les entreprises preferent  prendre un mec qui a juste le "webdev pour les nuls" et le payer 3x rien que de faire recourt a qqn de serieu... Et le jour ou le site se fait hacker et l'entreprise y laisse des plumes, elle tappe sur le pauvre gars...


 
ouai c'est vrai... là chui a 80% du smic, mais je vais vais faire un BTS IG et chui motivé... j'ai édja des bonnes bases en design, HTML et CSS mais hélas pas en PHP :(

Reply

Marsh Posté le 20-09-2005 à 10:08:15    

Et en compta?
Suis en BTS IG aussi :d


Message édité par dwogsi le 20-09-2005 à 10:08:52

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 20-09-2005 à 10:14:51    

on peut te conseiller le siteduzero pour PHP, en tout cas moi ça m'a bien servi :D

Reply

Marsh Posté le 20-09-2005 à 10:20:57    

pitié pas de compta... :D  
 
moi chui en bts ig option arle :)  

Reply

Marsh Posté le 20-09-2005 à 10:24:23    

Et tu vas me dire que t'a pas de compta?


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 20-09-2005 à 10:44:05    

ché pas chui pa encoer rentré http://forum-images.hardware.fr/icones/message/icon10.gif
 
j'pense que oui normalement :cry: je déteste ça :cry:

Reply

Marsh Posté le 20-09-2005 à 10:55:08    

Ouai il me semblait bien aussi lol
A mon avis tu va en manger, comme tout le monde.
Mais si t'en a jamais fais, bonne chance :d


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 20-09-2005 à 10:57:55    

j'ai déja fait de l'eco dans un autre bts (communiaction visuelle) g bien galéré...
 
 
pour en revenir au sujet, je vais me faire mon script plutot que de copier les autres :D  
 
pour l'instant j'ai fait ça:

Code :
  1. $page = $_GET['page']
  2. $lang = $_GET['lang']


 
ça commence bien hein ? :D

Reply

Marsh Posté le 20-09-2005 à 11:01:17    

Ouai mais ait toujours un contrôl sur les variables!
Très important selon l'utilisation que tu en fait.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 20-09-2005 à 11:11:12    

[:figti] si tu le dis :D

Reply

Marsh Posté le 20-09-2005 à 11:14:15    

$page = (isset($_GET['page'])) ? $_GET['page'] : "";
$lang = (isset($_GET['lang'])) ? $_GET['lang'] : "fr";
 

Reply

Marsh Posté le 20-09-2005 à 11:25:48    

A mon avis quand quelqu'un débute en php mieux vaut lui donner la syntaxe la plus simple et pas forcément la plus courte, c'est plus clair me semble-t-il, non?


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 20-09-2005 à 11:43:07    

ben j'aime bien les conditions simple comme celle ci :
 
$mavariable = (condition) ? valeur si vrai : valeur si faux;

Reply

Marsh Posté le 20-09-2005 à 14:02:49    

merci Gatsusat !! c'est beaucoup mieux :love:  
 
maintenant il me reste 2 choses à faire:
- détecter la langue (je vais essayer de me débrouiller)
- un petite chose technique que je vais m'empresser de vous expliquer ci dessous :D  
 
 
Comment fait on pour récupérer ce qu'il ya marqué dans l'url et changer le lang=fr en lang=en
 
par exemple, quand je clique sur le petit drapeau "US" j'aimerais qu'il change juste le fr en en
 
 
merci :jap:

Reply

Marsh Posté le 20-09-2005 à 14:06:59    

Bah un nouveau lien avec lang=en


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 20-09-2005 à 14:34:34    

gatsusat a écrit :

ben j'aime bien les conditions simple comme celle ci :
 
$mavariable = (condition) ? valeur si vrai : valeur si faux;


 
C'est cool pour les petits tests .. Mais ce matin je suis tombé sur un script fait par un collegue ... il y a des structures de ce genre qui font 3-4 lignes ... niveau lisibilité .. je fous un 0


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 20-09-2005 à 14:59:10    

je viens de faire un truc qui détecte automatiquement la langue... comme ceci:
 
chargé dans index.php
 

$page = (isset($_GET['page'])) ? $_GET['page'] : "";;
 $lang_nav = explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
 $lang = $lang_nav[0];
 
 $page_affich = "content/".$lang."/".$page.".inc-".$lang.".php";


 
puis mes liens ont la forme

index.php?page=accueil&lang=<? echo($lang); ?>


 
on peut changer la langue manuellement avec ce systeme ?

Message cité 1 fois
Message édité par Proov le 20-09-2005 à 14:59:31
Reply

Marsh Posté le 20-09-2005 à 15:07:46    

Pas a moins de modifier directement dans le navigateur.  
A part ca il faut que tu fasses un  
if($lang_nav == null)
 $lang_nav = array('fr');
 
Faut juste que tu controles si explode retourne null ou un array vide dans le cas ou le 2ème param soit null (ou vide)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 20-09-2005 à 15:12:22    

Proov a écrit :

je viens de faire un truc qui détecte automatiquement la langue... comme ceci:
 
chargé dans index.php
 

$page = (isset($_GET['page'])) ? $_GET['page'] : "";;
 $lang_nav = explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
 $lang = $lang_nav[0];
 
 $page_affich = "content/".$lang."/".$page.".inc-".$lang.".php";


 
puis mes liens ont la forme

index.php?page=accueil&lang=<? echo($lang); ?>


 
on peut changer la langue manuellement avec ce systeme ?


 
Tu fais quoi après?
include $page_affich;
?

Message cité 1 fois
Message édité par dwogsi le 20-09-2005 à 15:12:42

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 20-09-2005 à 15:29:15    

esox_ch a écrit :

C'est cool pour les petits tests .. Mais ce matin je suis tombé sur un script fait par un collegue ... il y a des structures de ce genre qui font 3-4 lignes ... niveau lisibilité .. je fous un 0


 
+1  
 
vaut mieux faire :  

Code :
  1. $page = (isset($_GET['page'])) ? $_GET['page'] : ""


que

Code :
  1. if (isset($_GET['page']) {
  2.   $page = $_GET['page'];
  3. }
  4. else {
  5.   $page = "";
  6. }


 
mais c'est clair que lorsque l'on atteins des structures de ce genre :  
if (mavar = 2)
then if (montruc = 3)
       else if (monbidule > 4)
       end if
else echo "bidule"
end if
 
qu'une condition condensée (je la fait pas j'ai la flème)
et je pense que c'est plutot réservé aux Hardcodeurs en C++ pour optimiser et accélérer leurs programmes

Reply

Marsh Posté le 20-09-2005 à 22:39:48    

dwogsi a écrit :

Tu fais quoi après?
include $page_affich;
?


 
oui :jap:

Reply

Marsh Posté le 21-09-2005 à 10:24:29    


Tu prends des risques!

Citation :

$page = (isset($_GET['page'])) ? $_GET['page'] : "";;
 $lang_nav = explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
 $lang = $lang_nav[0];
 
 $page_affich = "content/".$lang."/".$page.".inc-".$lang.".php";


 
Là si tu regarde bien tu laisse complétement le choix de la page à inclure! Ca présente un risque ton code, et c'est le cou classique.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 21-09-2005 à 18:20:00    

ouai mais dans une autre page (require var.php dans index) g utilisé un if file exist (le script donné en debut de topic)
 
pour l'instant ça marche pas trop mal :jap:

Reply

Marsh Posté le 22-09-2005 à 12:02:45    

Et tu utilise quelque chose comme ca aussi:
 
ereg("[/|\\]",$_GET["page"]);
 
?


Message édité par dwogsi le 22-09-2005 à 15:44:47

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed