$_GET qui n'existe pas



  • Bien le bonjour à tous

    j'ai crée une page d'activation de compte suite a une inscription. Je transmet l'id via l'url mais le problème c'est que quand veut activé son compte il me dit que l'id n'existe pas.
    J'ai posté sa sur le forum du SdZ et j'ai eu des question comme : si tu fait print_r($_GET) sa donne quoi ? en voici la réponse
    Array ( ) 1… je comprends pas trop ce que sa veut dire mais bon.

    Voici le code si quelqu'un peut m'aider :

    <html>
     <head>
      <title>Activation compte</title>
     </head>
     <body>
      <?
       mysql_connect('localhost','****','*****');
       mysql_select_db('****');
    
       echo print_r($_GET);
       exit;
       $id = intval(addslashes($_GET['id']));
       exit;
    
       $requete = mysql_query("SELECT pseudo FROM membre WHERE id=".$id) or die(mysql_error());
       $user = mysql_fetch_array($requete);
    
       if($user['pseudo'] == NULL)
        {
    	 echo'N'essayer pas de tricher en modifiant le nombre attribué à l'id';
    	}
       elseif($user['pseudo'] != NULL)
        {
    	 $requete = mysql_query("SELECT actif FROM membre WHERE id='$id'") or die(mysql_error());
    	 $actif = mysql_fetch_array($requete);
    
    	 if($actif['actif'] == '1')
    	  {
    	   echo"Désolé mais ce compte est déjà activé. <meta http-equiv='refresh' content='2; url=http://connexion.php><br />Redirection vers la page de connexion dans 2 secondes";
    	  }
    	 else
    	  {
           $modif = mysql_query("UPDATE membre SET actif=1 WHERE id='$id'") or die(mysql_error());
    
    	   $modif;
    	   if($modif == FALSE)
    	    {
    		 echo'Problème au niveau de l'update de la page activation';
    		}
    	   else
    	    {
    		 echo"<p>Vous venez d'activez votre compte</p> <meta http-equiv='refresh' content='2; url=http://index.php'> <p>Redirection dans 2 secondes</p>";
    		}
    	  }
    	}   
       mysql_close();
      ?>
     </body>
    </html>
    

    petite explication : début du code php, je teste les variable pour voir ce qu'elle contienne

    et voici ce que sa m'affiche :

     $_GET['id] donne rien du tout
    $id donne 0
    

  • Administrateur

    On peut voir l'url type que tu utilise pour aller à la page ?





  •  echo print_r($_GET);
       exit;
       $id = intval(addslashes($_GET['id']));
       exit; 
    

    Vire les exit; cela arrête le code au beau milieux… (http://be2.php.net/exit)

    Phenix


  • Administrateur

    Bien vu, j'avait même pas fait gaffe, faut que j'me réveille moi :D



  • les exit, je l'ai mis exprès pour tester les variable, mais même sans le premier exit; $id = 0.

    j'ai testé ce code sur deux différentes : id=6 et id=7

    echo print_r($_GET);
       $id = intval(addslashes($_GET['id']));
       echo "<br />".$id;
       exit;
    ```le exit me sert juste a arrêter la page pour ne pas qu'elle continu a s'exécuter(pour ceux qui ne comprenne pas).
    
    et voici ce que m'affiche les deux pages
    
    

    Array ( ) 1
    0


  • Administrateur

    On va faire simple.

    Tu supprime tout ce qu'il y a dans ta page.

    Tu n'y met que ça :

    <?php
    echo $id=$_GET['id'];
    ?>
    
    

    Dit moi si quelque chose apparait.



  • avec ce que tu m'as donné, j'ai rien du tout dans les deux cas(les deux id)


  • Administrateur



  • en effet, avec cette adresse $_GET['id'] prends bien la bonne valeur. Mais est-ce normal que sa ne marche qu'avec cette adresse ?



  • tilt

    Les systèmes POST et GET ne passe pas dans les pseudo-domaine donnée par freeherbeg, il faut mettre les adresses complètes.


  • Administrateur

    @Jaden:

    en effet, avec cette adresse $_GET['id'] prends bien la bonne valeur. Mais est-ce normal que sa ne marche qu'avec cette adresse ?

    Oui c'est normale, les redirections du type site.freeheberg.com sont des frames, ce qui empêche de faire passer les données.



  • CQFD :p



  • SNCF

    ==>[] :mrgreen:
    (ouh le zouli off topic)



  • @caaptusss:

    @Jaden:

    en effet, avec cette adresse $_GET['id'] prends bien la bonne valeur. Mais est-ce normal que sa ne marche qu'avec cette adresse ?

    Oui c'est normale, les redirections du type site.freeheberg.com sont des frames, ce qui empêche de faire passer les données.

    Ca risque de poser des problèmes aux gens ca non?


  • Administrateur

    Bah ça existe depuis plus d'un ans qu'on est en ligne hein :)



  • Si tu le dis.. :]]: j'ai jamais remarquer perso :grinning[:] (en même temps.. j'ai mon domaine perso xD)


Se connecter pour répondre
 

Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous re-connectons.