Annonce

  •  » Utilisation
  •  » Astuce pour recevoir un mail lors d'une demande d'inscription.

#1 2007-01-17 23:58:04

seb69
Membre
2005-09-24
45

Astuce pour recevoir un mail lors d'une demande d'inscription.

Bonsoir,

Après avoir cherché un peu partout, et utilisant  PWG 1.6.2 chez FREE, le mod rvm ne fonctionnant pas, j'ai fait une petite manip pour que lorsqu'un visiteur désirant s'inscrire, pwg m'envoie un mail afin de lui octroyer les nouveaux droits. Comme ma galerie est complètement privée, J'ai dû également rajouter quelques champs dans le "register.tpl" car de juste avoir l'identifiant n'était pas très parlant pour accepter ou non l'inscription.

Voila pour compléter le formulaire du "register.tpl":

Code:

///////////////////////////////////
////////////////////////find:

<form method="post" action="{F_ACTION}" class="properties" name="register_form">

///////////////////////////////////sujet du mail///////////////////////
///////////////////add, after:

<input type="hidden" name="subject" value="[enregistrement]">
//////////////////////////////////////////////////////////////////////
/////////////////find:

    <legend>{lang:Enter your personnal informations}</legend>
    <ul>
/////////////////////////////////add, after:
  <li>
        <span class="property">
          <label for="nom">{lang:Firstname}</label>
        </span>
        <input type="text" name="nom" id="nom" value="{F_NOM}" >
      </li>
    <li>
        <span class="property">
          <label for="prenom">{lang:Lastname}</label>
        </span>
        <input type="text" name="prenom" id="prenom" value="{F_PRENOM}" >
      </li>
//////////////////////////////////////////////

puis pour que tous les champs soient remplis, tout est obligatoire
Dans register.php:

Code:

