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 :

[Système] Problème de définition des variables


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [Système] Problème de définition des variables
    Bonjour à tous,

    Je débute en php et j'ai un petit problème d'execution correcte d'un script PHP. J'expose le problème et ensuite le code.

    Dans un seul fichier, j'appelle plusieurs rubriques différentes au sein du même fichier. L'URL est de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    page01.php?info=php&rub=1
    J'ai essayé de faire un systeme afin que si un internaute modifie l'URL en remplaçant ça affiche un message d'erreur et de la meme manière pour Mais ça ne fonctionne qua dans un seul cas et pas dans le deuxième. Je pense que la déclaration de mes variables d'affichage n'est pas correcte et je ne sais pas trop comment m'en sortir. Voici le code ci-dessous, je precise que mes rubriques sont des tables que j'affiche avec du texte dedans....
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    <html>
    <head>
    <title>Page01 Avec Menu Déroulant</title>
    <script language='javascript'>
    function chgpage(formulaire) 
    { 
    	if (formulaire.listepages.selectedIndex != 0) 
    		{ location.href = formulaire.listepages.options[formulaire.listepages.selectedIndex].value; }
    }
    </script>
    </head>
    <body>
    <center>
    <?php
    // ==================================
    // >>> CONFIGURATION DU MENU DEROULANT <<<
    // ==================================
    $selectrapide="<select name='listepages' size=1 onChange='chgpage(this.form)'>
    <option>Choix de la Rubrique</option>
    <option value='page01.php?info=php&rub=1'>- Rubrique 1 -</option>
    <option value='page01.php?info=php&rub=2'>- Rubrique 2 -</option>
    <option value='page01.php?info=php&rub=3'>- Rubrique 3 -</option>
    <option value='page01.php?info=php&rub=4'>- Rubrique 4 -</option>
    <option value='page01.php?info=php&rub=5'>- Rubrique 5 -</option>
    <option value='page01.php?info=php&rub=6'>- Rubrique 6 -</option>
    <option value='page01.php?info=php&rub=7'>- Rubrique 7 -</option>
    <option value='page01.php?info=php&rub=8'>- Rubrique 8 -</option>
    </select>";
    // =====================================
    // >>> DEFINITIONS DES VARIABLES D'AFFICHAGE <<< 
    // =====================================
     
    $info=$_GET['info'];
    $pageinfo=$_SERVER['PHP_SELF'];
    $fichierpageinfo=basename($pageinfo);
     
    $rub=$_GET['rub'];
    $pagerub=$_SERVER['PHP_SELF'];
    $fichierpagerub=basename($pagerub);
     
    if ($pageinfo <> "") {
    if ($fichierpageinfo=='page01.php') 
    { $affpageinfo='&info=$info'; } else { $affpageinfo=""; }
    }
     
    if ($pagerub <> "") {
    if ($fichierpagerub=='$affpageinfo')
    { $affpagerub='&rub=$rub'; } else { $affpagerub=""; }
    } 
     
    // ===========================================
    // >>> CHOIX DE LA PAGE PRINCIPALE <<<
    // ===========================================
    if ($info == "php") {
    // ===========================================
    // >>> CONFIGURATION DE LA RUBRIQUE 1 <<<
    //============================================
    if ($rub == "1") {
    $affpagerub.= blabla....
    $affpagerub.= "<tr>
    <td align='center'>• IMAGE 1 •</td>
    <td align='center'>• IMAGE 1 BIS•</td>
    <td align='center'>• IMAGE 1 TER•</td>
    </tr>";
    $affpagerub.= etc etc....
     
    }
    }
    // ================================
    // >>> FIN DE CHOIX DE LA PAGE PHP <<< 
    // ==================================
     
    // =============================================================
    // >>> MESSAGE ALERTE SI ON MET AUTRE CHOSE QUE 'php' et 'rub' DANS L'URL <<< -- -- -- -- -- --
    // =============================================================
    } else {
    $affpagerub.= "<table width='100%' border='0' cellspacing='0' cellpadding='0'>";
    $affpagerub.= "<tr><td height='100%' align='center'>&nbsp;</td></tr>";
    $affpagerub.= "<tr><td height='50%' align='center'><b><font size='6'>ERREUR 404</font></b></td></tr>";
    $affpagerub.= "<tr><td height='100%' align='center'><b><font size='4'>Desole la page que vous demandez n'existe pas.<br>Vous allez etre redirigé vers la page d'accueil du site.<br>Merci de votre comprehension.</font></b></td></tr>";
    $affpagerub.= "<script>setTimeout('location=\"index.php\"',3000)</script>";
    $affpagerub.= "</table>";
    }
     
    // ============================================
    // >>> AFFICHAGE DE LA RUBRIQUE SELECTIONNEE <<< 
    // ============================================
    echo "$affpagerub";
    ?>
    </center>
    </body>
    </html>
    Mon problème est que si je change rub=1 par rub=10 dans l'URL mon message d'alerte ne s'affiche pas alors qu'il s'affiche lorsque le modifie info=php par autre chose. Je pense que je me trompe dans la définition de mes variables d'affichage et je ne sais pas comment résoudre ce problème.

    Merci de votre aide

  2. #2
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Essaie sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // =========================================== 
    // >>> CHOIX DE LA PAGE PRINCIPALE <<< 
    // =========================================== 
    if ($info == "php" && ($rub > 8 || $rub < 1)) { ...

  3. #3
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    utilises plutot switch() qui te permet une valeur par defaut

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $rubrique=(!isset($_GET['rub']))?(''):($_GET['rub']);
     
    switch($rubrique) {
       case '1': $page="c'est la rubrique 1";break;
       case '2': $page="c'est la rubrique 2";break;
       default: $page="c'est la page par defaut (erreur)";break;
    }
     
    echo $page;

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    La première solution proposée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if ($info == "php" && ($rub > 8 || $rub < 1)) {...
    ne fonctionne pas ça m'affiche en permanence mon message d'erreur que j'ai défini.

    Mais je voudrais savoir si j'ai correctement défni mes variables au départ parce que j'ai un doute :

    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
     $info=$_GET['info'];
    $pageinfo=$_SERVER['PHP_SELF'];
    $fichierpageinfo=basename($pageinfo);
     
    $rub=$_GET['rub'];
    $pagerub=$_SERVER['PHP_SELF'];
    $fichierpagerub=basename($pagerub);
     
    if ($pageinfo <> "") {
    if ($fichierpageinfo=='page01.php') { $affpageinfo='&info=$info'; } else { $affpageinfo=""; }
    }
     
    if ($pagerub <> "") {
    if ($fichierpagerub=='$affpageinfo') { $affpagerub='&rub=$rub'; } else { $affpagerub=""; }
    }

  5. #5
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par SLAM JACK
    La première solution proposée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if ($info == "php") && ($rub > 8 || $rub < 1) {...
    Problème de parenthèse.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Non pas de problème de parenthèses... mais merci de votre aide !

  7. #7
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Ah oui je me suis craqué c'était juste une condition un peu plus complexe

Discussions similaires

  1. [XL 2010] Problème de définition des variables
    Par tytyxam dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/10/2011, 11h18
  2. [Système] Problème pour effectuer des calculs
    Par tissard dans le forum Langage
    Réponses: 10
    Dernier message: 09/12/2005, 14h07
  3. problème de visibilité des variables dans un include
    Par d1g-2-d1g dans le forum Langage
    Réponses: 6
    Dernier message: 28/11/2005, 09h35
  4. [EasyPHP] problème de visibilité des variable dans les includes
    Par d1g-2-d1g dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 23/10/2005, 01h55
  5. [XSL]Problème de portée des variables
    Par djulesp dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/09/2004, 10h34

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