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() . "'";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  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.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

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