Problème d'inscription

Problème d'inscription - PHP - Programmation

Marsh Posté le 13-06-2008 à 12:58:10    

Bonjour,
je créé un site en php et je voudrai que lorsque un utilisateur s'enregistre en ayant rempli tout les condition si il puisse accédé à une page caché. Mais le scripte déconne car lorsque tout est rempli il n'enregistre pas l'utilisateur et n'accède pas à la page... ci-dessou je fais un copié collé de mes pages, menu.php est un menu tout bête en html, si besoin est je vous l'envoi.
 
Membres.php

Code :
  1. <?php
  2. include("menu.php" );
  3. ?>
  4. <br/><br/>
  5. <center>
  6. <p><font color=grey><em>En construction</em></font></p>
  7. <a href=./session/inscription.php><font color=grey><em>Pour s'enregistrer...</em></font></a>
  8. <br/><br/>
  9. </body>
  10. </html>


 
inscription.php

Code :
  1. <?php
  2. include("menu.php" );
  3. ?>
  4. <br/><br/>
  5. <center>
  6. <font color=green><u>Accès membres:</u></td><br/></font>
  7. <form method="post" action="cache.php">
  8. <font color=grey>Tu veut être membre? C'est par là!<br/></font>
  9. <table>
  10. <tr><td><font color=grey>Pseudo :</td><td><input name=pseudo/></td></tr>
  11. <tr><td><font color=grey>Mot de passe :</td><td><input name="pass"/></</td></tr>
  12. <tr><td><font color=grey>Mail :</td><td><input name="mail"></td></tr>
  13. <tr><td><font color=grey>Age :</td><td><select name="age">
  14. <?php
  15. for ($age = 10; $age <= 70; $age++)
  16. {
  17. echo "<option value=\"choix$age\">$age ans</option>";//boucle pour générer les ages
  18. }
  19. ?>
  20. </select></td></tr>
  21. <tr><td><font color=grey>Avez-vous lut les conditions d'inscription?</td><td><font color=grey>
  22. <input type="radio" name="condition" value="oui" /> Oui
  23. <input type="radio" name="condition" value="non" checked="checked" /> Non</td></tr></table>
  24. <input type="submit" value="Envoyer" />
  25. </form>
  26. <br/><br/>
  27. <SCRIPT LANGUAGE="JavaScript"> // le scripte qui oblige le visiteur à cliquer sur la condition pour la lire
  28. var txt=new Array () ;
  29. txt[1]="<font color=aaaaa><br>En gros quand tu es membre sa te permet d'accéder à cette partie du site,<br/> donc tu confirme être bien majeurs et ne pas être choqué par le contenue de cette page.<br/>Si c'est le cas ne t'en prend qu'à toi même, à oui,<br/> si tu es un trés gros fan et que tu veut absolument voir le contenu,<br/> inscrit toi en compagnie d'un adulte résponsable.<br/> Et si les textes intégraux ou l'ensemble du contenu affiché dans la zone membre vous choque quand même,<br/> et bien vous refusé d'engager toutes poursuites contres les auteurs de ce contenue</font><br/><br/>"
  30. <?php $ouverture=true ?>;
  31. txt[2]='<font color=aaaaa><br>Rien en fait...<br/>A si! Le mail est facultatif, c\'est juste par curiosité!</font>';
  32. function menu(id)
  33. {
  34. ref=document.getElementById(id);
  35. if (ref.innerHTML== "" )
  36. ref.innerHTML = txt[id];
  37. else
  38. ref.innerHTML= "";
  39. }
  40. </SCRIPT>
  41. <a href=# onClick="menu(1);"><IMG src="./cdu.jpg" table border=0> </a>
  42. <DIV id=1></DIV>
  43. <a href=# onClick="menu(2);"><IMG src="./ai.jpg" table border=0></a>
  44. <DIV id=2></DIV>
  45. <?php
  46. mysql_connect("localhost", "root", "" );//connexion à la base de données
  47. mysql_select_db("coursphp" );//choix de la base de données
  48. if (isset($_POST['pseudo']) AND isset($_POST['pass'])) //on vérifie si les variables pseudo et pass sont bien renseigné
  49. {
  50. $age = $_POST['age']; // on place l'enregistrement dans la variable age
  51. $condition = $_POST['condition']; // De même pour la condition
  52. if ( $age <='18' AND $condition = 'oui' AND $ouverture=true ) //vérification des conditions d'inscription
  53. {
  54. $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); //mysql_real_escape_string et htmlspecialchars permette d'empêcher aux utilisateur d'insérer un language dans le message, ces fonction permettent donc de sécuriser la base de donné
  55. $pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));
  56. $mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
  57. $nbre = mysql_query("SELECT COUNT (*) FROM membres WHERE membres.pseudo=$pseudo" );//Compte le nombre de pseudo similaire...
  58. $accepte = 1; //si les conditions sont remplis on attribut 1 a accepter
  59. if ($nbre == 0)//... pour créer le compte s'il n'éxiste pas! rui!!
  60. {
  61. mysql_query("INSERT INTO membres(id, pseudo, pass, condition, ouverture, mail, age) VALUES('', '$pseudo', '$pass', '$conditon', '$ouverture', '$mail', '$age')" );// Le compte n'existe pas, il est créer
  62. }
  63. }
  64. else
  65. {
  66. $accepte = 0; // si les condition ne sont pas rempli, on attribut 0
  67. }
  68. }
  69. else //si pseudo et pass sont vident on redirige vers la page d'erreure
  70. {
  71. $accepte = 0; //
  72. }
  73. mysql_close(); // On ferme la la base de donné
  74. ?>
  75. </font>
  76. </center>
  77. <br/><br/>
  78. </body>
  79. </html>


 