//////////////////////////////////////////////////////////
/////////////////////////// find
$errors = array();
if (isset($_POST['submit']))
{
  if ($_POST['password'] != $_POST['password_conf'])
  {
    array_push($errors, $lang['reg_err_pass']);
  }

/////////////////////////////////////////////////////////////
///////////////////////////add, after:

   elseif($_POST['password'] == '')
  {
    array_push($errors, $lang['reg_err_pass']);
  }
  elseif($_POST['mail_address'] == '')
  {
    array_push($errors, $lang['reg_err_mail']);
  }
    elseif($_POST['nom'] == '')
  {
    array_push($errors, $lang['reg_err_nom']);
  }
    elseif($_POST['prenom'] == '')
  {
    array_push($errors, $lang['reg_err_prenom']);
  }
////////////////////////////////////////////////////////////////////
////////////////////////////find:

'F_ACTION' => 'register.php',

///////////////////////////////////////////////////////////////
/////////////////////////add, after:

  'F_NOM' => $nom,
  'F_PRENOM' => $prenom,

/////////////////////////////////////////////////////////////
///////////////////////find:

  else
  {
    $errors =
      array_merge(
        $errors,
        register_user($_POST['login'],
                      $_POST['password'],
                      $_POST['mail_address'])
        );

//////////////////////////////////////////////////////////////
//////////////////////////////add, after

if (count($errors) == 0)
  {
$TO = "votremail@free.fr";                        //// changer par l'adresse de contact qui vous intéresse
$h  = "From: " . $TO;
$message = "Nouveau ";
while (list($key, $val) = each($HTTP_POST_VARS)) {
  $message .= "$key : $val\n";
}
$message=stripslashes($message) ;

mail($TO, $subject, $message, $h);
}

/////////////////////////////////////////////////////////////

Pour obliger à inscrire son adresse mail, j'ai utilisé ceci expliqué dans le wiki:
rendre l'email obligatoire à l'inscription

bon il ne vous reste plus qu'à compléter  les fichiers de langue qui vont bien ...

Voila, j'ai fait des tests dans tous les sens, pas de problèmes; j'espère n'avoir rien oublié ... il ne me reste plus qu'a intégrer les champs "nom" et "prénom" dans la BDD et le menu administration.

C'est basique, mais c'est ce que je cherchais.
Bonne nuit,

Sébastien

Hors ligne

#2 2007-01-18 09:15:10

vimages
Membre
2004-03-27
2429

Re: Astuce pour recevoir un mail lors d'une demande d'inscription.

A première vue ça à l'air super.

Cette modification répond en partie à une de mes préocupations.

Je vais tester ça et pourquoi pas l'intégrer...

Il y aurait peut-être quelque chose à faire à ce sujet, en terme d'évolution. C'est à dire, créer tous ces champs (+ un, "commentaires")  dans la version officielle, puis par les pages admin, ou le fichier $conf, permettre aux webmaster des les rendre obligatoire ou non ..


merci,
éric.

Dernière modification par vimages (2007-01-18 09:18:09)

Hors ligne

#3 2007-01-18 11:59:14

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Astuce pour recevoir un mail lors d'une demande d'inscription.

Il existe déjà 1 ou 2 fiche sur les mails obligatoires, etc...
Tu peux les enrichir si tu veux.

Sinon en 1.7, l'envoi de mail automatique au webmaster à la création d'un user a été inclus.

Hors ligne

#4 2007-01-18 15:15:59

seb69
Membre
2005-09-24
45

Re: Astuce pour recevoir un mail lors d'une demande d'inscription.

vimages a écrit:

permettre aux webmaster des les rendre obligatoire ou non ..

...très bonne idée.

C'est étrange que personne n'ait songé à l'intégrer bien avant la 1.7???
Bon d'un autre côté, cela ne doit pas intéresser grand monde vu le peu d'info que l'on trouve sur le forum.
Par contre le mail que cela génère n'est vraiment pas beau, mais contient juste les info.
Enfin, patientons pour avoir une belle chose avec la 1.7

Bonne journée

Sébastien

Hors ligne

#5 2007-01-18 17:07:29

lterras
Membre
Rousset
2007-01-16
60

Re: Astuce pour recevoir un mail lors d'une demande d'inscription.

Merci Sébastien !

ça marche pil poil ! C'est adopté!
J'ai juste un peu mis mon grain de sel...

  if (count($errors) == 0)
  {
    $TO = get_webmaster_mail_address();      <-- L'adresse du webmaster, c'est pas ton adresse? 
    $h  = "From: " . $TO;
    $message = "Nouveau ";
    while (list($key, $val) = each($HTTP_POST_VARS)) {
      $message .= "$key : $val\n";
    }
    $message=stripslashes($message) ;
    $subject = $lang['A new user has been registered']; <-- car je crois que le sujet des messages étaient vide....
    mail($TO, $subject, $message, $h);
  }

En tout cas, tip top !

laurence

Dernière modification par lterras (2007-01-18 17:10:33)

Hors ligne

#6 2007-01-18 18:06:47

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Astuce pour recevoir un mail lors d'une demande d'inscription.

seb69 a écrit:

C'est étrange que personne n'ait songé à l'intégrer bien avant la 1.7???

Le manque de temps, d'autres priorités...
Le fait aussi qu'une fonction mail spécifique 1.6 n'est arrivé qu'en 1.6
...

seb69 a écrit:

Par contre le mail que cela génère n'est vraiment pas beau, mais contient juste les info.
Enfin, patientons pour avoir une belle chose avec la 1.7

Plus beau pas en 1.7, mais en 1.7, on aura la possibilité d'envoyer des mails en HTML...
Donc en 1.8 ou >, quelqu'un aura surement le temps ou l'envie de faire plus beau...
Et il a aussi des MOD qui sont intégrés en standard quand ils sont intéressants alors à bon entendeur... ;-)

Hors ligne

#7 2007-01-18 18:10:36

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Astuce pour recevoir un mail lors d'une demande d'inscription.

seb69 a écrit:

if (count($errors) == 0)
  {
$TO = "votremail@free.fr";                        //// changer par l'adresse de contact qui vous intéresse
$h  = "From: " . $TO;
$message = "Nouveau ";
while (list($key, $val) = each($HTTP_POST_VARS)) {
  $message .= "$key : $val\n";
}
$message=stripslashes($message) ;

mail($TO, $subject, $message, $h);
}

Par exemple ici au lieu de mail, tu utilises pwg_mail et tu intégres la fonction de pwg.
Tu peux donc virer les $to, les get_webmaster_mail_address, etc...

Hors ligne

#8 2007-01-18 19:43:52

seb69
Membre
2005-09-24
45

Re: Astuce pour recevoir un mail lors d'une demande d'inscription.

merci je pouvoir améliorer ces bouts de code...
Pour Iteras, si j'avais mis ça

<input type="hidden" name="subject" value="[enregistrement]">

dans le formulaire pour avoir un sujet.
et

$TO = get_webmaster_mail_address();      <-- L'adresse du webmaster, c'est pas ton adresse?

et non, voila pourquoi !

Merci,
bonne soirée.

Sébastien

Dernière modification par seb69 (2007-01-18 19:48:24)

Hors ligne

#9 2007-05-08 11:10:53

djalouk
Membre
2007-05-05
13

Re: Astuce pour recevoir un mail lors d'une demande d'inscription.

Merci pour le petit complément, exactement ce dont j'avais besoin.

Maintenant un petit détail.
Quelle fonction (javascript ?) faut il modifier pour que le curseur arrive par défaut sur le champ prénom, qui est le premier maintenant, car par défaut c'est nom utilisateur qui est devenu le 3ème champ. Merci

Hors ligne

#10 2007-05-08 19:02:56

Gotcha
Ex Equipe Piwigo
Pierrelatte (26)
2007-03-14
13331

Re: Astuce pour recevoir un mail lors d'une demande d'inscription.

djalouk a écrit:

Merci pour le petit complément, exactement ce dont j'avais besoin.

Maintenant un petit détail.
Quelle fonction (javascript ?) faut il modifier pour que le curseur arrive par défaut sur le champ prénom, qui est le premier maintenant, car par défaut c'est nom utilisateur qui est devenu le 3ème champ. Merci

Ta ta page register.tpl tu as une ligne qui appel la fonction javascript qu'il te faut modifier.
Il n'y a qu'une seule ligne^^
Regardes sont fonctionnement et tu trouveras la solution (comme moi) pour changer la positions du curseur !

Si vraiment tu sèches je te donnerais la solution évidement !

++

[EDIT]
Par contre j'ai soit fait une boulette, soit trop de modifications nuises aux modifications car si j'arrive péniblement à recevoir un mail pour me signaler qu'un nouvelle usagé vient de s'inscrire, lorsque celui si finalise sa demande, juste parès avoir cliqué sur "Envoi", il m'apparait des messages d'erreur le temps que le page se stabilise.
J'ai réussi à faire une capture:
http://img479.imageshack.us/img479/8486/image1pz3.th.png

Au final tout marche, mais les messages d'erreurs ça cache toujours un disfonctionnement quelque part^^

De plus, le Webmaster en recevant le mail automatique, il reçoit aussi le mot de mot de passe en CLAIR !!!
C'est assez maladroit :S

Code:

while (list($key, $val) = each($HTTP_POST_VARS)) {
  $message .= "$key : $val\n";
}

Ca doit venir de là non ?
...

Dernière modification par Gotcha (2007-05-08 19:46:35)


Ayez comme premier réflexe de consulter le wiki.
Ensuite, veuillez effectuer une recherche sur le forum avant de poser votre question.

LE FAIRE EST LE REVELATEUR DE L'ETRE

Hors ligne

  •  » Utilisation
  •  » Astuce pour recevoir un mail lors d'une demande d'inscription.

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact