IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] Faire apparaitre une fonction


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Points : 38
    Points
    38
    Par défaut [Mail] Faire apparaitre une fonction
    Bonjour,
    Voila je suis pas très débrouillard ( on peut dire ) avec les fonctions et j'ai un peu de mal avec celle qui suit...

    On récupère déja les variables principales :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if ( (isset($_GET['code'])) && (isset($_GET['mail'])) ) {
    $code = $_GET['code'];
    $mail = $_GET['mail'];
    On génere un mot de passe prononciable :
    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
     
    function passeLisible($length = 6)
      {
      $passe = "";
      $consonnes = array("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "z", "bl", "br", "cl", "cr", "ch", "dr", "fl", "fr", "gl", "gr", "pl", "pr", "qu", "sl", "sr");
      $voyelles = array("a", "e", "i", "o", "u", "ae", "ai", "au", "eu", "ia", "io", "iu", "oa", "oi", "ou", "ua", "ue", "ui");
     
      $nbrC = count($consonnes) - 1;
      $nbrV = count($voyelles) - 1;
     
      for ($i = 0; $i < $length; $i++)
        {
        $passe .= $consonnes[rand(0, $nbrC)] . $voyelles[rand(0, $nbrV)];
        }
     
      return substr($passe, 0, $length);
      }
    Puis modifier le mdp actuel avec ce que la fonction à générer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $sql =' UPDATE membre SET pass="' . passeLisible() . '" WHERE mail="' . $mail . '" ';
    $res = mysql_query($sql)or die('erreur sql<br>'.$sql.'<br>'.mysql_error());
    Puis envoyer le mdp généré par mail :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $mailexp = "no-reply@.com";			
    $objet = "Votre mot de passe";							
    $siteweb = "http://";	
    $newpass = "' . passeLisible() . '";
     
     
    Mail("$mail","$objet","Bonjour,\n\n\nVoici ci-dessous votre nouveau mot de passe, vous pouvez le changer à votre guise via votre page de Profil: $newpass \n\n       $siteweb\n\nMerci !\n\n\nPS: merci de ne pas répondre à ce courrier.","from: $mailexp");
    Voila !
    Soucis...ca marche pas !!

    Dans l'email, ca s'affiche : ' . passeLisible() . '
    Et le mdp n'est pas changé dans la table mysql...


    En vous remerciant d'avance...
    Mad

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ta concatenation est mal faite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $newpass = "'" . passeLisible() . "'";

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Thanks pour la réponse mais ca doit pas être ca...

    Je reçois maintenant une fatal erreur...

    Fatal error: Call to undefined function passeLisible() in /opt/lampp/htdocs/accueil-dl.getenjoyment.net/ini_mail.php on line 65


    ( ligne65 = $newpass = "'" . passeLisible() . "'"; )




    De plus, y a til une erreur avec la requete mysql car ca ne change pas le mdp.. ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    ou est ta fonction par rapport a l'update et l'envoi du mail ?

    de plus il a un probleme de logique dans ton code :
    le mail envoi passeLisible() et l'update se fait avec passeLisible() mais la fonction ne renvoit pas deux fois la meme chose.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    J'ai finalement modif "à fond" le script et tout fonctionne niquel..
    J'y ai trouvé quelques élements qui pouvait provoquer des erreurs donc ca doit être ca !

    Impéc, merci encore !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/07/2010, 19h02
  2. Fonction include, faire apparaitre une source
    Par midnnight dans le forum Langage
    Réponses: 2
    Dernier message: 26/03/2009, 05h21
  3. [Mail] bouton appelle une fonction
    Par man123 dans le forum Langage
    Réponses: 2
    Dernier message: 15/11/2005, 20h35
  4. [C#] Faire apparaitre une "button box" ?
    Par mavina dans le forum ASP.NET
    Réponses: 17
    Dernier message: 25/07/2005, 17h55
  5. [Plugin / Graphique] Faire apparaitre une fenêtre?
    Par relivio dans le forum Eclipse Platform
    Réponses: 7
    Dernier message: 31/03/2004, 20h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo