20 Novembre 2017 à 16:05:44

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

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 #60 le: 07 Février 2007 à 17:22:16 »
Bonjour,

Pour chim33 :
Citer
Existe-t-il, en HTML ou PHP des instruction pour générer l'équivalent d'une Msgbox (Access)

Ca n'existe ni en PHP ni en HTML, mais ça existe en javascript. L'astuce pour faire une msgbox en PHP est donc de faire quelque chose comme cela :

echo "<script language='Javascript'>alert('Ceci est un message dans une msgbox');</script>"

Pour kuzko :
Citer
lors de l'envoye du formulaire à mon adresse @laposte.net j'ai le message d'erreur suivant :

En fait c'est une erreur courant que j'ai détaillé dans un quatrième tutoriel qui est venu plus tard donc je comprendrais que vous ne l'ayez pas vu. Je vous laisse regarder le point 4. de Formulaire PHP et envoi par email
Cordialement,
Damien

Tutoriels informatique

kuzko

  • Nouveau membre
  • *
  • Messages: 2
  • Points gagnés: 0
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #61 le: 07 Février 2007 à 19:04:14 »
Je viens de voir ce 4éme tuto qui me rassure.

à priori ça doit marcher avec plexiweb ou autre, donc merci beaucoup  Damien pour ta réponse supers rapide !

arkaneo

  • Nouveau membre
  • *
  • Messages: 1
  • Points gagnés: 0
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (3 sur 3)
« Réponse #62 le: 13 Février 2007 à 00:32:04 »
Bonjour,

Alors, tout d'abord, chapeau bas, j'ai trouver plus d'infos utiles et commentées que dans plusieurs autres forums dont je ne citerai pas le nom.

Je suis un débutant en php, et j'ai un gros soucis avec la partie 3 de ton tuto, en faite, sur ton bout de code pour récupérer les données de cases à cocher à choix multiples, tout ce que j'obtiens dans ma base, c'est des virgules. D'autant, que j'ai 4 séries différentes de cases à cocher.

Le second problème, c'est la fonction mysql_real_escape_string() qui ne fonctionne pas, bien que sous php 5, j'obtiens des messages d'erreurs sur tout mes champs. Mais ça, je verrais plus tard.

en html, ça donne :
<p id="id_71" align=right>Quels doivent-être les qualités essentielles d'un service à domicile :&nbsp;
<span class=obli>*</span>&nbsp;<a href='#' class=info>?<span>Cochez toutes les cases qui vous correpondent.</span></a>
</p><input type='hidden' name='hidden_71' value=''></td><td><table width=100%><tr><td>
<input type="checkbox" name="id_71[]" value="Les tarifs.">&nbsp;<span class=mef>Les tarifs.</span></td><td>
<input type="checkbox" name="id_71[]" value="La qualité.">&nbsp;<span class=mef>La qualité.</span></td><td>
<input type="checkbox" name="id_71[]" value="Le sens du service.">&nbsp;<span class=mef>Le sens du service.</span></td><td>
<input type="checkbox" name="id_71[]" value="La disponibilité.">&nbsp;<span class=mef>La disponibilité.</span></td></tr><tr><td>
<input type="checkbox" name="id_71[]" value="La confiance.">&nbsp;<span class=mef>La confiance.</span></td><td>
<input type="checkbox" name="id_71[]" value="Autres.">&nbsp;<span class=mef>Autres.</span></td></tr></table></td></tr>
les autres champs étant "id_72" , "id_73" et "id_74".

pour php :
<?php
        $qualite
=$_POST['id_71'];// html = cases à cocher
$sqlqualite'';
for ($i=0$i<count($qualite); $i++)
{
$sqlqualite .= $sqlqualite[$i];
$sqlqualite .=', ';
}?>

donc idem pour les autres champs de case à cocher

Quand à ma requête INSERT INTO, les valeurs ont bien été remplacées comme tu l'indiques dans ton tuto.

