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 :

problème avec $_GET['']


Sujet :

Langage PHP

  1. #1
    Membre régulier

    Inscrit en
    Mai 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 72
    Points : 106
    Points
    106
    Par défaut problème avec $_GET['']
    tout le monde ...
    Voilà tout d'abord j'espère que j'ai posté mon message dans le bonne endroit Si ce n'est pas le cas je suis désolé pour ça ..!!
    Entrant dans le vif du sujet ...Je suis en train de réaliser un p'tit forum simple et tout semble bien marché "l'execution du code " , aucune erreure rendue !!
    Or que le résultat de l'éxecution n'est pas valable ...
    j'ai fais une page index_forum.php où se trouve tout mes forums ( forum1, forum2,...ect)
    Et une autre page cont_forum.php , cette dernière contient tout les sujet qui se trouvent dans chaque forum ...
    Donc si on veut par exemple acceder aux sujets du forum1 supposons !! , on utilise le lien suivant -->
    cont_forum.php?for=1 "for designe l'Id du forum "
    Pour ce qui conserner le code des mes pages c'est comme suite -->

    INDEX_FORUM.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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?php session_start();?>
    <?php
     mysql_connect("localhost", "root", "");
     mysql_select_db("site");
     //*ON recupère la liste des forums --->
     $req=mysql_query("SELECT * FROM forum LEFT JOIN membre ON moderateur=id_membre ") or die(mysql_error());
     ?>
     <div id="blo_forum">
     </table>
     <?php
     //On affiche nos forums-->
     while($data=mysql_fetch_array($req))
     {
     ?>
     <tr>
     <td>
     <a href="cont_forum.php?for=<?php echo $data[0]; ?>"><?php echo $data[1]; ?></a><br />
     <span><?php echo $data[2]; ?></span><br/>
     <span>Modérateur : <a href="voir_profil.php?id=<?php echo $data[3]; ?>"><?php echo $data[5]; ?></a></span>
     </td>
     </tr><br/>
     <?php
     }
     mysql_close();
     ?>
     </table>
     <div>
    CONT_FORUM.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
    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
    <?php session_start();?>
    <?php
     mysql_connect("localhost", "root", "");
     mysql_select_db("site");
     //**Pour éviter les erreurs des clé étrangères ,on désactive leur gestion et la la réactive aprés, à la fin de l'insertion-->
     $req = "SET FOREIGN_KEY_CHECKS = 0"; 
     $result = mysql_query($req) or die('Erreur SQL !'.$sql.''.mysql_error());
     //Pour éviter que l'utilisateur fait entrer des scripts html ou SQL
     $titre=mysql_real_escape_string(htmlspecialchars($_POST['titre']));
     $message=mysql_real_escape_string(htmlspecialchars($_POST['message']));
     //ON récupère l'Id du forum  Et l'Id du membre car on aura besoin pour l'insertion !!--->
      $auteur=$_SESSION['id_membre'];
      $forum=$_GET['for'];
      echo 'Voilà l\'ID du forum ---> '.$_GET['for'];
      if (isset($_GET['for']))
      {
     if((isset($_POST['titre'])) OR (isset($_POST['message'])) )//Si on a des entrées--->
     {
     if(empty($_POST['titre']))  // si Pas de titre entré--->
     echo 'Il faut donner un titre !!';
     if(empty($_POST['titre']))  // si Pas de message entré--->
     echo 'Il faut entrer un sujet !!';
     else
     {
     //ON garde le temps de l'insertion dans une variable -->
     $temps=$date=date ( 'd/m/Y à h:m:s ');
    //On insert l'enregistrement-->
     $req=mysql_query("INSERT INTO sujet VALUES('','$forum','$titre','$message','$auteur','$auteur','$temps','1','0')") or die(mysql_error()); 
     //Réactivation---->
     $req = "SET FOREIGN_KEY_CHECKS = 1"; 
     $result = mysql_query($req) or die('Erreur SQL !'.$sql.''.mysql_error());
     }
     }
     }
     else echo 'Accé réfusé';
     mysql_close();
     ?>
    <?php
     mysql_connect("localhost", "root", "");
     mysql_select_db("site");
      //*ON recupère la liste des forums --->
     $req=mysql_query("SELECT * FROM sujet LEFT JOIN membre ON auteur_sujet=id_membre WHERE forum='".$_GET['forum']."'") or die(mysql_error());
     ?>
     <div id="blo_sujet">
     </table>
     <thead><th>#</th><th>Titre</th><th>Auteur</th><th>Affichage</th><th>Réponse</th><th>Dernière réponse</th></thead><br />
     <?php
     //On affiche les sujet-->
     $i=1;// indice pour la numérotation --->
     while($data=mysql_fetch_array($req))
     {
     ?>
     <tr>
     <td><?php echo $i;?></td> 
     <td><a href="sujet.php?suj=<?php echo $data[0];?>"><?php echo $data[2];?></a></td> 
     <td><a href="profil.php?id=<?php echo $data[9];?>"><?php echo $data[10];?></a></td> 
     <td><?php echo $data[7];?></td>
     <td><?php echo $data[8];?></td>
     <td>.....</td>
     </tr><br/>
     <?php
     $i++; // Incrémentation de notre indice
     }
      mysql_close();
     ?>
     
     </table>
     <div>
     <fieldset><legend>Ajouter un sujet :</legend>
     <form action="cont_forum.php" method="post">
     Titre :<br/><input name="titre" type="text"/><br/>
     Message :<br/><textarea name="message"></textarea>
     <br/><input type="submit" value="Ajouter"/>
     </form>
     </fieldset>
    Le poblème:
    Dans la page cont_forum.php on a cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'Voilà l\'ID du forum ---> '.$_GET['for'];
    ça marche, Il m'affiche l'id du forum normalement puis aprés il m'affiche--->"Accé réfusé"
    c'est comme si il ne vérifie pas la condition juste aprés-->

    Et pourtant il m affiche avant cela l'id du forum correct ,1 pour forum1 ,2pour forum2...ect
    J y comprends rien On dirait dés qu'il m'affiche l'id ,il vide la variable $_GET['for']...
    Voila , pour le moment j'attends vos réponses j'en ai besoin , merci à tous ..

  2. #2
    Membre actif Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 214
    Points
    214
    Par défaut
    on fais pas un test boolen sur un int
    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_GET['for']) && is_numeric($_GET['for']))
    42
    there is no place like 127.0.0.1
    Mangez des http://www.smarty.net avec vos PHP web s'il vous plait
    var_dump retourne les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.

  3. #3
    Membre régulier

    Inscrit en
    Mai 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 72
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par chtipitou Voir le message
    on fais pas un test boolen sur un int
    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_GET['for']) && is_numeric($_GET['for']))
    Aufait merci pour ta réponse , j'avais juste oublié l'isset tout à l'heur !!, et j'ai essayé is_numeric et ça ne fonctionne toujours pas

  4. #4
    Membre actif Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 214
    Points
    214
    Par défaut
    juste pour voir, ca ne resoudra rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'Voilà l\'ID du forum ---> '.var_dump($_GET);
    42
    there is no place like 127.0.0.1
    Mangez des http://www.smarty.net avec vos PHP web s'il vous plait
    var_dump retourne les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.

  5. #5
    Membre régulier

    Inscrit en
    Mai 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 72
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par chtipitou Voir le message
    juste pour voir, ca ne resoudra rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'Voilà l\'ID du forum ---> '.var_dump($_GET);
    Oui , ça je viens juste de l'essayer ---> il me retourne ça :1string(1) "1"
    Plus d'éxplication --->
    Pour e 1er coup quand on accede à la page -->
    cont_forum.php?for=1 ,il donne ça :
    Voilà l'ID du forum ---> 1string(1) "1"
    Puis une tentative d'ajout dans le formulaire , je tappes mes données , je clique envoyer et ça vaut pas le coup --->Voilà l'ID du forum ---> NULL
    Pas droit d'accée

  6. #6
    Membre actif Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 214
    Points
    214
    Par défaut
    et la variable $forum se reset aussi ?
    42
    there is no place like 127.0.0.1
    Mangez des http://www.smarty.net avec vos PHP web s'il vous plait
    var_dump retourne les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.

  7. #7
    Membre régulier

    Inscrit en
    Mai 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 72
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par chtipitou Voir le message
    et la variable $forum se reset aussi ?
    Oui , idem puisque dedans on affecte $_GET['for'], et ça affiche le même truc..

  8. #8
    Membre régulier

    Inscrit en
    Mai 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 72
    Points : 106
    Points
    106
    Par défaut
    Resalut ..
    ça y'est c'est résolu ...Le problème figurait plutot dans la cible de mon formulaire -->
    il falait mettre "cont_forum.php?for=$forum" au lieu de mettre juste "cont_forum.php"

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

Discussions similaires

  1. [MySQL] Problème avec $_GET
    Par linkoff dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/04/2010, 14h10
  2. [MySQL] problème avec extract($_GET)
    Par javagirl08 dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 23/08/2009, 16h20
  3. [PHP-JS] Problème avec les $_GET J'en peux plus la
    Par schtek2 dans le forum Langage
    Réponses: 8
    Dernier message: 21/05/2006, 20h56
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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