Se connecter avec
S'enregistrer | Connectez-vous

[PHP & SQL] Création de compte (Ajout d'un champ)

Dernière réponse : dans Programmation

Salut à tous...
J'ai fait un site simple où les gens peuvent se créer un compte, cependant j'ai ajouté une nouvelle colonne dans la table des comptes de ma base de donnée SQL.
Le formulaire que voici n'est donc plus bon, il manque une valeur a renseigner.:
  1. <?php
  2.  
  3. include 'sqlcfg_realm.php';
  4. include 'sql.php';
  5.  
  6. print '<html><head><title>Création de compte</title></head>';
  7.  
  8. function addUser() {
  9. if (empty($_POST)) return false; // nothing to see here
  10.  
  11. global $config, $msg, $error;
  12.  
  13.  
  14. if (empty($_POST['username']))
  15. return 'Nom d utilisateur invalide';
  16.  
  17. if (empty($_POST['email']))
  18. return 'Veuillez indiquer une adresse e-mail';
  19.  
  20. if (check_mail($_POST['email']) !== true)
  21. return 'Votre e-Mail est invalide';
  22.  
  23. if (empty($_POST['password'][0]) || empty($_POST['password'][1]))
  24. return 'Veuillez choisir un mot de passe';
  25.  
  26. if ($_POST['password'][0] !== $_POST['password'][1])
  27. return 'Les mot de passe ne correspondent pas';
  28.  
  29. $res = query("SELECT `id` FROM `account` WHERE `username` = '".mysql_real_escape_string($_POST['username'])."'");
  30. if (!$res)
  31. return 'Database: '.mysql_error();
  32.  
  33. if (mysql_num_rows($res) > 0)
  34. return 'Ce nom d utilisateur existe déjà';
  35.  
  36. $res = query("INSERT INTO `account` (`username`,`password`,`email`,`sessionkey`) VALUES ('".mysql_real_escape_string($_POST['username'])."', '".mysql_real_escape_string($_POST['password'][0])."', '".mysql_real_escape_string($_POST['email'])."', '".mysql_real_escape_string($_SESSION['secretkey'])."')");
  37. if (!$res)
  38. return 'Database: '.mysql_error();
  39.  
  40. }
  41.  
  42. function check_mail($email){
  43. if (eregi("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}", $email))
  44. return TRUE;
  45. else
  46. return FALSE;
  47. }
  48.  
  49. $r = addUser();
  50. if($r === true) {
  51. print '<br><br>Account <strong>'.htmlentities($_POST['username'])."</strong> Compte crée avec succès";
  52. } else {
  53. if($r !== false)
  54. print $r;
  55. ?><style type="text/css">
  56. <!--
  57. body,td,th {
  58. font-family: Verdana, Arial, Helvetica, sans-serif;
  59. font-size: 12px;
  60. color: #FFFFFF;
  61. }
  62. -->
  63. </style>
  64.  
  65. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
  66. <table>
  67. <tr>
  68. <th>Nom d'utilisateur:</th>
  69. <td><input type="text" name="username" size="30" maxlength="16" value="<? if(isset($_POST['username'])) print $_POST['username']; ?>"/>
  70. </tr>
  71. <tr>
  72. <th>Mot de passe:</th>
  73. <td><input type="password" name="password[]" size="30" maxlength="16" value="<? if(isset($_POST['password'][0])) print $_POST['password'][0]; ?>"/> </td>
  74. </tr>
  75. <tr>
  76. <th>Le retaper:</th>
  77. <td><input type="password" name="password[]" size="30" maxlength="16" value="<? if(isset($_POST['password'][1])) print $_POST['password'][1]; ?>"/> </td>
  78. </tr>
  79. <tr>
  80. <th>Adresse e-Mail:</th>
  81. <td><input type="text" name="email" size="30" maxlength="27" value="<? if(isset($_POST['email'])) print $_POST['email']; ?>"/></td>
  82. </tr>
  83. <tr>
  84. <th>Code de sécutité:</th>
  85. <td><img src="key.img.php"></td>
  86. </tr>
  87. <tr>
  88. <th>Taper se code:</th>
  89. <td><input type="text" name="securekey" size="5" maxlength="3"/></td>
  90. </tr>
  91.  
  92. <td></td>
  93. <tr>
  94. <td><td colspan="2"><h1><input type="submit" value="S'enregistrer" class="button"/></h1></td></td>
  95. </tr>
  96. </table>
  97. </form>
  98.  
  99.  
  100. <? } ?>
  101. </html>


Ce que j'aimerais faire, c'est que lorsqu'on coche l'une des deux case la valeur dans la nouvelle colonne (nom de la colonne: abc) soit 1 ou 0 (selon la case qu'on coche).

Vu que je m'exprime pas bien, j'ai fait un screenshot de ce que j'aimerais:

Voila j'ai ajouté les deux checkbox: si le 1er est coché la valeur dans la colonne abc sera 0 et si c'est le 2ème est coché la valeur sera 1...

Je n'ai aucune idée de comment faire cela, ce n'est pas moi qui ai fait ce premier script.
Quelqu'un peut-il m'aider?
Merci

(P.S: Les infos concernant la base de donnée ne sont pas sur le ficher php bien sur :p  )
Lassé par la pub ? Créez un compte

Alors, deja si l'utilisateur n'a pas la possibilité de cocher les 2 cases a la fois, utilise une case de type radio, c'est plus simple.
Ca devrait te donner quelque chose comme:
<input type="radio" value="1" name="type" />
<input type="radio" value="2" name="type" />


Et ta requete devient :
$res = query("INSERT INTO `account` (`username`,`password`,`email`,`sessionkey`, `abc`) VALUES ('".mysql_real_escape_string($_POST['username'])."', '".mysql_real_escape_string($_POST['password'][0])."', '".mysql_real_escape_string($_POST['email'])."', '".mysql_real_escape_string($_SESSION['secretkey'])
'".mysql_real_escape_string($_POST['type'])."', ."')" );


J'ai pas testé, mais ca ressemblera a quelque chose comme ca
Lassé par la pub ? Créez un compte
Tom's guide dans le monde