valide.php

Code :
  1. <br/><br/>
  2. gagné
  3. </body>
  4. </html>


 
cache.php

Code :
  1. <?php
  2. include("menu.php" );
  3. ?>
  4. <?php
  5. mysql_connect("localhost", "root", "" );//connexion à la base de données
  6. mysql_select_db("coursphp" );//choix de la base de données
  7. if (isset($_POST['pseudo']) AND isset($_POST['pass'])) //on vérifie si les variables pseudo et pass sont bien renseigné
  8. {
  9. $age = $_POST['age']; // on place l'enregistrement dans la variable age
  10. $condition = $_POST['condition']; // De même pour la condition
  11. if ( $age <='18' AND $condition = 'oui' AND $ouverture=true ) //vérification des conditions d'inscription
  12. {
  13. $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); //mysql_real_escape_string et htmlspecialchars permette d'empêcher aux utilisateur d'insérer un language dans le message, ces fonction permettent donc de sécuriser la base de donné
  14. $pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));
  15. $mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
  16. $nbre = mysql_query("SELECT COUNT (*) FROM membres WHERE membres.pseudo=$pseudo" );//Compte le nombre de pseudo similaire...
  17. $accepte = 1; //si les conditions sont remplis on attribut 1 a accepter
  18. if ($nbre == 0)//... pour créer le compte s'il n'éxiste pas! rui!!
  19. {
  20. mysql_query("INSERT INTO membres(id, pseudo, pass, condition, ouverture, mail, age) VALUES('', '$pseudo', '$pass', '$conditon', '$ouverture', '$mail', '$age')" );// Le compte n'existe pas, il est créer
  21. }
  22. }
  23. else
  24. {
  25. $accepte = 0; // si les condition ne sont pas rempli, on attribut 0
  26. }
  27. }
  28. else //si pseudo et pass sont vident on redirige vers la page d'erreure
  29. {
  30. $accepte = 0; //
  31. }
  32. mysql_close(); // On ferme la la base de donné
  33. ?>
  34. <?php
  35. if ($_SESSION !=1)
  36. {
  37. include("erreur.php" ); //$_POST['pass']
  38. }
  39. else
  40. {
  41. include("valide.php" );
  42. }
  43. ?>
  44. </body>
  45. </html>


 
erreur.php

Code :
  1. <br/><br/>
  2. casse toi
  3. </body>
  4. </html>


 
Voila, je pète un plomb donc si vous voulez bien m'aider...

Reply

Marsh Posté le 13-06-2008 à 12:58:10   

Reply

Marsh Posté le 13-06-2008 à 13:07:49    

La_Carcass a écrit :

Bonjour,
je créé un site en php et je voudrai que lorsque un utilisateur s'enregistre en ayant rempli tout les condition si il puisse accédé à une page caché. Mais le scripte déconne car lorsque tout est rempli il n'enregistre pas l'utilisateur et n'accède pas à la page... ci-dessou je fais un copié collé de mes pages, menu.php est un menu tout bête en html, si besoin est je vous l'envoi.


 :sweat:  
 
Désolé mais du code html + js + php + sql mélangé ça me fait gerber, je lis 2 lignes ça m'donne mal à la tête  [:a-side]

Citation :


En gros quand tu es membre sa te permet d'accéder à cette partie du site,<br/> donc tu confirme être bien majeurs et ne pas être choqué par le contenue de cette page.<br/>Si c'est le cas ne t'en prend qu'à toi même, à oui,<br/> si tu es un trés gros fan et que tu veut absolument voir le contenu,<br/> inscrit toi en compagnie d'un adulte résponsable.<br/> Et si les textes intégraux ou l'ensemble du contenu affiché dans la zone membre vous choque quand même,<br/> et bien vous refusé d'engager toutes poursuites contres les auteurs de ce contenue


 :lol:  
 

Citation :


<input name=pseudo/>


Manque l'attribut type="text" et type="password" pour le mot de passe  :o et le name doit être entre "
Ca donne
<input name="pseudo" type="text"/>

Message cité 1 fois
Message édité par Alisteroid le 13-06-2008 à 13:14:52
Reply

Marsh Posté le 13-06-2008 à 13:10:28    

Alisteroid a écrit :


 :sweat:  
 
Désolé mais du code html + js + php + sql mélangé ça me fait gerber, je lis 2 lignes ça m'donne mal à la tête  [:a-side]


 
Ok pas grave, en tout cas merci d'avoir regarder :) J'éspère quand même que quelqu'un pourra m'aider, j'ai passé ma nuit decut et j'en peut plus...
 
 
Merci des remarques :) je test chez moi des que possible, je suis au taf, tu pense qu'il y a d'autres erreur? car je débute en php et java...


Message édité par La_Carcass le 13-06-2008 à 13:19:29
Reply

Marsh Posté le 13-06-2008 à 13:18:44    

Ligne 58 :
 
if ( $age <='18' AND $condition = 'oui' AND $ouverture=true )  
 
La tu es en train d'affecter 'oui' à $condition , true à $ouverture ..
Donc ça va passer car l'affectation va réussir...
Pour vérifier que ouverture est égal à 'oui' il faut mettre des doubles '='
 
if ( $age <='18' AND $condition == 'oui' AND $ouverture==true )  
ou plus simplement
if ( $age <='18' AND $condition == 'oui' AND $ouverture )

Reply

Marsh Posté le 13-06-2008 à 13:19:54    

"SELECT COUNT (*) FROM membres WHERE membres.pseudo=$pseudo"

 

faut mettre entre quote tes chaines de caractère en sql :
=>
"SELECT COUNT (*) FROM membres WHERE membres.pseudo='$pseudo' "

 

Bref c'est un coup d'oeil rapide, et franchement y a pas grand chose à garder dans ce que tu as fais :'(

Message cité 1 fois
Message édité par Alisteroid le 13-06-2008 à 13:21:24
Reply

Marsh Posté le 13-06-2008 à 13:23:24    

Alisteroid a écrit :

"SELECT COUNT (*) FROM membres WHERE membres.pseudo=$pseudo"
 
faut mettre entre quote tes chaines de caractère en sql :
=>
"SELECT COUNT (*) FROM membres WHERE membres.pseudo='$pseudo' "
 
Bref c'est un coup d'oeil rapide, et franchement y a pas grand chose à garder dans ce que tu as fais :'(


 
 
A ok :( et comment faire exactement un formulaire d'inscription et qui fonctionne? La je desespaire... en tout cas merci de te pencher sur mon problème...

Reply

Marsh Posté le 13-06-2008 à 13:37:59    

Tu as l'air d'avoir fais ça tout seul c'est bien, mais t'as d'énormes lacunes en php sql et html, ton html est tout naze (genre <IMG src="./cdu.jpg" table border=0> ) je vois pas ce que "table" fout la.

 

Vas y petit à petit, regarde tes logs php et apache, afficher tes erreurs sql en faisant par ex :

Code :
  1. $result = mysql_query('SELECT * WHERE 1=1');
  2. if (!$result) {
  3.     die('Requête invalide : ' . mysql_error());
  4. }


Message édité par Alisteroid le 13-06-2008 à 13:38:13
Reply

Marsh Posté le 13-06-2008 à 13:40:40    

Bas j'essais de tout faire seul mais comme je t'ai dis je débute... donc niveau à peut pret négatif lol.
Merci pour le coup de main en tout cas j'essairai de voir sa ce soir... si d'autre truc te choc dans le code dis le stp :)

Reply

Marsh Posté le 14-06-2008 à 03:18:22    

Bon j'ai fais les modification comme tu m'a conseillé mais quand je clique sur valider il me sort :  
Requête invalide :
 
Donc je te remet le code si tu vois des erreurs, enfin toi ou quelqu'un d'autre lol, vu que ce truc me rend dingue...
 
valide.php

Code :
  1. <br/><br/>
  2. gagné
  3. </body>
  4. </html>


 
erreur.php

Code :
  1. <br/><br/>
  2. casse toi
  3. </body>
  4. </html>


 
cache.php

Code :
  1. <?php
  2.   include("menu.php" );
  3.   ?>
  4.        <?php
  5.      mysql_connect("localhost", "root", "" );//connexion à la base de données
  6.      mysql_select_db("fp" );//choix de la base de données
  7.      if (isset($_POST['pseudo']) AND isset($_POST['pass'])) //on vérifie si les variables pseudo et pass sont bien renseigné
  8.      {
  9.       $age = $_POST['age']; // on place l'enregistrement dans la variable age
  10.       if (!$age) {             //affiche  les erreurs sql
  11.       die('Requête invalide : ' . mysql_error());
  12.       }
  13.       $condition = $_POST['condition']; // De même pour la condition
  14.       if ( $age <='18' AND $condition = 'oui' AND $ouverture=true ) //vérification des conditions d'inscription
  15.       {
  16.        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); //mysql_real_escape_string et htmlspecialchars permette d'empêcher aux utilisateur d'insérer un language dans le message, ces fonction permettent donc de sécuriser la base de donné
  17.        if (!$pseudo) {             //affiche  les erreurs sql
  18.        die('Requête invalide : ' . mysql_error());
  19.        }
  20.        $pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));
  21.         if (!$pass) {             //affiche  les erreurs sql
  22.         die('Requête invalide : ' . mysql_error());
  23.         }
  24.        $mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
  25.         if (!$mail) {             //affiche  les erreurs sql
  26.         die('Requête invalide : ' . mysql_error());
  27.         }
  28.        $nbre = mysql_query("SELECT COUNT (*) FROM membres WHERE membres.pseudo=$pseudo" );//Compte le nombre de pseudo similaire...
  29.         if (!$nbre) {             //affiche  les erreurs sql
  30.         die('Requête invalide : ' . mysql_error());
  31.         }
  32.        $accepte = 1; //si les conditions sont remplis on attribut 1 a accepter
  33.         if (!$accepte) {             //affiche  les erreurs sql
  34.         die('Requête invalide : ' . mysql_error());
  35.         }
  36.        if ($nbre == 0)//... pour créer le compte s'il n'éxiste pas! rui!!  
  37.        {
  38.         mysql_query("INSERT INTO membres(id, pseudo, pass, condition, ouverture, mail, age) VALUES('', '$pseudo', '$pass', '$conditon', '$ouverture', '$mail', '$age')" );// Le compte n'existe pas, il est créer
  39.        }
  40.       }
  41.       else
  42.       {
  43.        $accepte = 0; // si les condition ne sont pas rempli, on attribut 0
  44.         if (!$accepte) {             //affiche  les erreurs sql
  45.         die('Requête invalide : ' . mysql_error());
  46.         }
  47.       }
  48.      }
  49.      else //si pseudo et pass sont vident on redirige vers la page d'erreure
  50.      {
  51.       $accepte = 0; //
  52.        if (!$accepte) {             //affiche  les erreurs sql
  53.        die('Requête invalide : ' . mysql_error());
  54.        }
  55.      }
  56.      if ( $accepte == 1 ) // pour voir vers quel page rediriger
  57.       if (!$accepte) {             //affiche  les erreurs sql
  58.       die('Requête invalide : ' . mysql_error());
  59.       }
  60.      {
  61.       include("valide.php" );
  62.      }
  63.      mysql_close(); // On ferme la la base de donné
  64.     ?>
  65. </body>
  66. </html>


 
inscription.php

