Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1118 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Passage de pages en pages

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Passage de pages en pages

n°1726456
PacoDL
Posté le 29-04-2008 à 18:00:27  profilanswer
 

Salut @ tous,
 
Il me manque certaines connaissances en php bien que j'arrive à faire quelque chose. mais je me soigne (ici, en l'occurence...).
Je ne sais pas basculer entre mes sections d'une façon propre, j'ai tendance à utilser des include à la fin de mes fichiers php faisant des opérations et ce n'est certainement pas bien fait...
 
Par exemple :
- J'affiche une news via l'url "index.php?page=lirenews"
- Sur cette page, j'ai un bouton supprimer la news qui appelle "index.php?page=supprimernews&id=1"
 
Dans ce dernier cas, le fichier supprimernews.php (inclus par index.php évidemment) supprime la news dont l'id est 1 et le seul moyen de ne pas avoir de page blanche est de faire par exemple un include('home.php') à la fin.
 
Résultat : après l'opération, l'url afficher reste "index.php?page=supprimernews&id=1" au lieu, d'avoir par exemple "index.php?page=home"
 
Y a t-il une méthode plus élégante ? Pour basculer directement sur l'url "index.php?page=home"

mood
Publicité
Posté le 29-04-2008 à 18:00:27  profilanswer
 

n°1726458
sielfried
Posté le 29-04-2008 à 18:01:28  profilanswer
 

header('Location: ...');


Message édité par sielfried le 29-04-2008 à 18:02:01

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1726544
PacoDL
Posté le 29-04-2008 à 20:39:32  profilanswer
 

Si je remplace mon include('toto.php'); par header('Location:toto.php');, j'ai un écran blanc avec toujours la même url (il n'y va pas du tout)...

n°1726553
sielfried
Posté le 29-04-2008 à 20:56:26  profilanswer
 

PacoDL a écrit :

Si je remplace mon include('toto.php'); par header('Location:toto.php');, j'ai un écran blanc avec toujours la même url (il n'y va pas du tout)...


 
- il ne doit y avoir aucun affichage avant ;
- l'url est censée être absolue (même si ça marche avec du relatif en général), voir la doc pour un exemple concret ;
- passe ton error_reporting sur E_ALL, juste au cas où...


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1726565
PacoDL
Posté le 29-04-2008 à 21:32:24  profilanswer
 

le problème mon fichier index.php est l'unique point d'entrée de mon site qui inclus de base le haut et le pied de la page :
 
<?
include ('haut.php');
 
switch(@$_GET['page'])
{
case "lirenews":
include ('lirenews.php')
break;
 
case "supprimernews":
include ('supprimernews.php')
break;
 
case "default":
include ('home.php')
break;
}
 
include ('pied.php');
?>
 
Comme cela, je ne vois pas trop comment ne pas faire l'affichage du haut ou du pied de la page, vous avez une autre architecture à me proposer ?
 
Répéter des include('haut.php') et include('bas.php') uniquement dans les cas où je veux faire de l'affichage ne semble pas tenable ni propre du tout...
 
Si l'url marche en relatif, pourquoi changer (l'absolu est trop contraignant) ?
 
Je n'ai pas compris ta dernière remarque, qu'est-ce que mon error_reporting et comment faire ta manip ?

n°1726570
sielfried
Posté le 29-04-2008 à 21:44:35  profilanswer
 

PacoDL a écrit :

le problème mon fichier index.php est l'unique point d'entrée de mon site qui inclus de base le haut et le pied de la page :
 
<?
include ('haut.php');
 
switch(@$_GET['page'])
{
case "lirenews":
include ('lirenews.php')
break;
 
case "supprimernews":
include ('supprimernews.php')
break;
 
case "default":
include ('home.php')
break;
}
 
include ('pied.php');
?>
 
Comme cela, je ne vois pas trop comment ne pas faire l'affichage du haut ou du pied de la page, vous avez une autre architecture à me proposer ?


 
Ben fait un fichier php à part quand t'as une requête de ce genre à effectuer, et redirige sur l'index. :spamafote:
 
Petit conseil au passage, une suppression est censée être requêtée par POST (donc pas par l'URL). Je te recommande de changer cela.
 

Citation :

Si l'url marche en relatif, pourquoi changer (l'absolu est trop contraignant) ?


 
Parce que ça ne respecte pas le standard, donc c'est risqué pour le long terme (future version d'Apache ou je ne sais quoi). Il n'y a aucune garantie que ça marche comme ça, quoi.
 

Citation :

Je n'ai pas compris ta dernière remarque, qu'est-ce que mon error_reporting et comment faire ta manip ?


 
error_reporting(E_ALL) tout en haut.


Message édité par sielfried le 29-04-2008 à 21:45:02

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1726596
PacoDL
Posté le 29-04-2008 à 22:53:14  profilanswer
 

Merci pour tes réponses.
Ca marche en pointant directement vers le fichier seulement, l'intérêt de passer par un unique point d'entrée est de rendre complètement opaque l'existence d'autres fichiers.
Je peux ainsi changer le mécanisme de suppression comme je le souhaite, sachant que le point d'entrée restera le même ('index.php?page=suppr...').
 
Pourquoi dans un POST ? Un lien reste un lien, bouton ou non, non ?

Message cité 1 fois
Message édité par PacoDL le 29-04-2008 à 22:55:42
n°1726665
sielfried
Posté le 30-04-2008 à 07:31:15  profilanswer
 

PacoDL a écrit :

Merci pour tes réponses.
Ca marche en pointant directement vers le fichier seulement, l'intérêt de passer par un unique point d'entrée est de rendre complètement opaque l'existence d'autres fichiers.
Je peux ainsi changer le mécanisme de suppression comme je le souhaite, sachant que le point d'entrée restera le même ('index.php?page=suppr...').


 
Tu peux toujours passer outre la contrainte en utilisant ob_start() et ses potes (voir doc), histoire de mettre ton affichage dans un tampon au lieu de le sortir immédiatement. Pas certain que ce soit une bonne idée (lors d'une suppression t'auras encore des echo qui seront faits pour rien, même tamponnés).
 

Citation :

Pourquoi dans un POST ? Un lien reste un lien, bouton ou non, non ?


 
Une requête POST et une requête GET, du point de vue HTTP, ce n'est pas pareil non. Le POST est recommandé pour tout ce qui va avoir des effets de bord, typiquement la création, l'ajout, la modification ou la suppression d'une ou plusieurs entités. L'une des raisons est d'éviter de pouvoir justement matérialiser ces actions par une URL (ce qui est le cas quand ça passe par GET), par exemple en recommandant à Mme Michu d'aller "venir participer à un jeu concours" en cliquant sur le lien dans le mail. [:petrus75]


Message édité par sielfried le 30-04-2008 à 07:32:39

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Passage de pages en pages

 

Sujets relatifs
affichage resultats en PHP[PHP] System de template PHPbb3 de l'aide svp :)
Processus PHP?Comment faire un passage par valeur correct ?
[Résolu] Variables de Variables ...[PHP] Communication Html/PHP
De VRAIS cours de PHP, ça existe ??[Résolu 2 fois ;)] script PHP liste deroulante et base de données
[ PHP ] [ RESOLU ] Envoyer des mail hotmail avec php[ PHP ] str_replace avancé dans un $texte
Plus de sujets relatifs à : [PHP] Passage de pages en pages


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR