Formulaire d'inscription

Adrienhb

Membre expert
Club iGen
25 Octobre 2002
3 516
291
47
La Ville Lumière
Hullo,

Mes connaissances en langage web et autres étant des plus limitées, je me tourne vers vous:
J'aurais besoin de créer sur internet une page contenant un formulaire: les visiteurs y inscriraient leurs noms, prénoms et mail (voir le nombre de personnes qui les accompagneraient ainsi que leurs noms et prénoms), et une fois le tout validé ils recevraient un mail de confirmation et les infos me seraient transmises.

Comment puis-je faire cela siouplaît?

Grand merci par avance,

A.
 
:mouais: "petit" ?? :rateau: :p

Euh oky... :eek::confused:

Merci pour la piste... mais euh... y aurait pas un copier/coller que je puisse faire?

Pasque là... chuis un peu perdu... :(

Merci,

A.
Ce n'est pas possible un copier coller, de toutes façon il faut gérer une base de données etc...

Par contre il y a des forums (phpBB...), CMS (Joomla...), Blog (Wordpress...) tout fait avec des espaces membres tout fait aussi.


Mais tu as tout as gagner à apprendre PHP ;)
 
Ce n'est pas possible un copier coller, de toutes façon il faut gérer une base de données etc...

Par contre il y a des forums (phpBB...), CMS (Joomla...), Blog (Wordpress...) tout fait avec des espaces membres tout fait aussi.


Mais tu as tout as gagner à apprendre PHP ;)

Euh sans doute, mais bon je fais rarement des sites aussi... :siffle:

Mais tu as mis le doigt sur ce que je pensais: lorsque j'ai créé un forum sur mon compte free, il m'a suffit d'y ajouter un "module", je me demandais s'il existait la même chose pour des formulaires.
Par contre pas compris ce que tu voulais dire par les espaces membres.

A.
 
Euh sans doute, mais bon je fais rarement des sites aussi... :siffle:

Mais tu as mis le doigt sur ce que je pensais: lorsque j'ai créé un forum sur mon compte free, il m'a suffit d'y ajouter un "module", je me demandais s'il existait la même chose pour des formulaires.
Par contre pas compris ce que tu voulais dire par les espaces membres.

A.
normal que t'ai pas compris j'avais tout mélangé, ce que tu veux c'est une inscription non pas au site mais à une newsletter, c'est tout à fait différent !!

va voir pas là :
http://gregory.kokanosky.free.fr/v4/phpmynewsletter/
http://www.service-webmaster.fr/admin-service-newsletter/page-index.html (bof bof mais premier résultat sur google...)

Cherche un peu (Google is your friend) tu va voir il y a plein de service gratuit pour ce genre de chose.


PHPMyNewsletter est très bien il parait :-)





Sinon tu peut faire un simple formulaire qui envoie l'adresse email, le nom est le prénom à ton adresse email puis tu te charge de l'inscription à la newsletter sur le services que tu utilise (googlegroups, liste de diff Free...) :)
 
normal que t'ai pas compris j'avais tout mélangé, ce que tu veux c'est une inscription non pas au site mais à une newsletter, c'est tout à fait différent !!

Oups, désolé on ne s'est pas compris.
En fait valà, avec une assoce, on va faire une conférence et on voudrait que les gens s'inscrivent avant. Et le plus simple pour avoir toutes les infos dont on a besoin serait qu'ils passent par un formulaire en ligne, formulaire qui accuserait réception de leur inscription et qui nous enverrait les infos.
Donc non non pas de mailing-list en vue.

Mais grand merci du coup de main.

A.
 
Oups, désolé on ne s'est pas compris.
En fait valà, avec une assoce, on va faire une conférence et on voudrait que les gens s'inscrivent avant. Et le plus simple pour avoir toutes les infos dont on a besoin serait qu'ils passent par un formulaire en ligne, formulaire qui accuserait réception de leur inscription et qui nous enverrait les infos.
Donc non non pas de mailing-list en vue.

Mais grand merci du coup de main.

A.
Pitaing je suis leeennnt pour comprendre.

alors tu fais un formulaire qui envoie deux mail, c'est tout simple.

ton hébergeur te propose bien PHP ?
 
Hé ho! c'est pas ta faute du tout, c'est moi !!
Vi, c'est bien ça!

Merci,

A.
Je te ferais ça et je le mettrais ici, mais là je dois y aller, il y a NCIS qui va commencer et après il y a Alias... :rose: je le fais après si je suis encore en état (ça fini vers une heure et j'ai cours demain...) ou demain si personne d'autre ne l'a fait entre temps ;)
 
  • J’aime
Réactions: Adrienhb
Hé ho! c'est pas ta faute du tout, c'est moi !!

Je te ferais ça et je le mettrais ici, mais là je dois y aller, il y a NCIS qui va commencer et après il y a Alias... :rose: je le fais après si je suis encore en état (ça fini vers une heure et j'ai cours demain...) ou demain si personne d'autre ne l'a fait entre temps ;)


Merci, c'est super sympa. :up:
Tu pourras me montrer comment ajouter des champs?

Bonnes séries!

A.
 
Bon alors voilà le formulaire, pour l'exemple, je vais appeler la page qui le contient inscription.html :
Bloc de code:
<form name="inscription" method="post" action="process_inscription.php">
  <p>
    <label for="nom">Nom :</label> <input type="text" name="nom" id="nom" /><br />
    <label for="prenom">Prenom :</label> <input type="text" name="prenom" id="prenom" /><br />
    <label for="email">Email :</label> <input type="text" name="email" id="email" /><br />
    <input type="text" name="city" id="city" style="display:none;" />
    <input type="submit" name="Envoyer" value="Envoyer" />
  </p>
</form>
Tu peux &#233;videmment mieux pr&#233;senter &#231;a avec un tableau (l&#224; on peut :)), css etc...
le champ texte "city" est cach&#233; avec css, c'est une m&#233;thode toute simple (et pas super efficace mais mieux que rien) contre le spam : les robots vont la remplir alors que les vrai visiteur non vu qu'il ne la voit pas, donc il suffira de tester si c'est vide ou non, si c'est pas vide on envoie pas de mail :)

Voici le contenu de la page process_inscription.php
Bloc de code:
<?php
if (isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['email'])) {
  if ($_POST['city'] != '') {
    header('Location: inscription.html');
  }
  elseif (!preg_match('!^[a-zA-Z0-9\.\+_-]+@[a-zA-Z0-9\._-]+\.[a-zA-Z]{2,4}$!U', $_POST['email'])) {
    echo 'l\'adresse email fourni n\'est pas valide';
  }
  else {
    $headers = 'Content-type: text/html; charset=utf-8' . "\r\n";
    $headers .= 'From: '.$_POST['prenom'].' '.$_POST['nom'].' <'.$_POST['email'].'>' . "\r\n";
    $subject = '[Incsription] '.$_POST['prenom'].' '.$_POST['nom'];
    $mail_content = '<em>Mail envoyer depuis le formulaire d\'inscription du site.</em><br /><br />';
    $mail_content .= 'Nom : <strong>'.$_POST['nom'].'</strong><br />';
    $mail_content .= 'Prenom : <strong>'.$_POST['prenom'].'</strong><br />';
    $mail_content .= 'Mail : <a href="mailto:'.$_POST['email'].'">'.$_POST['email'].'</a><br />';
    if (mail('[email protected]', $subject, $mail_content, $headers)) {
      $headers = 'Content-type: text/html; charset=utf-8' . "\r\n";
      $headers .= 'From: tonsite <[email protected]>' . "\r\n";
      $subject = '[Incsription] '.$_POST['prenom'].' '.$_POST['nom'];
      $mail_content = '<em>Ceci est un mail de confirmation de votre inscription.</em><br /><br />Vous avez envoy&#233; : <br />';
      $mail_content .= 'Nom : <strong>'.$_POST['nom'].'</strong><br />';
      $mail_content .= 'Prenom : <strong>'.$_POST['prenom'].'</strong><br />';
      $mail_content .= 'Mail : <a href="mailto:'.$_POST['prenom'].'">'.$_POST['email'].'</a><br />';
      if (mail($_POST['email'], $subject, $mail_content, $headers)) {
        echo 'Votre inscription a bien &#233;t&#233; envoy&#233;e et un mail de confirmation de votre inscription vous a &#233;t&#233; envoy&#233; !';
      }
      else {
        echo 'Votre inscription a bien &#233;t&#233; envoy&#233;e';
      }
    }
    else {
      echo 'Une erreur est survenue, votre inscription n\'a pas pu &#234;tre envoy&#233;e<br />Merci de bien vouloir r&#233;essayer.';
    }
  }
}
else {
  header('Location: inscription.html');
}
?>
Lis bien tout (tu verra c'est pas compliqu&#233; &#224; comprendre) et remplace les "[email protected]" par exemple par les vrai renseignement.

Pour rajouter des champs, il suffit de les ajout&#233;s au formulaire, puis de les ajouter dans le mail (il seront $_POST['nom_du_champ']) sous la m&#234;me forme que les autres.


Si tu as des questions n'h&#233;sites pas &#224; les poser :)
 
Si tu as des questions n'h&#233;sites pas &#224; les poser :)

Wooo, g&#233;nial, merci beaucoup!
:up: :up: :up: :up: :up:

Mais juste pour &#234;tre s&#251;r: il faut que je cr&#233;e un fichier inscription.html et un fichier process_inscription.php?
Et je mets les deux sur mon ftp?

Si je veux inclure un champs "Profession", cela donne ceci dans chacun des deux documents?

Bloc de code:
<form name="inscription" method="post" action="process_inscription.php">
  <p>
    <label for="nom">Nom :</label> <input type="text" name="nom" id="nom" /><br />
    <label for="prenom">Prenom :</label> <input type="text" name="prenom" id="prenom" /><br />
[B][I]<label for="profession">Profession :</label> <input type="text" name="profession" id="profession" /><br />[/I][/B]
    <label for="email">Email :</label> <input type="text" name="email" id="email" /><br />
    <input type="text" name="city" id="city" style="display:none;" />
    <input type="submit" name="Envoyer" value="Envoyer" />
  </p>
</form>
et


Bloc de code:
<?php
if (isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['email'])) {
  if ($_POST['city'] != '') {
    header('Location: inscription.html');
  }
  elseif (!preg_match('!^[a-zA-Z0-9\.\+_-]+@[a-zA-Z0-9\._-]+\.[a-zA-Z]{2,4}$!U', $_POST['email'])) {
    echo 'l\'adresse email fourni n\'est pas valide';
  }
  else {
    $headers = 'Content-type: text/html; charset=utf-8' . "\r\n";
    $headers .= 'From: '.$_POST['prenom'].' '.$_POST['nom'].' <'.$_POST['email'].'>' . "\r\n";
    $subject = '[Incsription] '.$_POST['prenom'].' '.$_POST['nom'];
    $mail_content = '<em>Mail envoyer depuis le formulaire d\'inscription du site.</em><br /><br />';
    $mail_content .= 'Nom : <strong>'.$_POST['nom'].'</strong><br />';
    $mail_content .= 'Prenom : <strong>'.$_POST['prenom'].'</strong><br />';
    $mail_content .= 'Mail : <a href="mailto:'.$_POST['email'].'">'.$_POST['email'].'</a><br />';
    if (mail('[email protected]', $subject, $mail_content, $headers)) {
      $headers = 'Content-type: text/html; charset=utf-8' . "\r\n";
      $headers .= 'From: tonsite <[email protected]>' . "\r\n";
      $subject = '[Incsription] '.$_POST['prenom'].' '.$_POST['nom'];
      $mail_content = '<em>Ceci est un mail de confirmation de votre inscription.</em><br /><br />Vous avez envoy&#233; : <br />';
      $mail_content .= 'Nom : <strong>'.$_POST['nom'].'</strong><br />';
      $mail_content .= 'Prenom : <strong>'.$_POST['prenom'].'</strong><br />';
[B][I]       $mail_content .= 'Profession : <strong>'.$_POST['profession'].'</strong><br />';[/I][/B]
      $mail_content .= 'Mail : <a href="mailto:'.$_POST['prenom'].'">'.$_POST['email'].'</a><br />';
      if (mail($_POST['email'], $subject, $mail_content, $headers)) {
        echo 'Votre inscription a bien &#233;t&#233; envoy&#233;e et un mail de confirmation de votre inscription vous a &#233;t&#233; envoy&#233; !';
      }
      else {
        echo 'Votre inscription a bien &#233;t&#233; envoy&#233;e';
      }
    }
    else {
      echo 'Une erreur est survenue, votre inscription n\'a pas pu &#234;tre envoy&#233;e<br />Merci de bien vouloir r&#233;essayer.';
    }
  }
}
else {
  header('Location: inscription.html');
}
?>
Mmmh... j'oublie des trucs dans le second texte non?
:rose:

Et sinon si je veux placer un chtit texte d'intro pour dire que "blablabla vous devez remplir ces champs", je peux le mettre o&#249;?


Encore un grand grand merci!

A.
 
Wooo, g&#233;nial, merci beaucoup!
:up: :up: :up: :up: :up:

Mais juste pour &#234;tre s&#251;r: il faut que je cr&#233;e un fichier inscription.html et un fichier process_inscription.php?
Et je mets les deux sur mon ftp?

Si je veux inclure un champs "Profession", cela donne ceci dans chacun des deux documents?

Bloc de code:
<form name="inscription" method="post" action="process_inscription.php">
  <p>
    <label for="nom">Nom :</label> <input type="text" name="nom" id="nom" /><br />
    <label for="prenom">Prenom :</label> <input type="text" name="prenom" id="prenom" /><br />
[B][I]<label for="profession">Profession :</label> <input type="text" name="profession" id="profession" /><br />[/I][/B]
    <label for="email">Email :</label> <input type="text" name="email" id="email" /><br />
    <input type="text" name="city" id="city" style="display:none;" />
    <input type="submit" name="Envoyer" value="Envoyer" />
  </p>
</form>
et


Bloc de code:
<?php
if (isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['email'])) {
  if ($_POST['city'] != '') {
    header('Location: inscription.html');
  }
  elseif (!preg_match('!^[a-zA-Z0-9\.\+_-]+@[a-zA-Z0-9\._-]+\.[a-zA-Z]{2,4}$!U', $_POST['email'])) {
    echo 'l\'adresse email fourni n\'est pas valide';
  }
  else {
    $headers = 'Content-type: text/html; charset=utf-8' . "\r\n";
    $headers .= 'From: '.$_POST['prenom'].' '.$_POST['nom'].' <'.$_POST['email'].'>' . "\r\n";
    $subject = '[Incsription] '.$_POST['prenom'].' '.$_POST['nom'];
    $mail_content = '<em>Mail envoyer depuis le formulaire d\'inscription du site.</em><br /><br />';
    $mail_content .= 'Nom : <strong>'.$_POST['nom'].'</strong><br />';
    $mail_content .= 'Prenom : <strong>'.$_POST['prenom'].'</strong><br />';
    $mail_content .= 'Mail : <a href="mailto:'.$_POST['email'].'">'.$_POST['email'].'</a><br />';
    if (mail('[email protected]', $subject, $mail_content, $headers)) {
      $headers = 'Content-type: text/html; charset=utf-8' . "\r\n";
      $headers .= 'From: tonsite <[email protected]>' . "\r\n";
      $subject = '[Incsription] '.$_POST['prenom'].' '.$_POST['nom'];
      $mail_content = '<em>Ceci est un mail de confirmation de votre inscription.</em><br /><br />Vous avez envoy&#233; : <br />';
      $mail_content .= 'Nom : <strong>'.$_POST['nom'].'</strong><br />';
      $mail_content .= 'Prenom : <strong>'.$_POST['prenom'].'</strong><br />';
[B][I]       $mail_content .= 'Profession : <strong>'.$_POST['profession'].'</strong><br />';[/I][/B]
      $mail_content .= 'Mail : <a href="mailto:'.$_POST['prenom'].'">'.$_POST['email'].'</a><br />';
      if (mail($_POST['email'], $subject, $mail_content, $headers)) {
        echo 'Votre inscription a bien &#233;t&#233; envoy&#233;e et un mail de confirmation de votre inscription vous a &#233;t&#233; envoy&#233; !';
      }
      else {
        echo 'Votre inscription a bien &#233;t&#233; envoy&#233;e';
      }
    }
    else {
      echo 'Une erreur est survenue, votre inscription n\'a pas pu &#234;tre envoy&#233;e<br />Merci de bien vouloir r&#233;essayer.';
    }
  }
}
else {
  header('Location: inscription.html');
}
?>
Mmmh... j'oublie des trucs dans le second texte non?
:rose:

Et sinon si je veux placer un chtit texte d'intro pour dire que "blablabla vous devez remplir ces champs", je peux le mettre o&#249;?


Encore un grand grand merci!

A.
c'est bon pour l'ajout du champ profession.

oui tu dois bien mettre les deux sur ton ftp.

Dans inscription.html tu peut rajouter ce que tu veux (texte d'intro etc...) ou tu veux.

Dans process_inscription.php tu peux par exemple ajouter &#224; la fin un lien de retour vers le site.


:)
 
Dans le second texte, il faut juste le rajouter qu'une fois? :confused:

En tout cas merci, je vais voir ensuite comment le mettre en place.

Bonne journée,

A. :up:
oui &#231;a suffit, sauf si tu veux v&#233;rifier aussi celui l&#224; : alors tu transforme la ligne
Bloc de code:
if (isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['email'])) {
en
Bloc de code:
if (isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['email']) && isset($_POST['profession'])) {

Ah oui nan en fait, il faut aussi rajouter ceci :
Bloc de code:
$mail_content .= 'Profession : <strong>'.$_POST['profession'].'</strong><br />';
apr&#232;s la premi&#232;re fois que la ligen qui concerne le pr&#233;nom apparaisse.
(la premi&#232;re s&#233;rie est le mail que tu recevra, la seconde le mail envoy&#233; &#224; la personne).