Info, je suis chez FREE

Merci par avance de ton aide
« Modifié: 18 Mars 2007 à 21:56:35 par Quentin »

eatget

  • Nouveau membre
  • *
  • Messages: 10
  • Points gagnés: -1
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #63 le: 18 Mars 2007 à 21:22:00 »
Bonjour,
Trés heureux d'avoir découvert ce site alors que j'ai besoin de créer un formulaire en urgence.
Jusque là tout allait bien. J'ai créé mes 3 fichiers (page.html, formulaire.css, traitement.php)et j'ai défini ma base formulaire.
Ensuite j'ouvre mon formulaire et je saisi des valeur puis je fait "envoyer" j'ai alors un message me demandant si je veux ouvrir ou enregistrer le fichier traitement.php

Help ! Quelqu'un peut-il m'aide svp

merci d'avance
« Modifié: 18 Mars 2007 à 21:24:11 par eatget »

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 #64 le: 18 Mars 2007 à 21:46:17 »
Bonsoir,

Ensuite j'ouvre mon formulaire et je saisi des valeur puis je fait "envoyer" j'ai alors un message me demandant si je veux ouvrir ou enregistrer le fichier traitement.php

Si ça cherche à enregistrer traitement.php plutôt que de l'exécuter, c'est certainement que vous n'avez pas lancé votre formulaire à partir d'un serveur web, mais que vous l'avez lancé à partir de votre disque dur local, non ? ;)
Cordialement,
Damien

Tutoriels informatique

Damien

  • Rédacteur Admin
  • Intarissable
  • *****
  • Messages: 2988
  • Points gagnés: 7
    • Voir le profil
    • aide informatique
Re : Re : Faire un formulaire HTML, CSS, PHP (3 sur 3)
« Réponse #65 le: 18 Mars 2007 à 21:49:28 »
Je suis un débutant en php, et j'ai un gros soucis avec la partie 3 de ton tuto, en faite, sur ton bout de code pour récupérer les données de cases à cocher à choix multiples, tout ce que j'obtiens dans ma base, c'est des virgules. D'autant, que j'ai 4 séries différentes de cases à cocher.

Désolé pour le temps, je n'avais pas vu ce message  :oops:
Est-ce que le problème est résolu depuis ?

Votre erreur est ici :
      $sqlqualite .= $sqlqualite[$i];
      $sqlqualite .=', ';

Vous devriez avoir :
      $sqlqualite .= $qualite[$i];
      $sqlqualite .=', ';
« Modifié: 18 Mars 2007 à 21:51:54 par damien »
Cordialement,
Damien

Tutoriels informatique

eatget

  • Nouveau membre
  • *
  • Messages: 10
  • Points gagnés: -1
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #66 le: 18 Mars 2007 à 22:30:27 »
Merci Damien,
où avais-je la tête ? oui je lançais directement le formulaire sans passer par le serveur.
Maintenant ça fonctionne

merci pour la rapidité de la réponse :P

Cordialement

eatget

  • Nouveau membre
  • *
  • Messages: 10
  • Points gagnés: -1
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #67 le: 18 Mars 2007 à 22:51:51 »
J'ai encore une chtit' question.

A l'exécution j'ai les messages suivants :

Notice: Array to string conversion in d:\mes documents\sites internet\formulaire\traitement.php on line 43

Notice: Undefined variable: civilite in d:\mes documents\sites internet\formulaire\traitement.php on line 54

Notice: Undefined variable: nom in d:\mes documents\sites internet\formulaire\traitement.php on line 54

Notice: Undefined variable: adresse in d:\mes documents\sites internet\formulaire\traitement.php on line 54

Notice: Undefined variable: codepostal in d:\mes documents\sites internet\formulaire\traitement.php on line 54

Notice: Undefined variable: ville in d:\mes documents\sites internet\formulaire\traitement.php on line 54

