IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Gérer plusieurs pages sur PHP


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut Gérer plusieurs pages sur PHP
    bonjour,

    je suis débutant en php, et aprés avoir lu quelques cours j'arrive à m'en sortir pour créer une page , mais j'ai des difficultés pour transiter entre plusieurs pages.

    moi j'utilise en ce moment des include, mais je ne sais pas si c'est une bonne idée, donc comment faites-vous generalement pour gerer les transitions entre plusieur pages ?

    autre chose aussi, j'utilise un serveur apache pour afficher les contenu php, mais lorsque je clique sur un bouton et qu'il me renvois vers une autre page par exemple, j'arrive pas à faire " page précédente" et en plus il n'affiche meme pas le lien complet du fichier.alors comment faire ?

    merci de bien vouloir m'aider.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Points : 85
    Points
    85
    Par défaut
    Je pense que pour faire les transitions entre page tu peux utiliser les header().

  3. #3
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    le header(location :...) consiste à faire une redirection vers une autre page.
    Qu'entend tu pas transition entre plusieurs pages?

    autre chose aussi, j'utilise un serveur apache pour afficher les contenu php, mais lorsque je clique sur un bouton et qu'il me renvois vers une autre page par exemple, j'arrive pas à faire " page précédente" et en plus il n'affiche meme pas le lien complet du fichier.alors comment faire ?
    Pourquoi ne pas utiliser javascript pour revenir à la page precedante ?
    Sinon en php, je crois qu'il y a la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_SERVER['HTTP_REFERER']
    qui te donnera la page d'où vient le visiteur

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par darrylsite Voir le message
    le header(location :...) consiste à faire une redirection vers une autre page.
    Qu'entend tu pas transition entre plusieurs pages?
    bein un site ne contient pas qu'une seule page il peut contenir une centaine, alors comment passer de l'une à l'autre.


    sinon pour revenir à la page précédente, pk aller jusqu'à javascript? le php ne le permet pas ? ( sans utiliser $_SERVER, mais avec le précédent du navigateur )

    merci.

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Redirection, navigation, formulaire, tout ca, ce sont des questions de HTTP/HTML.

    Le premier moyen de passer d'une page a une autre, c'est quand meme un simple lien non ?

    mais lorsque je clique sur un bouton et qu'il me renvois vers une autre page par exemple, j'arrive pas à faire " page précédente"
    Quand on veut faire "précédent" vers une page de formulaire, le navigateur demande en effet de resoumettre le formulaire.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Quand on veut faire "précédent" vers une page de formulaire, le navigateur demande en effet de resoumettre le formulaire.

    non c'est pas ca, le pb qu'il ne revient meme pas en arriere, comme ci c'etait la premiere page.

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourrais-tu nous montrer exactement ce que tu fais ?

  8. #8
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Peut-être que ta question relève aussi d'une autre problématique.

    Quand tu construis ton site avec des pages .php, qui effectuent des traitements divers et variés différents à chaque fichier php, le passage de l'un à l'autre (avec des variables PHP et tutti quanti) s'avère parfois complexe pour un débutant. Même le header location, on sait tous qu'il surprend pas mal au début et que celui qui n'a jamais été harcelé par un "Cannot modify header information - headers already sent by" me jette la première bière.

    Donc, il faudrait que tu précises ta question. Que tu saches et nous dises, telle page fait ci et ça, elle envoie telles variables ou bien elle initialise telles variables de session valables pour toutes les pages... Au passage, utilise les variables de session, ça va te changer la vie.

    Exemple, en deux lignes comment pérenniser une variable (transmise au départ par post dans cet exemple) sur toutes tes pages, sans plus te préoccuper de les refiler en paramètres hidden de page en page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php 
    session_start(); 
    $_SESSION['pseudo']=$_POST['pseudo'];
    ?>
    Et après, tu l'appelles direct quand tu veux sur n'importe quelle page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    session_start(); 
    echo $_SESSION['pseudo'];
    Cool non ? Et avec le bouton précédent du navigateur, tes variables SESSION resteront valides...

    Bref, dis-nous un peu ce que tu veux et on t'aiguillera mieux.

    Sinon, quand tu n'as pas 100 "pages" PHP, tu peux raisonner par écran utilisateur mais en mettant tout sur un seul fichier php, au moyen d'un switch : Voir ce petit paragraphe :

    L'utilisateur n'y voit que du feu : Il change de page... Mais toi, tu as recensé tous tes cas sur un seul fichier php...

    http://sylvie-vauthier.developpez.co...sion#LVIII-1-b

    Bon courage !

  9. #9
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    merci pour vos réponses,

    franchement je ne saurais pas vous donnez un code précis , car mes questions sont de façon générale.

    bon j'arrive à me debrouiller avec les include, j'utilise bien sur les sessions, et j'organise mon code en class, pour mieux gérer. car le but de ce topic c'est que je voulais savoir la logique à suivre pour ne pas faire un travail anarchique.

    merci pour tout si j'ai le moindre problème je posterais

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    1- pour grand débutant (et les autres !) :
    Les cours du Web
    http://web.developpez.com/cours/
    - bravo et merci à Sylvie Vauthier (Dendrite) :
    PHP : Le tutoriel pour grands débutants pressés
    http://sylvie-vauthier.developpez.co...rand-debutant/
    - Un bonjour à Yogui au passage :
    Cours de PHP 5
    http://g-rossolini.developpez.com/tutoriels/php/cours/

    2- ne sachant pas exactement ce que tu entends par "transition" entre les pages ... :
    - Lien simple (html) :
    <a href="lapage.php">aller a la page ...</a>
    - Redirection (PHP) : (a mettre AVANT tout code html !)
    <?php header('location: lapage.php'); ?>
    - Retour a la page précédente (javascript) : (quel que soit le nom de la page précédente)
    <a onclick="javascript:history.back()">retour</a>
    - ou (html) : (en indiquant le nom de la page précédente)
    <a href="lapageprecedente.php">retour</a>
    - Formulaire :
    <form method="POST" action="page-de-traitement.php">
    ...
    </form>

    (et comme le dit Dendrite, utiliser les variables de SESSION pour "garder en mémoire" les données transmises)

    3- la structure "classique" d'une page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php session_start();
    // --------------------------------
    // (du code PHP ...)
    // --------------------------------
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>...</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <!-- styles -->
    <link rel="stylesheet" href="main-styles.css" type="text/css" />
    <!-- scripts -->
    <script type="text/javascript">
    <!-- ..... -->
    </script>
    </head>
     
    <body>
    <div id="HEADER"><?php include("HEADER.php"); ?>
    <div id="MENU"><?php include("MENU.php"); ?>
    <div id="CONTENU">
    ....... (contenu principal de la page en HTML/PHP)
    </div>
    <div id="FOOTER"><?php include("FOOTER.php"); ?>
    </body>
     
    </html>
    Remarques :
    charset=iso-8859-1 ou iso-8859-15, ou utf-8 (en fonction du type de codage)

    HEADER.php, MENU.php et FOOTER.php ne doivent PAS contenir les balises
    <html><head>...</head><body> ni </body></html>
    (puisque déjà présentes dans la page principale)

    main-styles.css contient les styles CSS pour la page.
    Dernière modification par Invité ; 30/03/2009 à 07h03.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    j'ai un problème avec les sessions, je vous donne un exemple de comment j'utilise 2 pages l'une inclu dans l'autre.
    PAGE 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
    <?php
    session_start();
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    ...
    </head>
    <body>
    $_session['variable1']=$variable1;
    ...
    include 'page2.php'
    </body>
    </html>
    PAGE 2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
    <?php
    session_start();
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    ...
    </head>
    <body>
     
    echo $_session['variable1'];
    ...
    </body>
    </html>

    le message d'erreur dans ce cas est le suivant :

    Notice: A session had already been started - ignoring session_start() in PAGE2.php on line 2
    je comprends qu'avec le include il y a dupplication , mais lorsque je supprime le session_start dans la 2eme page, il ne reconnais plus les variables de session et j'ai les message suivant:

    Notice: Undefined variable: _SESSION in PAGE2.php on line ..

    donc comment vous expliquez ca ? merci

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    tu as ecris $_session au lieu de $_SESSION.

    Par ailleurs, il ne faut pas écrire les declarations HTML dans tes pages incluses, sinon tu les auras deux fois dans le document final.

  13. #13
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    pour SESSION je l'ai sur mon code, juste en recopiant ici j'ai oublié de la mettre en majuscul.

    sinon j'ai enlevé les declaration html et toujours meme problème

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    est-ce que tu peux nous montrer le code correct et le message d'erreur avec le numero de ligne ?

  15. #15
    Invité
    Invité(e)
    Par défaut
    Dans la PAGE 2 : NE PAS METTRE <?php session_start(); ?>
    car ta PAGE 2 est INCLUSE dans la PAGE 1 , qui a DEJA un <?php session_start(); ?>

    page2.php se resume donc a ca (!) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php 
    echo $_SESSION['variable1'];
    ?>
    page1.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     <?php session_start(); ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    ...
    </head>
    <body>
    <?php
    $variable1 = 'COUCOU !';
    $_SESSION['variable1']=$variable1;
    // ...
    include ('page2.php');
    ?>
    </body>
    </html>
    Dernière modification par Invité ; 01/04/2009 à 01h22.

  16. #16
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    oui je sais jreaux62 mais quand j'enlève la session_start de la 2ème page il ne reconnai pas les variables de session !

    sinon pour vous inserer le code ca serait un peu long, cet exemple illustre exactement ce que j'ai, avec le numero de ligne de l'erreur.

  17. #17
    Invité
    Invité(e)
    Par défaut
    page2.php est incluse dans page1.php.
    Normal que ca ne fonctionne pas si tu essaies de l'afficher directement.
    Tu ne peux pas l'executer sans passer par page1.php

    En executant page1.php, tu dois avoir le bon resultat !


    As-tu essayé mon petit exemple ?

  18. #18
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut instance de classe en session
    bonjour,

    voila j'ai un exemple de session ou ca ne marche pas quand je veux mettre une instance de classe en session, j'ai toujours l'erreur suivante

    Notice: main() [function.main]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "Affichage" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in C:\...\page2.php on line 4

    j'ai reprodui le meme modèle que celui que j'ai et voici le code pour illustrer l'erreur

    Affichage.class.php
    <?php
    Class Affichage

    {
    var $Texte;


    public function __construct($contenu)
    {
    $this->Texte=$contenu;
    }

    function Afficher() //permet de retourner la variable pour l'afficher
    {
    return $this->$Texte ;
    }


    }

    ?>

    page1.php

    <?php
    include_once 'Affichage.class.php';
    $classe= new Affichage('abcdefgh');
    session_start();
    $_SESSION['classe']=$classe;
    ?>
    <html>

    <a href='page2.php'>Clique</a>

    </html>
    page 2

    <?php
    session_start();
    $classe=$_SESSION['classe'];
    echo $classe->Afficher();
    ?>
    alors quelqu'un peu m'aider svp !!

  19. #19
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    problème résolu j'ai oublié de mettre include_once 'Affichage.class.php'; dans page2.php

    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] Affichage de plusieurs pages sur la même page
    Par laetiheu dans le forum Langage
    Réponses: 6
    Dernier message: 16/08/2007, 10h47
  2. Un formulaire en plusieurs pages en PHP/MySQL
    Par sagitarium dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 25/05/2006, 18h58
  3. comment gérer plusieurs locks sur une table?
    Par charluber dans le forum Oracle
    Réponses: 4
    Dernier message: 18/04/2006, 21h28
  4. plusieurs pages sur un seul lien
    Par Darkyl dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 15/02/2006, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo