• 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?
23 Novembre 2008 à 00:04:19

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



 
« sujet précédent | | sujet suivant »
Pages: 1 ... 10 11 [12] 13 Imprimer
Auteur Fil de discussion: Faire un formulaire HTML, CSS, PHP (1 sur 3)  (Lu 21121 fois)
sboulent
Nouveau membre
*

Points gagnés: 0
Messages: 8


Voir le profil
« Répondre #165 le: 08 Décembre 2007 à 14:35:47 »

J'avance a mon niveau (je sais c'est pas gagné Smile)

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

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" />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>
« Dernière édition: 08 Décembre 2007 à 14:37:44 par sboulent » Journalisée
sboulent
Nouveau membre
*

Points gagnés: 0
Messages: 8


Voir le profil
« Répondre #166 le: 08 Décembre 2007 à 14: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é Smile.

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
Journalisée
jlb59
Nouveau membre
*

Points gagnés: 0
Messages: 2



Voir le profil WWW
« Répondre #167 le: 09 Décembre 2007 à 18: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 !
Journalisée

Cordialement.
JLB59
damien
Rédacteur Admin
Intarrisable
*****

Points gagnés: 5
Messages: 2379


Voir le profil WWW
« Répondre #168 le: 10 Décembre 2007 à 19: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 :

Code:
$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) :

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.
Journalisée

Cordialement,
Damien

Agence web - Annuaire Blog
sboulent
Nouveau membre
*

Points gagnés: 0
Messages: 8


Voir le profil
« Répondre #169 le: 10 Décembre 2007 à 21:14:12 »

J'avais trouvé cette méthode, qui fonctionne :

Code:
   <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?
Journalisée
dryat120
Nouveau membre
*

Points gagnés: 0
Messages: 1


Voir le profil
« Répondre #170 le: 14 Décembre 2007 à 16: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

Journalisée
dg62000
Nouveau membre
*

Points gagnés: 0
Messages: 1


Voir le profil
« Répondre #171 le: 15 Décembre 2007 à 17: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 :
Code:
<?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 :
Code:
<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>
« Dernière édition: 15 Décembre 2007 à 17:37:03 par dg62000 » Journalisée
sboulent
Nouveau membre
*

Points gagnés: 0
Messages: 8


Voir le profil
« Répondre #172 le: 16 Décembre 2007 à 10:53:28 »

Pourquoi utilise tu des extentions Frontage :

En éditant le code source de ta page =>

Code:
<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>
Journalisée
fmjg333
Nouveau membre
*

Points gagnés: 0
Messages: 1


Voir le profil
« Répondre #173 le: 28 Décembre 2007 à 20: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.
Journalisée
exoon
Nouveau membre
*

Points gagnés: 0
Messages: 2


Voir le profil
« Répondre #174 le: 30 Janvier 2008 à 14: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
Journalisée
exoon
Nouveau membre
*

Points gagnés: 0
Messages: 2


Voir le profil
« Répondre #175 le: 03 Mars 2008 à 23:19:42 »

personne pour me répondre depuis le 30 janvier ??? Ca doit etre bigrement compliqué alors...
Journalisée
damien
Rédacteur Admin
Intarrisable
*****

Points gagnés: 5
Messages: 2379


Voir le profil WWW
« Répondre #176 le: 04 Mars 2008 à 10:11:35 »

Bonjour exoon,

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

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

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

Code:
// 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) {
Journalisée

Cordialement,
Damien

Agence web - Annuaire Blog
taiga
Nouveau membre
*

Points gagnés: 0
Messages: 3


Voir le profil
« Répondre #177 le: 15 Mars 2008 à 12: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 ?
« Dernière édition: 15 Mars 2008 à 13:06:02 par taiga » Journalisée
damien
Rédacteur Admin
Intarrisable
*****

Points gagnés: 5
Messages: 2379


Voir le profil WWW
« Répondre #178 le: 16 Mars 2008 à 13: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)
Journalisée

Cordialement,
Damien

Agence web - Annuaire Blog
taiga
Nouveau membre
*

Points gagnés: 0
Messages: 3


Voir le profil
« Répondre #179 le: 17 Mars 2008 à 17: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

Code:
<?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']}>rn"
$mail_entete .= 'Reply-To: '.$_POST['email']."
rn";
$mail_entete .= 'Content-Type: text/plain; charset="
iso-8859-1"';
$mail_entete .= "
rnContent-Transfer-Encoding8bitrn";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."
rn";

//préparation du corps du mail
$mail_corps = "
Message de $civilite $nomn";
$mail_corps = "
Adresse $adresse$codepostal $villen";
$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';
}

}
?>
« Dernière édition: 17 Mars 2008 à 19:35:42 par damien » Journalisée
Pages: 1 ... 10 11 [12] 13 Imprimer 
« sujet précédent | | sujet suivant »
Aller à:  

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