• italian
  • german
  • swedish
S'inscrire à la newsletter:
Rechercher dans le site:
*
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
22 Novembre 2008 à 23:23:05

Connexion avec identifiant, mot de passe et durée de la session



 
« sujet précédent | | sujet suivant »
Pages: 1 [2] 3 4 ... 13 Imprimer
Auteur Fil de discussion: Faire un formulaire HTML, CSS, PHP (1 sur 3)  (Lu 21090 fois)
Flore
Espoir
***

Points gagnés: 1
Messages: 101


Voir le profil
« Répondre #15 le: 24 Novembre 2006 à 16:14:07 »

Bonjour,

Ah !!! grand merci  Smile

Petite chose, avant de commencer a tripoter dans le php, tout les lignes de codes que tu explique dans le tutox, elle doivent se trouver ou ?
Directement dans le fichier html ou alors faut t'il créer un fichier indépendant php ?
Et si oui, quel nom doit t'il avoir ?

Finalement je ne sors pas des formulaire en ce moment … ce doit être une passion !!!  Laughing
Journalisée

--

Flore
damien
Rédacteur Admin
Intarrisable
*****

Points gagnés: 5
Messages: 2379


Voir le profil WWW
« Répondre #16 le: 24 Novembre 2006 à 17:19:46 »

Lequel ? la partie 3 ?

Dans mon tuto, c'est écrit le php va dans un fichier traitement.php séparé Wink
Et il est appelé dans l'action du formulaire donc c'est changeable :

Citation
<form method="post" action="traitement.php">
</form>
Journalisée

Cordialement,
Damien

Agence web - Annuaire Blog
Flore
Espoir
***

Points gagnés: 1
Messages: 101


Voir le profil
« Répondre #17 le: 24 Novembre 2006 à 18:57:24 »

Lequel ? la partie 3 ?

Dans mon tuto, c'est écrit le php va dans un fichier traitement.php séparé Wink
Et il est appelé dans l'action du formulaire donc c'est changeable :

Citation
<form method="post" action="traitement.php">
</form>

Oui  le 3, ok vu, lu et comprendu !!  Very Happy

Du coup, je me demande si je ne vais pas abondonner l'idée du PDF, il suffirait juste de créer le questionnaire comme tu le décris . Et d'envoyer par mail le lien du dis questionnaire.

Maintenant, je ne vois pas ou et quoi renseigner de mon adresse mail le bouton Envoyer. Car je présume, que l'on doit recevoir par mail les résultats du dis questionnaire ?

Bon c'est clair, j'y vais pas à pas, mais vous faites vraiment un sacré travail avec ces tutox, Bravo !!!  ola
Journalisée

--

Flore
damien
Rédacteur Admin
Intarrisable
*****

Points gagnés: 5
Messages: 2379


Voir le profil WWW
« Répondre #18 le: 24 Novembre 2006 à 22:33:17 »

En fait les deux choses les plus courantes qu'on fait avec un formulaire c'est :
- insérer les données en base de données
- envoyer les données par mail

Sur l'exemple du tuto, c'est la première chose qui est faite (insertion en base de données), donc ça n'envoie rien par email non.
Mais c'est transposable, il suffit de modifier l'endroit qui insérer en base de données et d'envoyer les données par email à la place. Si je reprend le tuto, par exemple :

Citation
  $sql = "INSERT INTO formulaire VALUES ('', '$civilite', '$nom', '$adresse', '$codepostal', '$ville', '$pays', '$sqlinterets', '$comments', now())";
  $res = mysql_query($sql);

  if ($res) {
    echo $msg_ok;
  } else {
    echo mysql_error();
  }

en

Citation
// Informations d'entête du mail:
$headers  ="MIME-Version: 1.0\r\n";
$headers .='From: ' . EXPEDITEUR_NOM;
$headers .=' <' . EXPEDITEUR_EMAIL . ">\r\n";
$headers .='Reply-To: '. EXPEDITEUR_EMAIL ."\r\n";
$headers .='Content-Type: text/plain; ';
$headers .='charset="iso-8859-1"'."\r\n";
$headers .="Content-Transfer-Encoding: 8bit\r\n";
$headers .='X-Mailer:PHP/' . phpversion() . "\r\n";

// sujet du mail
$sujet = "Formulaire du site";
// corps du mail
$message = "Civilite : $civilite \n Nom : $nom \n adresse : $adresse \n code postal :  $codepostal \n ville : $ville \n pays : $pays \n interets : $sqlinterets \n commentaires :  $comments";

$retval = mail("tonmail@example.com",$sujet,$message,$headers);

Dans le corps message on met toutes les valeurs des champs du formulaire avec des \n qui signifient un retour à la ligne par exemple.
Journalisée

Cordialement,
Damien

Agence web - Annuaire Blog
Flore
Espoir
***

Points gagnés: 1
Messages: 101


Voir le profil
« Répondre #19 le: 25 Novembre 2006 à 04:05:34 »

Donc ,si j'ai bien compris, dans le deuxième cas il n'est plus nécessaire d'avoir une base de données nommé "Formulaire" puisque toutes les infos arruveront chez moi.

Je tenterai tout ca demain, merci.
Journalisée

--

Flore
damien
Rédacteur Admin
Intarrisable
*****

Points gagnés: 5
Messages: 2379


Voir le profil WWW
« Répondre #20 le: 25 Novembre 2006 à 13:44:03 »

Oui tu as bien compris, soit tu t'envoies toutes les données par mail ou soit tu les stockes dans une base de données (pour pouvoir les consulter via une interface à développer aussi éventuellement).
Donc plus besoin de la table Formulaire (quoiqu'il reste possible de faire les deux combinés en cas de besoin bien sûr).
Journalisée

Cordialement,
Damien

Agence web - Annuaire Blog
Flore
Espoir
***

Points gagnés: 1
Messages: 101


Voir le profil
« Répondre #21 le: 25 Novembre 2006 à 14:05:48 »

Bonjour,

D'accord, donc dans mon cas, la solution de recevoir par mail les réposes des formulaires

J'ai fait un petit essai ce matin, lorsque j'envoi mon formulaire aprés l'avoir rempli, j'ai ceci :

Parse error: syntax error, unexpected T_VARIABLE in/mnt/chemin absolu (j'imagne)/traitement.php on line 18

La ligne 18 chez moi est celle ci :
  $message .= "Votre civilité<br/>";

Le problème de syntax, a mon avis doit etre, de ce que j'ai mis ici en rouge, mais alors, avec quoi doit t'elle coordonnés ? dans le fichier html ?

Il faut savoir que je fais mon test sur un FTP chez free, je dis ça car im semble qu'il y est souvent qq soucis chez eux !!!

Merci
Journalisée

--

Flore
damien
Rédacteur Admin
Intarrisable
*****

Points gagnés: 5
Messages: 2379


Voir le profil WWW
« Répondre #22 le: 25 Novembre 2006 à 14:21:29 »

Bonjour Flore,

Il n'y a pas assez de code pour pouvoir te dire, car la ligne que tu as mis est syntaxiquement correcte en soit, ça dépend de ce qu'il y a au dessus donc si tu peux en mettre un peu plus...

A prioris selon l'erreur, la variable $message est inattendue certainement parce que quelque chose n'est pas fermé au dessus ou qu'il manque un point virgule.
Journalisée

Cordialement,
Damien

Agence web - Annuaire Blog
Flore
Espoir
***

Points gagnés: 1
Messages: 101


Voir le profil
« Répondre #23 le: 25 Novembre 2006 à 20:06:22 »

Bien, je mets tout :
Code:
<?php
// Parametres mysql à remplacer par les vôtres
define('DB_SERVER''blabla'); // serveur mysql
define('DB_SERVER_USERNAME''blabla'); // nom d'utilisateur
define('DB_SERVER_PASSWORD''blabla'); // mot de passe
define('DB_DATABASE''blabla'); // nom de la base
// Connexion au serveur mysql
$connect mysql_connect(DB_SERVERDB_SERVER_USERNAME
DB_SERVER_PASSWORD
or die(
'Impossible de se connecter : ' mysql_error());
// sélection de la base de données
mysql_select_db(DB_DATABASE$connect);
$msg_erreur "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok "Votre demande a bien été prise en compte.";
$message $msg_erreur;
// vérification des champs 
if (empty($_POST['civilite'])) 
  
$message .= "Votre civilité<br/>";
if (empty(
$_POST['nom'])) 
  
$message .= "Votre nom<br/>";
if (empty(
$_POST['adresse'])) 
  
$message .= "Votre adresse<br/>";
if (empty(
$_POST['codepostal'])) 
  
$message .= "Votre code postal<br/>";
if (empty(
$_POST['ville'])) 
  
$message .= "Votre ville<br/>";
if (empty(
$_POST['comments'])) 
  
$message .= "Votre message<br/>";
// si un champ est vide, on affiche le message d'erreur 
if (strlen($message) > strlen($msg_erreur)) {

  echo 
$message;

// sinon c'est ok 
} else {

  foreach(
$_POST as $index => $valeur) {
    $
$index mysql_real_escape_string(trim($valeur));
  }

  
$interets $_POST['interets'];
  
$sqlinterets '';
  for (
$i=0$i<count($interets); $i++)
  {
    
$sqlinterets .= $interets[$i];
    
$sqlinterets .= ', ';
  }

 
// Informations d'entête du mail:
$headers  ="MIME-Version: 1.0\r\n";
$headers .='From: ' EXPEDITEUR_NOM;
$headers .=' <' EXPEDITEUR_EMAIL ">\r\n";
$headers .='Reply-To: 'EXPEDITEUR_EMAIL ."\r\n";
$headers .='Content-Type: text/plain; ';
$headers .='charset="iso-8859-1"'."\r\n";
$headers .="Content-Transfer-Encoding: 8bit\r\n";
$headers .='X-Mailer:PHP/' phpversion() . "\r\n";

// sujet du mail
$sujet "Formulaire du site";
// corps du mail
$message "Civilite : $civilite \n Nom : $nom \n adresse : $adresse \n code postal :  $codepostal \n ville : $ville \n pays : $pays \n interets : $sqlinterets \n commentaires :  $comments";

$retval mail("blabla@blabla.com",$sujet,$message,$headers);
}
?>

Mais je me demande aussi, que certaine lignes ne sont plus utile, comme celles concernant la base sql du début ?
Journalisée

--

Flore
damien
Rédacteur Admin
Intarrisable
*****

Points gagnés: 5
Messages: 2379


Voir le profil WWW
« Répondre #24 le: 27 Novembre 2006 à 02:04:16 »

Bonsoir,

Oui il reste du mysql inutile dans ton cas, je ne vois pas d'erreur de syntaxe à première vue mais essaie comme ça sans les lignes mysql inutiles :

Code:
<?php

$msg_erreur 
"Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok "Votre demande a bien été prise en compte.";
$message $msg_erreur;
// vérification des champs 
if (empty($_POST['civilite'])) 
  
$message .= "Votre civilité<br/>";
if (empty(
$_POST['nom'])) 
  
$message .= "Votre nom<br/>";
if (empty(
$_POST['adresse'])) 
  
$message .= "Votre adresse<br/>";
if (empty(
$_POST['codepostal'])) 
  
$message .= "Votre code postal<br/>";
if (empty(
$_POST['ville'])) 
  
$message .= "Votre ville<br/>";
if (empty(
$_POST['comments'])) 
  
$message .= "Votre message<br/>";
// si un champ est vide, on affiche le message d'erreur 
if (strlen($message) > strlen($msg_erreur)) {

  echo 
$message;

// sinon c'est ok 
} else {

  foreach(
$_POST as $index => $valeur) {
    $
$index trim($valeur);
  }

  
$interets $_POST['interets'];
  
$sqlinterets '';
  for (
$i=0$i<count($interets); $i++)
  {
    
$sqlinterets .= $interets[$i];
    
$sqlinterets .= ', ';
  }

 
// Informations d'entête du mail:
$headers  ="MIME-Version: 1.0\r\n";
$headers .='From: ' EXPEDITEUR_NOM;
$headers .=' <' EXPEDITEUR_EMAIL ">\r\n";
$headers .='Reply-To: 'EXPEDITEUR_EMAIL ."\r\n";
$headers .='Content-Type: text/plain; ';
$headers .='charset="iso-8859-1"'."\r\n";
$headers .="Content-Transfer-Encoding: 8bit\r\n";
$headers .='X-Mailer:PHP/' phpversion() . "\r\n";

// sujet du mail
$sujet "Formulaire du site";
// corps du mail
$message "Civilite : $civilite \n Nom : $nom \n adresse : $adresse \n code postal :  $codepostal \n ville : $ville \n pays : $pays \n interets : $sqlinterets \n commentaires :  $comments";

$retval mail("blabla@blabla.com",$sujet,$message,$headers);
}
?>
Journalisée

Cordialement,
Damien

Agence web - Annuaire Blog
Flore
Espoir
***

Points gagnés: 1
Messages: 101


Voir le profil
« Répondre #25 le: 27 Novembre 2006 à 04:50:49 »

Ok, super ca marche , Bravo ! a moi de faire NOTRE formulaire, mais le tutox est la  Razz

Il y a simplement ce message :
Votre demande a bien été prise en compte.
Qui ne s'affiche pas.

merci
Journalisée

--

Flore
damien
Rédacteur Admin
Intarrisable
*****

Points gagnés: 5
Messages: 2379


Voir le profil WWW
« Répondre #26 le: 27 Novembre 2006 à 13:18:02 »

Ah oui je l'ai oublié lui Wink
Après la ligne qui envoie le mail :

Citation
$retval = mail("blabla@blabla.com",$sujet,$message,$headers);

Ajouter :

Citation
// si le mail a bien été envoyé...
if ($retval) echo $msg_ok;

Et tu pourrais même rajouter un "else" pour afficher un message d'erreur si le mail n'a pas été envoyé correctement.
Journalisée

Cordialement,
Damien

Agence web - Annuaire Blog
poky
Nouveau membre
*

Points gagnés: 0
Messages: 9


Voir le profil
« Répondre #27 le: 01 Décembre 2006 à 18:11:28 »

Bonjour,

Tout d'abord, félicitations pour ce tuto formulaire, très bien fait et complet.
J'ai un petit problème, j'ai voulu envoyer les infos par mail et j'ai une erreur qui s'affiche après validation : warning: mysql_real_escape_string() en pliens d'exemplaires.
D'autre part, l'email arrive mais seuls les titres des champs sont présents sans le contenu et l'en-tête reprend EXPEDITEUR_NOM.
Merci pour la réponse.
Chrs
Journalisée
damien
Rédacteur Admin
Intarrisable
*****

Points gagnés: 5
Messages: 2379


Voir le profil WWW
« Répondre #28 le: 01 Décembre 2006 à 18:22:37 »

Bonjour et bienvenue sur le forum,

Pour le problème mysql_real_escape_string() , regardez bien mon dernier code posté pour la version mail, il faut enlever cette fonction car elle ne sert qu'avec mysql et requiert une connexion mysql active d'où l'erreur. C'est vers ces lignes que la fonction doit être restée sur votre code :

Code:
  foreach($_POST as $index => $valeur) {
    $$index = trim($valeur);
  }

Pour le problème EXPEDITEUR_NOM, j'ai peut être oublié de précisé mais les EXPEDITEUR_NOM et EXPEDITEUR_EMAIL que j'ai mis sur ce dernier code sont à remplacer vos noms et adresse email de l'expéditeur que vous voulez.
Journalisée

Cordialement,
Damien

Agence web - Annuaire Blog
poky
Nouveau membre
*

Points gagnés: 0
Messages: 9


Voir le profil
« Répondre #29 le: 02 Décembre 2006 à 00:22:44 »

Bonsoir,

Merci pour votre réponse rapide, j'ai suivi les consignes.
Autre problème maintenant : unexpected T_STRING
Merci encore.
Poky
Journalisée
Pages: 1 [2] 3 4 ... 13 Imprimer 
« sujet précédent | | sujet suivant »
Aller à:  

Powered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC