24 Novembre 2017 à 09:55:26

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

sboulent

  • Nouveau membre
  • *
  • Messages: 8
  • Points gagnés: 0
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #165 le: 08 Décembre 2007 à 13:35:47 »
J'avance a mon niveau (je sais c'est pas gagné :))

J'ai un soucis avec les "checkbox"

je n'arrive pas a trouver la manière de pré-cocher les checkbox

voila pour le moment j'affiche dans un champs text affichants les valeurs lues de la BD.

Merci pour l'aide que vous pourez m'apporter

  <p id="interets"><label>interets: </label>
  <input type="text" name="typeav" value="<?php echo $result['interets'] ;?>" readonly="readonly"/><a></td>
    <input type="checkbox" name="interets[]" value="sport" />Sport
    <input type="checkbox" name="interets[]" value="cinema" />Cinéma<br />
    <input type="checkbox" name="interets[]" value="internet" />Internet
    <input type="checkbox" name="interets[]" value="voyages" />Voyages
  </p>
« Modifié: 08 Décembre 2007 à 13:37:44 par sboulent »

sboulent

  • Nouveau membre
  • *
  • Messages: 8
  • Points gagnés: 0
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #166 le: 08 Décembre 2007 à 13:59:44 »
Dans le formulaire initial j'ai plusieurs checkbox comme dans le code founi pas damien.

Avec le formulaire d'édition je réafiche les valeurs de type "text" et "textarea" sans problème (c'est normal car c'est pas compliqué :).

Par contre j'arrive a relire de la BD les valeurs enregistrés des checkbox mais n'arrive a les afficher que sous forme de champ text.

L'objet est de relire les données checkbox de la BD et d'afficher toute les checkbox sélectionnées ou non lors de la première saisi du formulaire.

Merci d'avance pour votre aide

jlb59

  • Nouveau membre
  • *
  • Messages: 2
  • Points gagnés: 0
    • Voir le profil
    • QI98 - Analyse de la mémoire
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #167 le: 09 Décembre 2007 à 17:52:05 »
Bonsoir,

Lisez le sujet suivant, je pense que c'est un problème similaire à cette personne :
http://www.forum-aide.com/programmation-developpement/probleme-reception-des-mails-ok-mais-t2170.0.html
Merci de votre réponse, mais j'ai déjà lu ceci et je n'ai pas trouvé la réponse à ma question !

Si vous vouliez m'aider, ce serait sympa !
Cordialement.
JLB59

Damien

  • Rédacteur Admin
  • Intarissable
  • *****
  • Messages: 2988
  • Points gagnés: 7
    • Voir le profil
    • aide informatique
Re : Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #168 le: 10 Décembre 2007 à 18:24:54 »
Par contre j'arrive a relire de la BD les valeurs enregistrés des checkbox mais n'arrive a les afficher que sous forme de champ text.

L'objet est de relire les données checkbox de la BD et d'afficher toute les checkbox sélectionnées ou non lors de la première saisi du formulaire.

Pour les checkbox, c'est un peu plus compliqué c'est vrai.
Pour faire au plus simple : si vous avez par exemple des checkbox qui s'appellent interets[], à la soumission du formulaire vous récuperez les valeurs cochées dans le tableau $_POST['interets']. Pour plus de facilité, vous pouvez faire :

$interets=(!empty($_POST['interets'])) ? $_POST['interets'] : array();
... pour récuperer le tableau (array) dans la variable $interets.

Après lorsque vous souhaitez recocher les bonnes cases, vous pouvez faire (je reprend votre code) :

  <p id="interets"><label>interets: </label>
  <input type="text" name="typeav" value="<?php echo $result['interets'] ;?>" readonly="readonly"/><a></td>
    <input type="checkbox" name="interets[]" value="sport"<?php
if (
in_array("sport"$interets)) echo " checked";
?>
/>Sport
    <input type="checkbox" name="interets[]" value="cinema"<?php
if (
in_array("cinema"$interets)) echo " checked";
?>
/>Cinéma<br />
    <input type="checkbox" name="interets[]" value="internet"<?php
if (
in_array("internet"$interets)) echo " checked";
?>
/>Internet
    <input type="checkbox" name="interets[]" value="voyages"<?php
if (
in_array("voyages"$interets)) echo " checked";
?>
/>Voyages
  </p>

La fonction in_array à chaque fois permet de vérifier qu'une valeur se trouve dans un tableau, et est très pratique dans ce cas de figure.
J'espère que cela va vous éclairer.
Cordialement,
Damien

Tutoriels informatique

sboulent

  • Nouveau membre
  • *
  • Messages: 8
  • Points gagnés: 0
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #169 le: 10 Décembre 2007 à 20:14:12 »
J'avais trouvé cette méthode, qui fonctionne :

   <input type="checkbox" name="sport[1]" <?php if ( $sport== 'Array' ) echo "CHECKED" ;?> value="sport" />sport

Par contre au niveau de la base de données, pour les checkbox séléctionnées, j'ai une entrée avec la valeur 'Array'. Est'il possible à la place d'avoir un autre valeur?

dryat120

  • Nouveau membre
  • *
  • Messages: 1
  • Points gagnés: 0
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #170 le: 14 Décembre 2007 à 15:47:42 »
Bonjour et merci

Ce la fonctionne bien mais il y a un petit problème que je ne vois pas ...

Pour les cases à cocher des centres d'intérêts, on veut faire la concaténation des réponses en les séparant par des virgules + un espace

Hors, dans le sqlinterets qui devrait contenir cette concaténation, je ne retrouve que la première lettre du name de la dernière case cochée ?????

Lorsque je fais éditer les variable à la fin, j'ai toujojours, pour :
$interets . " /  " . $sqlinterets ." /  " . $i ." /  " . count($interets)." /  " . $_POST['interets']
la réponse du genre :
nspp        /              n,                / 1                / 1                             / nspp
(nspp pour ne se prononce pas, ici la dernière case cochée et le n pour la première lettre).

Cela se comporte comme si $_POST['interets'] n'était pas une variable array, jusque l'enregstrement de la dernière variable case à cochée et que je sélectionnais que la première lettre.

j'ai installé le formulaire chez Free.fr.

Merci pour toute aide

amicalement
Dryat120


dg62000

  • Nouveau membre
  • *
  • Messages: 1
  • Points gagnés: 0
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #171 le: 15 Décembre 2007 à 16:35:00 »
Bonjour,

je viens de créer un formulaire en m'inspirant de votre script afin d'envoyer les réponses dans une base.
au premier essai j'ai obtenu ce message :
Page du composant exécutable FrontPage
Vous avez envoyé un formulaire ou suivi un lien vers une page qui nécessite un serveur Web ainsi que les extensions serveur FrontPage pour fonctionner correctement.

Ce formulaire ou autre composant FrontPage fonctionnera correctement si vous publiez ce site Web sur un serveur Web où les extensions serveur FrontPage sont installées.

Cliquez sur la flèche <Précédent> pour revenir à la page précédente.


aux essais suivants rien ne  passe, la base reste vide.
l'adresse du site pour voir ce qui se passe :
http://www.lycee-agricole-prive-de-coulogne.org/anciens.htm

Merci pour votre aide

le code de traitement :<?php
// Parametres mysql à remplacer par les vôtres
define('DB_SERVER''localhost'); // serveur mysql
define('DB_SERVER_USERNAME''*******); // nom d'utilisateur
define
('DB_SERVER_PASSWORD''*******'); // mot de passe
define('DB_DATABASE''--------'); // 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['prenom'])) 
  
$message .= "Votre prénom<br/>";
if (empty(
$_POST['sortie])) 
  $message .= "Votre année de sortie<br/>";
if (empty($_POST['
derclass'])) 
  $message .= "Votre dernière classe fréquentée<br/>";
if (empty($_POST['
option'])) 
  $message .= "Votre option<br/>";
if (empty($_POST['
profession'])) 
  $message .= "Votre profession actuelle<br/>";
if (empty($_POST['
entreprise'])) 
  $message .= "Votre entreprise<br/>";
if (empty($_POST['
anciennete'])) 
  $message .= "Votre ancienneté <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['
telephone'])) 
  $message .= "Votre téléphone<br/>";
  
if (empty($_POST['
mail'])) 
  $message .= "Votre mail<br/>";
  
if (empty($_POST['
accord'])) 
  $message .= "Votre accord<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));
  }

  

  
$sql "INSERT INTO anciens VALUES ('', '".$civilite."', '".$nom."','".$prenom."','".$sortie."','".$derclass."','".$option."','".$entreprise."','".$anciennete."', '".$adresse."','".$complement."', '".$codepostal."', '".$ville."', '".$telephone."', '".$mail."', '".$accord."', now())";
  
$res mysql_query($sql);

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

}
?>


et le code de mon formulaire :
<form method="post" action="traitement.php">

<p>Civilité : <select size="1" name="civilite">
<option>Mme</option>
<option>Mlle</option>
<option>M.</option>
</select> Nom : <input type="text" name="nom" size="20"> Prénom :
<input type="text" name="prenom" size="20"></p>
<p>Année de sortie de l'établissement :
<input type="text" name="sortie" size="8">(ex : 2001) </p>
<p>Dernière classe fréquentée : <select size="1" name="derclass">
<option>4eme</option>
<option>3eme</option>
<option>CAPA</option>
<option>BEPA 1</option>
<option>BEPA 2</option>
<option>Bac Pro 1</option>
<option>Bac pro 2</option>
<option>Seconde</option>
<option>BTA 1</option>
<option>BTA 2</option>
<option>STAE 1</option>
<option>STAE 2</option>
<option>STAV 1</option>
<option>STAV 2</option>
<option>BTSA 1</option>
<option>BTSA 2</option>
</select> Option : <select size="1" name="option">
<option>Horticulture</option>
<option>Paysage</option>
<option>Agriculture</option>
<option>Aquaculture</option>
<option>Distribution produits horticoles</option>
</select></p>
<p>Votre profession actuelle :
<input type="text" name="profession" size="39">
</p>
<p>Dans quelle entreprise travaillez-vous :
<input type="text" name="entreprise" size="39"> Ancienneté :
<select size="1" name="anciennete">
<option>- 1 an</option>
<option>1 à 3 ans</option>
<option>3 à 5 ans</option>
<option>5 à 10 ans</option>
<option>10 ans et +</option>
</select></p>
<p>Votre adresse : <input type="text" name="adresse" size="52"></p>
<p>Complément&nbsp;&nbsp; :
<input type="text" name="complement" size="52"> </p>
<p>Code postal&nbsp;&nbsp;&nbsp; :
<input type="text" name="codepostal" size="5"> Ville :
<input type="text" name="ville" size="40"></p>
<p>Téléphone&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :
<input type="text" name="telephone" size="15"> (0321461460)</p>
<p>Adresse mail&nbsp;&nbsp; : <input type="text" name="mail" size="53"></p>
<p align="left">Souhaitez-vous que ces informations soit diffusées vers
les anciens de Coulogne ?
<input type="checkbox" name="accord" value="off">(oui, cochez la case)</p>
<p><input type="submit" value="Envoyer" ><input type="reset" value="Recommencer" ></p>
</form>
« Modifié: 15 Décembre 2007 à 16:37:03 par dg62000 »

sboulent

  • Nouveau membre
  • *
  • Messages: 8
  • Points gagnés: 0
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #172 le: 16 Décembre 2007 à 09:53:28 »
Pourquoi utilise tu des extentions Frontage :

En éditant le code source de ta page =>

<script language="JavaScript">
<!--
function FP_swapImg() {//v1.0
 var doc=document,args=arguments,elm,n; doc.$imgSwaps=new Array(); for(n=2; n<args.length;
 n+=2) { elm=FP_getObjectByID(args[n]); if(elm) { doc.$imgSwaps[doc.$imgSwaps.length]=elm;
 elm.$src=elm.src; elm.src=args[n+1]; } }
}

function FP_preloadImgs() {//v1.0
 var d=document,a=arguments; if(!d.FP_imgs) d.FP_imgs=new Array();
 for(var i=0; i<a.length; i++) { d.FP_imgs[i]=new Image; d.FP_imgs[i].src=a[i]; }
}

function FP_getObjectByID(id,o) {//v1.0
 var c,el,els,f,m,n; if(!o)o=document; if(o.getElementById) el=o.getElementById(id);
 else if(o.layers) c=o.layers; else if(o.all) el=o.all[id]; if(el) return el;
 if(o.id==id || o.name==id) return o; if(o.childNodes) c=o.childNodes; if(c)
 for(n=0; n<c.length; n++) { el=FP_getObjectByID(id,c[n]); if(el) return el; }
 f=o.forms; if(f) for(n=0; n<f.length; n++) { els=f[n].elements;
 for(m=0; m<els.length; m++){ el=FP_getObjectByID(id,els[n]); if(el) return el; } }
 return null;
}
// -->
</script>

fmjg333

  • Nouveau membre
  • *
  • Messages: 1
  • Points gagnés: 0
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #173 le: 28 Décembre 2007 à 19:32:45 »
Bonjour,

Je viens de créer un formulaire en suivant les instructions de tutoriaux (formulaire html et envoi par mail).

J'en suis à le tester : j'ai un fichier inscription html et un traitement php dans le même répertoire.
Je remplis les champs et j'essaie de l'envoyer.
Mais à cette phase, j'ai une fenêtre me proposant d'enregistrer traitement.php, et aucun des messages (erreur ou Ok ne s'affiche).
Par ailleurs aucun mail ne parvient à la boîte de réception.

Y-at'il une astuce qui m'a échappé?...

Merci par avance de votre aide.

exoon

  • Nouveau membre
  • *
  • Messages: 2
  • Points gagnés: 0
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #174 le: 30 Janvier 2008 à 13:47:56 »
bonjour damien et bonjour à tous,
avant tout bravo pour vos tutoriaux, ils sont vraiment très pertinents. Je dois créer un formulaire pour mon site mais j'ai besoin de deux choses lorsqu'un visiteur arrive sur le site, rempli le formulaire et clique sur "envoyer":
1. Que je sois informé par mail et qu'en meme temps les données soient rentrées dans ma base mysql
2. Que le visiteur puissent télécharger mon logiciel (à la seule condition que le formulaire soit rempli).
Est ce possible ? Et comment faire? Encore merci pour ta réponse rapide

exoon

  • Nouveau membre
  • *
  • Messages: 2
  • Points gagnés: 0
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #175 le: 03 Mars 2008 à 22:19:42 »
personne pour me répondre depuis le 30 janvier ??? Ca doit etre bigrement compliqué alors...

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 #176 le: 04 Mars 2008 à 09:11:35 »
Bonjour exoon,

Non ce n'est pas sorcier, c'est juste un manque de temps.

Citer
1. Que je sois informé par mail et qu'en meme temps les données soient rentrées dans ma base mysql

C'est tout à fait possible, inspirez-vous du tutoriel Formulaire PHP : envoi par email + MySQL, qui fait suite aux autres tutoriels de la série "Faire un formulaire HTML, CSS, PHP".

2. Que le visiteur puissent télécharger mon logiciel (à la seule condition que le formulaire soit rempli).

Dans le tutoriel, à la ligne :

// si le mail a ete envoye par mail et mysql
if ($res_mail && $res_sql) {
echo $msg_ok;

On écrit un message de confirmation si le formulmaire est bien rempli.
Dans votre cas, il suffit soit : de faire une redirection vers une page de téléchargement de votre logiciel, ou soit de mettre le texte et le lien de téléchargement vers votre logiciel après ce message de confirmation. Pour cela vous pouvez mettre du code HTML dans un echo. Exemple :

// si le mail a ete envoye par mail et mysql
if ($res_mail && $res_sql) {
echo $msg_ok;
echo 'Pour télécharger mon logiciel, cliquez sur le lien ci-après : <a href="lien/vers/mon-logiciel.zip">Télécharger Mon Logiciel v1.0</a>';

// si mysql a retourné une erreur
} else if (!$res_sql) {
Cordialement,
Damien

Tutoriels informatique

taiga

  • Nouveau membre
  • *
  • Messages: 3
  • Points gagnés: 0
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #177 le: 15 Mars 2008 à 11:06:15 »
bonjour,
j'ai suivi pas àpas ces 3 excellents tutoriaux
le formulaire html : ok
le formulaire css : ok
par contre problème avec le php
sous internet explorer 7 lorsque je teste mon formulaire, après avoir rempli, le clic sur bouton
envoyer ouvre la boite de dialogue ouvrir ou enregistrer le fichier traitement.php?
ou est l'erreur ?
« Modifié: 15 Mars 2008 à 12:06:02 par taiga »

Damien

  • Rédacteur Admin
  • Intarissable
  • *****
  • Messages: 2988
  • Points gagnés: 7
    • Voir le profil
    • aide informatique
Re : Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #178 le: 16 Mars 2008 à 12:08:28 »
sous internet explorer 7 lorsque je teste mon formulaire, après avoir rempli, le clic sur bouton
envoyer ouvre la boite de dialogue ouvrir ou enregistrer le fichier traitement.php?
ou est l'erreur ?

Bonjour,

Ca c'est le problème typique quand vous ouvrez le formulaire sur votre pc local alors que vous n'avez pas de serveur web.
Cette erreur vient du fait que vous n'avez donc rien qui interprète le code PHP (un serveur web qui prend le php).

Si vous l'avez testé chez un hébergeur, il faut vérifier également qu'il accepte le PHP et que l'extension de votre fichier est correcte (.php à la fin)
Cordialement,
Damien

Tutoriels informatique

taiga

  • Nouveau membre
  • *
  • Messages: 3
  • Points gagnés: 0
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #179 le: 17 Mars 2008 à 16:01:03 »
merci pour la réponse Damien mais je m'étais rendu compte de l'erreur
donc j'ai testé le formulaire chez mon hébergeur et j'obtiens le message suivant:
parse error: parse error in /www/homes/k/ka/kah/kahmiche/public_htlm/traitement.php on line 7
je joins monfichier traitement.php

<?php

$msg_erreur 
"Erreur. Les champs suivants doivent etre obligatoirement remplis :<br/><br/>";
$msg_ok "Votre demande a bien été prise en compte.";
$message $msg_erreur;
define('MAIL_DESTINATAIRE','fkah@sdme38.fr);
define('
MAIL_SUJET','message du formulaire');

// 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['
email']))
$message .= "Votre adresse mail<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 stripslashes(trim($valeur));
}

// Préparation de l'entete du mail:
$mail_entete "MIME-Version: 1.0\r\n";
$mail_entete .= "From: ($_POST['nom']);
 ."
<{$_POST['email']}>\r\n"
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";

//préparation du corps du mail
$mail_corps = "Message de $civilite $nom\n";
$mail_corps = "Adresse $adresse$codepostal $ville\n";
$mail_corps = $comments;

// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,
$mail_corps,$mail_entete)) {

// Le mail est bien expédié
echo 
$msg_ok;
} else {

// Le mail n'a pas été envoyé
echo 'Une erreur est survenue lors de l\'envoi du formulaire par email';
}

}
?>
« Modifié: 17 Mars 2008 à 18:35:42 par damien »