Code :
  1. <?php
  2.    include("menu.php" );
  3.   ?>
  4.   <br/><br/>
  5.   <center>
  6.    <font color=green><u>Accès membres:</u></td><br/></font>
  7.     <form method="post" action="cache.php">
  8.      <font color=grey>Tu veux être membre? C'est par là!<br/></font>
  9.      <table>
  10.      <tr><td><font color=grey>Pseudo :</td><td><input name="pseudo" type="text"/></td></tr>
  11.      <tr><td><font color=grey>Mot de passe :</td><td><input name="pass" type="password"/></</td></tr>
  12.      <tr><td><font color=grey>Mail :</td><td><input name="mail" type="text"/></td></tr>
  13.      <tr><td><font color=grey>Age :</td><td><select name="age">
  14.      <?php
  15.       for ($age = 10; $age <= 70; $age++)
  16.       {
  17.        echo "<option value=\"choix$age\">$age ans</option>";//boucle pour générer les ages
  18.       }
  19.      ?>
  20.      </select></td></tr>
  21.      <tr><td><font color=grey>Avez-vous lut les conditions d'inscription?</td><td><font color=grey>
  22.       <input type="radio" name="condition" value="oui" /> Oui
  23.       <input type="radio" name="condition" value="non" checked="checked" /> Non</td></tr></table>
  24.      <input type="submit" value="Envoyer" />
  25.     </form>
  26.     <br/><br/>
  27.     <SCRIPT LANGUAGE="JavaScript"> // le scripte qui oblige le visiteur à cliquer sur la condition pour la lire
  28.     var txt=new Array () ;
  29.     txt[1]="<font color=aaaaa><br>En gros quand tu es membre sa te permet d'accéder à cette partie du site,<br/> donc tu confirme être bien majeurs et ne pas être choqué par le contenue de cette page.<br/>Si c'est le cas ne t'en prend qu'à toi même, à oui,<br/> si tu es un trés gros fan et que tu veut absolument voir le contenu,<br/> inscrit toi en compagnie d'un adulte résponsable.<br/> Et si les textes intégraux ou l'ensemble du contenu affiché dans la zone membre vous choque quand même,<br/> et bien vous refusé d'engager toutes poursuites contres les auteurs de ce contenue</font><br/><br/>"
  30.     <?php $ouverture=true ?>;
  31.     txt[2]='<font color=aaaaa><br>Rien en fait...<br/>A si! Le mail est facultatif, c\'est juste par curiosité!</font>';
  32.     function menu(id)
  33.     {
  34.     ref=document.getElementById(id);
  35.     if (ref.innerHTML== "" )
  36.     ref.innerHTML = txt[id];
  37.     else
  38.     ref.innerHTML= "";
  39.     }
  40.     </SCRIPT>
  41.     <a href=# onClick="menu(1);"><IMG src="./cdu.jpg" border=0> </a>
  42.     <DIV id=1></DIV>
  43.     <a href=# onClick="menu(2);"><IMG src="./ai.jpg" border=0></a>
  44.     <DIV id=2></DIV>
  45.     <?php
  46.      mysql_connect("localhost", "root", "" );//connexion à la base de données
  47.      mysql_select_db("fp" );//choix de la base de données
  48.      if (isset($_POST['pseudo']) AND isset($_POST['pass'])) //on vérifie si les variables pseudo et pass sont bien renseigné
  49.      {
  50.       $age = $_POST['age']; // on place l'enregistrement dans la variable age
  51.       $condition = $_POST['condition']; // De même pour la condition
  52.       if ( $age <='18' AND $condition == 'oui' AND $ouverture ) //vérification des conditions d'inscription
  53.       {
  54.        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); //mysql_real_escape_string et htmlspecialchars permette d'empêcher aux utilisateur d'insérer un language dans le message, ces fonction permettent donc de sécuriser la base de donné
  55.        $pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));
  56.        $mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
  57.        $nbre = mysql_query("SELECT COUNT (*) FROM membres WHERE membres.pseudo='$pseudo' " );//Compte le nombre de pseudo similaire...
  58.        $accepte = 1; //si les conditions sont remplis on attribut 1 a accepter
  59.        if ($nbre == 0)//... pour créer le compte s'il n'éxiste pas! rui!!  
  60.        {
  61.         mysql_query("INSERT INTO membres('id','pseudo','pass','condition','ouverture','mail','age') VALUES('','$pseudo','$pass','$conditon','$ouverture','$mail','$age');" )// Le compte n'existe pas, il est créer
  62.         or die('Requête invalide : ' . mysql_error());//affiche erreur
  63.        }
  64.       }
  65.       else
  66.       {
  67.        $accepte = 0; // si les condition ne sont pas rempli, on attribut 0
  68.       }
  69.      }
  70.      else //si pseudo et pass sont vident on redirige vers la page d'erreure
  71.      {
  72.       $accepte = 0; //
  73.      }
  74.      mysql_close(); // On ferme la la base de donné
  75.     ?>
  76.    </font>
  77.   </center>
  78.  <br/><br/>
  79.   <!--Google Analitique-->
  80. <script type="text/javascript">
  81. var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www." );
  82. document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E" ));
  83. </script>
  84. <script type="text/javascript">
  85. var pageTracker = _gat._getTracker("UA-4629904-1" );
  86. pageTracker._initData();
  87. pageTracker._trackPageview();
  88. </script>
  89. </body>
  90. </html>

Reply

Marsh Posté le 14-06-2008 à 18:26:32    

Quelqu'un peut -il maider à avancer?

Reply

Marsh Posté le 14-06-2008 à 18:26:32   

Reply

Marsh Posté le 15-06-2008 à 14:56:38    

Quelqu'un pour m'aider s'il vous plait...

Reply

Marsh Posté le 16-06-2008 à 13:14:07    

Personne ne peut m'aider?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed