23 Novembre 2017 à 10:30:50

Auteur Sujet: Faire un formulaire HTML, CSS, PHP (1 sur 3)  (Lu 125005 fois)

Flore

  • Espoir
  • ***
  • Messages: 101
  • Points gagnés: 1
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #15 le: 24 Novembre 2006 à 15:14:07 »
Bonjour,

Ah !!! grand merci  :)

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 !!!  :lol:
--

Flore

Damien

  • Rédacteur Admin
  • Intarissable
  • *****
  • Messages: 2988
  • Points gagnés: 7
    • Voir le profil
    • aide informatique
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #16 le: 24 Novembre 2006 à 16:19:46 »
Lequel ? la partie 3 ?

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

Citer
<form method="post" action="traitement.php">
</form>
Cordialement,
Damien

Tutoriels informatique

Flore

  • Espoir
  • ***
  • Messages: 101
  • Points gagnés: 1
    • Voir le profil
Re : Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #17 le: 24 Novembre 2006 à 17:57:24 »
Lequel ? la partie 3 ?

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

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

Oui  le 3, ok vu, lu et comprendu !!  :D

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:
--

Flore

Damien

  • Rédacteur Admin
  • Intarissable
  • *****
  • Messages: 2988
  • Points gagnés: 7
    • Voir le profil
    • aide informatique
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #18 le: 24 Novembre 2006 à 21: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 :

Citer
  $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

Citer
// 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.
Cordialement,
Damien

Tutoriels informatique

Flore

  • Espoir
  • ***
  • Messages: 101
  • Points gagnés: 1
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #19 le: 25 Novembre 2006 à 03: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.
--

Flore

Damien

  • Rédacteur Admin
  • Intarissable
  • *****
  • Messages: 2988
  • Points gagnés: 7
    • Voir le profil
    • aide informatique
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #20 le: 25 Novembre 2006 à 12: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).
Cordialement,
Damien

Tutoriels informatique

Flore

  • Espoir
  • ***
  • Messages: 101
  • Points gagnés: 1
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #21 le: 25 Novembre 2006 à 13: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
--

Flore

Damien

  • Rédacteur Admin
  • Intarissable
  • *****
  • Messages: 2988
  • Points gagnés: 7
    • Voir le profil
    • aide informatique
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #22 le: 25 Novembre 2006 à 13: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.
Cordialement,
Damien

Tutoriels informatique

Flore

  • Espoir
  • ***
  • Messages: 101
  • Points gagnés: 1
    • Voir le profil
C'est dur la vie des fois !! (1 sur 3)
« Réponse #23 le: 25 Novembre 2006 à 19:06:22 »
Bien, je mets tout :
<?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 ?
--

Flore

Damien

  • Rédacteur Admin
  • Intarissable
  • *****
  • Messages: 2988
  • Points gagnés: 7
    • Voir le profil
    • aide informatique
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #24 le: 27 Novembre 2006 à 01: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 :

<?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);
}
?>
Cordialement,
Damien

Tutoriels informatique

Flore

  • Espoir
  • ***
  • Messages: 101
  • Points gagnés: 1
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #25 le: 27 Novembre 2006 à 03:50:49 »
Ok, super ca marche , Bravo ! a moi de faire NOTRE formulaire, mais le tutox est la  :P

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

merci
--

Flore

Damien

  • Rédacteur Admin
  • Intarissable
  • *****
  • Messages: 2988
  • Points gagnés: 7
    • Voir le profil
    • aide informatique
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #26 le: 27 Novembre 2006 à 12:18:02 »
Ah oui je l'ai oublié lui ;)
Après la ligne qui envoie le mail :

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

Ajouter :

Citer
// 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.
Cordialement,
Damien

Tutoriels informatique

poky

  • Nouveau membre
  • *
  • Messages: 9
  • Points gagnés: 0
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #27 le: 01 Décembre 2006 à 17: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

Damien

  • Rédacteur Admin
  • Intarissable
  • *****
  • Messages: 2988
  • Points gagnés: 7
    • Voir le profil
    • aide informatique
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #28 le: 01 Décembre 2006 à 17: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 :

  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.
Cordialement,
Damien

Tutoriels informatique

poky

  • Nouveau membre
  • *
  • Messages: 9
  • Points gagnés: 0
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #29 le: 01 Décembre 2006 à 23:22:44 »
Bonsoir,

Merci pour votre réponse rapide, j'ai suivi les consignes.
Autre problème maintenant : unexpected T_STRING
Merci encore.
Poky