bonjour,
j'ai rédigé grâce à votre aide un script d'envoi de mot de passe oublié avec une génération aléatoire;
j'avais oublié un petit détail d'importance, c' est la modification du mot de passe dans la bdd au moment de l'envoi, puisque l'utilisateur en recevra un nouvellement généré
j'ai donc rajouté la ligne (en gras) et j'ai un message d'erreur de syntaxe concernant une ) et je ne comprends pas où est l'erreur
merci d'avance
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php

mysql_connect("localhost", "root", "");
mysql_select_db("inscription");
   $result = mysql_query("
                    SELECT username, email
                    FROM site_user WHERE username = '" . $_POST["username"] . "'
                    OR email = '" . $_POST["email"] . "'
               ");			  
		
            // Si un enregistrement est trouvé
                 if(mysql_num_rows($result) > 0)
				{
                   while($row = mysql_fetch_array($result))
			  {                       
                         
// ----------
// Génération d'un mot de passe de 8 caractères alpha-numériques
// ----------
$tableau = array("0","1","2","3","4","5","6","7","8","9",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n",
"o","p","q","r","s","t","u","v","w","x","y","z",
"A","B","C","D","E","F","G","H","I","J","K","L","M","N",
"O","P","Q","R","S","T","U","V","W","X","Y","Z");
// ----------
$valeurs_aleatoires = array_rand($tableau, 8);
// ----------
$mot_de_passe = "";

foreach($valeurs_aleatoires as $i)
{
     $mot_de_passe = $mot_de_passe . $tableau[$i];
	 }
	$updateSQL= "UPDATE site_user SET password WHERE username = '" . $_POST["username"] . "'
                    OR email = '" . $_POST["email"] . "'
               ");	}		  					  					                   		   
if (isset($_POST['envoye']) && $_SERVER['HTTP_REFERER'] == 'http://localhost/balthazar/accueil/contact.php')
{
    /* Récupération des valeurs des champs du formulaire */
    if (get_magic_quotes_gpc())
    {
      
      $username = stripslashes(trim($_POST['username']));
      $email	= stripslashes(trim($_POST['email']));
    
    }
    else
    {    
      $username	    = trim($_POST['username']);
      $email	= trim($_POST['email']);
     
    }
 
    /* Expression régulière permettant de vérifier si le 
	* format d'une adresse e-mail est correct */
    $regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
    
    /* Expression régulière permettant de vérifier qu'aucun 
    * en-tête n'est inséré dans nos champs */
    $regex_head = '/[\n\r]/';
 
    /* On vérifie que tous les champs sont remplis */
    if (empty($username)          
         || empty($email) )
           
    {
      $alert =  'Tous les champs doivent être renseignés';
    }
    /* On vérifie que le format de l'e-mail est correct */
    elseif (!preg_match($regex_mail, $email))
    {
      $alert =  'L\'adresse '.$email.' n\'est pas valide';
    }   
    
    /* Si aucun problème et aucun cookie créé, on construit le message et on envoie l'e-mail */
    elseif (!isset($_COOKIE['sent']))
    {
        /* Destinataire (votre adresse e-mail) */
        $to = 'martialb333@laposte.net';
 // Envoi du mail 
                              $sujet = "envoi mot de passe oublié";
                              $message = "Voici votre nouveau mot de passe :\n";                              $message .= "&password=" . $mot_de_passe;
                              
                              // Si une erreur survient
                              if(!@mail($_POST["email"], $sujet, $message))
                              {
                              $alert = "Une erreur est survenue lors de l'envoi du mail <br />\n";
                              }
                              else
                              {
                                   
                                   // Message de confirmation
                                   $alert = "Vous avez reçu votre nouveau mot de passe<br />\n";
                                   $alert .= "Un email vient de vous être envoyé";
								   
								  }
								}
								 /* On créé un cookie de courte durée (ici 120 secondes) pour éviter de  renvoyer un mail en rafraichissant la page */
            setcookie("sent", "1", time() + 120);
            
            /* On détruit la variable $_POST */
            unset($_POST);
        }
        else
        {
            $alert = 'Erreur d\'envoi de l\'e-mail';
        }
          
    }
    /* Cas où le cookie est créé et que la page est rafraichie, on détruit la variable $_POST */
    else
    {
        unset($_POST);
    }