Probleme inscription

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme inscription

Re: Probleme inscription

par visualight » 09 mai 2010, 15:12

Re: Probleme inscription

par Perrin » 09 mai 2010, 14:04

Par contre tu ne c'est pas comment je pourrais faire un espace membres pour mon site ??

Re: Probleme inscription

par Perrin » 09 mai 2010, 13:35

Merci a toi :)

Re: Probleme inscription

par visualight » 09 mai 2010, 13:27

Re: Probleme inscription

par Perrin » 09 mai 2010, 09:32

sa me tue j'abandonne ... je fais tout le codes que l'on me donne, il y a rien qui veut.

Merci a toi d'avoir pris le temps de m'aide :)

Re: Probleme inscription

par visualight » 08 mai 2010, 21:11

:shock: Es tu certain d'avoir mis : $db = mysql_connect("localhost", "root", "") or die('Error: Could not connect to database'); :?:

Re: Probleme inscription

par Perrin » 08 mai 2010, 20:23

Notice: Undefined variable: db in C:\wamp\www\php\inscription.php on line 158

Warning: mysql_close() expects parameter 1 to be resource, null given in C:\wamp\www\php\inscription.php on line 158

Toujours le meme soucis
il me prend la tête se mysql

Re: Probleme inscription

par visualight » 08 mai 2010, 19:37

Notice: Undefined index: TB_Mot_De_Passe in C:\wamp\www\php\inscription.php on line 24
La variable $_POST['TB_Mot_De_Passe'] provenant du formulaire n'est pas correctement envoyée ou assignée.
Poste le code de ton formulaire et du morceau de code php qui récupère le champ mot de passe de ton formulaire.
Warning: mysql_close(): no MySQL-Link resource supplied in C:\wamp\www\php\inscription.php on line 157
C'est simle, tu ouvre une connection à la base sans définir de quelle connexion il s'agit.
De plus, je te conseille d'afficher les erreurs mysql pour savoir ou ça plante quand ça ne fonctionne plus.

$db = mysql_connect("localhost", "root", "") or die('Error: Could not connect to database');
mysql_close($db);


Voici la correction dans ton code :
<?php