Notice: Undefined variable: pays in d:\mes documents\sites internet\formulaire\traitement.php on line 54

Notice: Undefined variable: comments in d:\mes documents\sites internet\formulaire\traitement.php on line 54
Votre demande a bien été prise en compte.


pour le 1er message Notice: Array to string conversion in d:\mes documents\sites j'ai vu qu'il y avait une réponse un peu plus haut

mais pour les autres messages Notice: Undefined variable: comments in d:\mes documents\sites

avez-vous une petite idée ?

Merci encore de votre aide

eatget

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 #68 le: 18 Mars 2007 à 23:19:40 »
Ah et bien on progresse  :D

L'erreur vous dit "variable indéfinie" : civilite, nom, adresse ...
parce que vous avez oublié le signe $ qui caractérise une variable en PHP peut-être ? Ca devrait être $civilite, $nom, $adresse ...

Si c'est pas cela ou que vous avez un doute, copiez moi votre code vers la ligne 54 parce que là je ne peux pas en dire plus.
Cordialement,
Damien

Tutoriels informatique

eatget

  • Nouveau membre
  • *
  • Messages: 10
  • Points gagnés: -1
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #69 le: 19 Mars 2007 à 10:29:26 »
Voici ce que j'ai entre la ligne 32 et la ligne 62
ça doit être gros comme une maison mais je ne suis pas (encore) un spécialiste.
Ah, j'oubliais, je suis en PHP 3.4.1
merci  :?


// 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 .= ', ';
  }

  $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();
  }

}
?>


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 #70 le: 19 Mars 2007 à 14:19:41 »
Bonjour,

Merci, la ligne 54 qui fait une erreur je suppose que c'est celle-ci ?
$sql = "INSERT INTO formulaire VALUES ('', '$civilite', '$nom', '$adresse', '$codepostal', '$ville', '$pays', '$sqlinterets', '$comments', now())";
Hum c'est peut-être bien moi qui ait oublié un truc... Essayez comme ça :
$sql = "INSERT INTO formulaire VALUES ('', '".$civilite."', '".$nom."', '".$adresse."', '".$codepostal."', '".$ville."', '".$pays."', '".$sqlinterets."', '".$comments."', now())";
Dites moi si c'est mieux... ;)
Cordialement,
Damien

Tutoriels informatique

eatget

  • Nouveau membre
  • *
  • Messages: 10
  • Points gagnés: -1
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #71 le: 19 Mars 2007 à 16:48:50 »
Damien,
C'était bien cela.
Tout fonctionne normalement maintenant

Merci beaucoup  :D

eatget

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 #72 le: 19 Mars 2007 à 19:24:11 »
D'accord tant mieux  8)
J'ai modifié sur le tuto parce que c'est vrai que j'ai du fatiguer sur la fin  :roll:
Cordialement,
Damien

Tutoriels informatique

ratdelabo

  • Nouveau membre
  • *
  • Messages: 1
  • Points gagnés: 0
    • Voir le profil
Re : Faire un formulaire HTML, CSS, PHP (1 sur 3)
« Réponse #73 le: 21 Mars 2007 à 12:57:42 »
Bonjour à tous,
Je suis nouveau sur le forum (et sur le site d'ailleurs), que je trouve particulièrement bien fait.
Merci tout d'abrd à Damien pour ce tuto très pédagogiquement réalisé.
Voilà ma question:
J'ai modifié le script pour l'adapter à mes attentes, mais j'ai choisi quelques champs NON OBLIGATOIRES.
Comment puis-je les traiter, les sécuriser, et les inscrire dans la BDD lorsqu'ils sont tout de même remplis par le visiteur ?
Voici mon code:
<?php
require ('../connect.php');

//ON VERIFIE SI LE VISITEUR A CLIQUE SUR LE BOUTON ENVOYER//
if (isset($_POST['devis']))
{
//ON FORMATE LES REPONSES EN CAS DE SUCCES OU D'ERREUR//
$msg_erreur "Attention ! Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok "Votre demande a bien été prise en compte. Elle sera traitée dans les meilleurs délais";
$message $msg_erreur;

// vérification des champs 
if (empty($_POST['civilite'])) 
$message .= "Vous devez préciser si vous êtes PARTICULIER ou PROFESSIONNEL<br/>";
if (empty($_POST['nom'])) 
$message .= "Vous devez préciser votre nom<br/>";
if (empty($_POST['adresse'])) 
$message .= "Vous devez préciser votre adresse<br/>";
if (empty($_POST['codepostal'])) 
$message .= "Vous devez préciser votre code postal<br/>";
if (empty($_POST['ville'])) 
$message .= "Vous devez préciser votre ville<br/>";
if (empty($_POST['telephone'])) 
$message .= "Vous devez préciser un numéro de téléphone<br/>";
if (empty($_POST['adresse_mail'])) 
$message .= "Vous devez préciser une adresse électronique valide<br/>";
if (empty($_POST['type_bien'])) 
$message .= "Vous devez préciser le type de bien pour lequel vous faites la demande<br/>";
if (empty($_POST['superficie_bien'])) 
$message .= "Vous devez préciser la superficie du bien à expertiser<br/>";
if (empty($_POST['adresse_bien'])) 
$message .= "Vous devez préciser l'adresse du bien à visiter<br/>";
if (empty($_POST['annee_bien'])) 
$message .= "Vous devez préciser l'adresse du bien à visiter<br/>";
if (empty($_POST['raison_devis'])) 
$message .= "Vous devez préciser la raison du devis<br/>";
if (empty($_POST['distance'])) 
$message .= "Vous devez préciser la distance moyenne qui sépare le bien à expertiser du cabinet URBAME<br/>";


// si un champ est vide, on affiche le message d'erreur 
if (strlen($message) > strlen($msg_erreur)) //Il suffit de faire une comparaison de longueur de chaine au lieu de revérifier par les empty. Si $message > $msg_erreur, c'est qu'il y a toujours l'erreur//
{
echo $message;
// sinon c'est ok 
}
else 
{
foreach($_POST as $index => $valeur//Chaque valeur sera indexée
{
$$index mysql_real_escape_string(trim($valeur)); //On nettoie chaque valeur indexée en enlevant les espaces avec un trim et en évitant les injections sql avec un real_escape_string//
}

//Si tout est bon, on insère dans la base de données//
$sql "INSERT INTO formulaire_devis VALUES ('', '".$civilite."', '".$nom."', '".$adresse."', '".$codepostal."', '".$ville."', '".$telephone."', '".$telecopie."', '".$adresse_mail."','".$type_bien."','".$precision_type_bien."','".$superficie_bien."','".$adresse_bien."','".$anne_bien."','".$raison_devis."','".$distance."', now())";

//On créé une variable $res qui vaut l'insertion dans la base de données//
$res mysql_query($sql);

if ($res)
{
echo $msg_ok;
}
else
{
echo mysql_error();
}
}
}
//On peut maintenant se déconnecter de la BDD :
mysql_close ();
?>

Merci de votre réponse

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 #74 le: 21 Mars 2007 à 19:10:21 »
Bonsoir,

Je ne comprend pas trop l'intérêt de la question car le script a l'air bon comme ça...

La boucle suivante sécurisé tous vos champs :
<?php foreach($_POST as $index => $valeur//Chaque valeur sera indexée
{
$$index mysql_real_escape_string(trim($valeur)); //On nettoie chaque valeur indexée en enlevant les espaces avec un trim et en évitant les injections sql avec un real_escape_string//
?>

Et la requête INSERT INTO suivante insérè tous vos champs en base de données, ce qui insérera une chaine vide à chaque champ qui ne sera pas rempli.

Vous avez donc tout non ?  8)
Cordialement,
Damien

Tutoriels informatique