// Redirige l'utilisateur s'il est déjà identifié
if(isset($_COOKIE["ID_UTILISATEUR"]))
{
     header("Location: index.php");
}
else
{
     
     // Formulaire visible par défaut
     $masquer_formulaire = false;
     
     // Une fois le formulaire envoyé
     if(isset($_POST["BT_Envoyer"]))
     {
         
          // Vérification de la validité des champs
                  if(!preg_match("/^[A-Za-z0-9_]{4,20}$/", $_POST["TB_Nom_Utilisateur"]))
          {
               $message = "Votre nom d'utilisateur doit comporter entre 4 et 20 caractères<br />\n";
               $message .= "L'utilisation de l'underscore est autorisée";
          }
           elseif (!preg_match("/^[A-Za-z0-9_]{4,20}$/", $_POST["TB_Mot_De_Passe"]))
          {
               $message = "Votre mot de passe doit comporter au moins 4 caractères";
          }
          elseif($_POST["TB_Mot_de_Passe"] != $_POST["TB_Confirmation_Mot_de_Passe"])
          {
               $message = "Votre mot de passe n'a pas été correctement confirmé";
          }
          elseif(!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$",
               $_POST["TB_Adresse_Email"]))
          {
               $message = "Votre adresse e-mail n'est pas valide";
          }
          else
          {
               
               // Connexion à la base de données
               // Valeurs à modifier selon vos paramètres configuration

               $db = mysql_connect("localhost", "root", "") or die('Error: Could not connect to database');
               mysql_select_db("asp-php",$db) or die ('Error: Cannot select database');
               
               // Vérification de l'unicité du nom d'utilisateur et de l'adresse e-mail
               $result = mysql_query("
                    SELECT Nom_Utilisateur
                         , Adresse_Email
                    FROM Comptes_Utilisateurs
                    WHERE Nom_Utilisateur = '" . $_POST["TB_Nom_Utilisateur"] . "'
                    OR Adresse_Email = '" . $_POST["TB_Adresse_Email"] . "'
               ");
               
               // Si une erreur survient
               if(!$result)
               {
                    $message = "Erreur d'accès à la base de données lors de la vérification d'unicité";
               }
               else
               {
                   
                    // Si un enregistrement est trouvé
                    if(mysql_num_rows($result) > 0)
                    {
                         
                         while($row = mysql_fetch_array($result))
                         {
                             
                              if($_POST["TB_Nom_Utilisateur"] == $row["Nom_Utilisateur"])
                              {
                                   $message = "Le nom d'utilisateur " . $_POST["TB_Nom_Utilisateur"];
                                   $message .= "est déjà utilisé";
                              }
                              elseif($_POST["TB_Adresse_Email"] == $row["Adresse_Email"])
                              {
                                   $message = "L'adresse e-mail " . $_POST["TB_Adresse_Email"];
                                   $message .= "est déjà utilisée";
                              }
                             
                         }
                         
                    }
                    else
                    {
                         
                         // Génération de la clef d'activation
                         $caracteres = array("a", "b", "c", "d", "e", "f", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
                         $caracteres_aleatoires = array_rand($caracteres, 8);
                         $clef_activation = "";
                         
                         foreach($caracteres_aleatoires as $i)
                         {
                              $clef_activation .= $caracteres[$i];
                         }
                         
                         // Création du compte utilisateur
                         $result = mysql_query("
                              INSERT INTO Comptes_Utilisateurs(
                                   Nom_Utilisateur
                                   , Mot_de_Passe
                                   , Adresse_Email
                                   , Date_Inscription
                                   , Clef_Activation
                              )
                              VALUES(
                                   '" . $_POST["TB_Nom_Utilisateur"] . "'
                                   , '" . md5($_POST["TB_Mot_de_Passe"]) . "'
                                   , '" . $_POST["TB_Adresse_Email"] . "'
                                   , '" . time() . "'
                                   , '" . $clef_activation . "'
                              )
                         ");
                         
                         // Si une erreur survient
                         if(!$result)
                         {
                              $message = "Erreur d'accès à la base de données lors de la création du compte utilisateur";
                         }
                         else
                         {
                             
                              // Envoi du mail d'activation
                              $sujet = "Activation de votre compte utilisateur";
                             
                              $message = "Pour valider votre inscription, merci de cliquer sur le lien suivant :\n";
                              $message .= "http://" . $_SERVER["SERVER_NAME"];
                              $message .= "/activer-compte-utilisateur.php?id=" . mysql_insert_id();
                              $message .= "&clef=" . $clef_activation;
                             
                              // Si une erreur survient
                              if(!@mail($_POST["TB_Adresse_Email"], $sujet, $message))
                              {
                                   $message = "Une erreur est survenue lors de l'envoi du mail d'activation<br />\n";
                                   $message .= "Veuillez contacter l'administrateur afin d'activer votre compte";
                              }
                              else
                              {
                                   
                                   // Message de confirmation
                                   $message = "Votre compte utilisateur a correctement été créer<br />\n";
                                   $message .= "Un email vient de vous être envoyer afin de l'activer";
                                   
                                   // On masque le formulaire
                                   $masquer_formulaire = true;
                                   
                              }
                             
                         }
                         
                    }
                   
               }
               
          }
         
          // Fermeture de la connexion à la base de données
          mysql_close($db);
         
     }
     
}

?>

Re: Probleme inscription

par Perrin » 08 mai 2010, 16:46

encore 2 messages d'erreur :(

Notice: Undefined index: TB_Mot_De_Passe in C:\wamp\www\php\inscription.php on line 24

Warning: mysql_close(): no MySQL-Link resource supplied in C:\wamp\www\php\inscription.php on line 157

Re: Probleme inscription

par Perrin » 08 mai 2010, 16:23

bien ce qui me semble que c'etait cela, en tout qu'a je te remercie pour toute c'est info!
j'essaye voir si sa fonctionnent :)

Re: Probleme inscription

par visualight » 08 mai 2010, 16:21

Exemple pour : if (!preg_match("/^[A-Za-z0-9_]{4,20}$/", $_POST["TB_Mot_De_Passe"])) {
On accepte chiffres et lettres, minimum de 4 caractères et maximum de 20.

A+ ;)

NB: Voir ma signature si ton problème est résolu ;) :D

Re: Probleme inscription

par Perrin » 08 mai 2010, 16:13

{4,20} signifie ??

( je débute 8-| )

Re: Probleme inscription

par visualight » 08 mai 2010, 16:11

} elseif (!preg_match("/^[A-Za-z0-9_]{4,20}$/", $_POST["TB_Mot_De_Passe"])) {
Bien sûr, je te laisse le soin de voir pour {4,20} ;)

Re: Probleme inscription

par Perrin » 08 mai 2010, 16:05

oui sa fonctionne avec le premier que tu ma passé

Re: Probleme inscription

par visualight » 08 mai 2010, 16:04

Essaye déjà avec un seul preg_match pour voir ce que ça raconte et si c'est OK, passe aux autres.