Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2606 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  formulaire/recherche de case vide/message

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

formulaire/recherche de case vide/message

n°1921061
tag91
Posté le 03-09-2009 à 21:55:58  profilanswer
 

Bonsoir!
 
Bon passons aux chose sérieuse. pour le besoin d'un site internet, je dois faire un formulaire. Je n'arrive pas à faire qqch qui marche! j'ai toujours un problème! Je vous mets ma version ci dessous qui semble être la version la plus proche d'une page qui marche.
j'ai un peu de mal avec les "isset" et les { } dans les conditions.
 
Voici la page:
 
 
 
 

Code :
  1. <?php
  2.    if(isset($_POST['submit'])); //on valide le fomulaire
  3.     {                   
  4.                        mysql_connect("****", "****", "*****" );
  5.                            mysql_select_db("***********" );
  6.       
  7.                            $nom = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
  8.                            $prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom']));
  9.         $phone = mysql_real_escape_string(htmlspecialchars($_POST['phone']));
  10.                            $mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
  11.         $adult = mysql_real_escape_string(htmlspecialchars($_POST['adult']));
  12.                            $child = mysql_real_escape_string(htmlspecialchars($_POST['child']));
  13.         $date = mysql_real_escape_string(htmlspecialchars($_POST['date']));
  14.                            $adresse = mysql_real_escape_string(htmlspecialchars($_POST['adresse']));
  15.         $postal = mysql_real_escape_string(htmlspecialchars($_POST['postal']));
  16.                            $ville = mysql_real_escape_string(htmlspecialchars($_POST['ville']));
  17.         $aeroport = mysql_real_escape_string(htmlspecialchars($_POST['aeroport']));
  18.                            $vole = mysql_real_escape_string(htmlspecialchars($_POST['vole']));
  19.         $hvole = mysql_real_escape_string(htmlspecialchars($_POST['hvole']));
  20.        
  21.                    $erreur="";
  22.          
  23.        if ($nom=="" ) { $erreur=$erreur."nom,";}
  24.        if ($prenom=="" ) { $erreur=$erreur."prénom,";}
  25.        if ($phone=="" ) { $erreur=$erreur."téléphone,";} 
  26.                           if ($mail=="" ) { $erreur=$erreur."mail,";}
  27.                           if ($adult=="" ) { $erreur=$erreur."le nombre d'adulte,";}
  28.        if ($child=="" ) { $erreur=$erreur."le nombre d'enfant,";}
  29.        if ($date=="" ) { $erreur=$erreur."la date du transport,";}
  30.        if ($adresse=="" ) { $erreur=$erreur."l'adresse de départ,";}
  31.        if ($postal=="" ) { $erreur=$erreur."le code postal de l'adresse de départ,";}
  32.        if ($ville=="" ) { $erreur=$erreur."la ville de départ,";}
  33.        if ($aeroport=="" ) { $erreur=$erreur."l'aéroport de destination,";}
  34.        if ($vole=="" ) { $erreur=$erreur."votre numéro de vol,";}
  35.        if ($hvole=="" ) { $erreur=$erreur."l'heure du vol,";}
  36.       
  37.        if ($erreur=="" )
  38.        {
  39.       
  40.         mysql_query("INSERT INTO aeroportaller VALUES('', '" . $nom . "', '" . $prenom . "', '" . $phone . "', '" . $mail . "', '" . $adult . "', '" . $child . "', '" . $date . "', '" . $adresse . "', '" . $postal . "', '" . $ville . "', '" . $aeroport . "', '" . $vole . "', '" . $hvole . "')" );
  41.       
  42.         echo "Vos informations ont bien été prise en compte!
  43.               Merci d'avoir choisi ************.
  44.         Nous vous enverrons dans les plus bref délais un mail de confirmation."; }
  45.       
  46.         else
  47.       
  48.      {  echo 'Nous sommes désolé mais vous avez oublié de remplir votre'.$erreur.'merci de tout remplir.'; }
  49. }
  50.         
  51. ?>
  52.               
  53. <?php include("entete.php" ) ;
  54. include("menu.php" ) ;
  55.                    ?>
  56.  
  57.  
  58.                 <!-- Le corps -->
  59.                      <div id="corps">
  60.                  
  61.                         
  62.                    <h1>Destination vers un aéroport:</h1>
  63.                      <form method="post" action="aeroportaller.php">
  64.           
  65.     
  66.              <p>Informations personnelles en vue du transport</p>
  67.              <p><label for="nom">Nom</label>:<input type="text" name="nom" id="nom" /></p>
  68.     <p><label for="prenom">Prénom</label>:<input type="text" name="prenom" id="prenom" /></p>
  69.     <p><label for="phone">Numéro de téléphone</label>:<input type="text" name="phone" id="phone" maxlength="20" /></p>
  70.     <p><label for="mail">Courriel</label>:<input type="text" name="mail" id="mail" /></p>
  71.     <p><label for="adult">Nombre d'adulte</label>:<input type="text" name="adult" id="adult" size="1" maxlength="2"/></p>
  72.     <p><label for="child">Nombre d'enfant (- de 10 ans)</label>:<input type="text" name="child" id="child" size="1" maxlength="2" /></p><br />
  73.     <p>Départ:</p>
  74.     <p><label for="date">Date du trajet</label>:<input type="text" name="date" id="date" /></p>
  75.     <p><label for="hotel">Hotel <em>(facultatif)</em></label>:<input type="text" name="hotel" id="hotel" /></p>
  76.     <p><label for="adresse">Adresse</label>:<input type="text" name="adresse" id="adresse" /></p>
  77.     <p><label for="postal">Code Postal</label>:<input type="text" name="postal" id="postal" maxlength="20" /></p>
  78.     <p><label for="ville">Ville</label>:<input type="text" name="ville" id="ville" /></p><br />
  79.     <p>Arrivée:</p>
  80.     <p><label for="aeroport">Aéroport</label>:<input type="text" name="aeroport" id="aeroport" /></p>
  81.     <p><label for="vole">Numéro de vol</label>:<input type="text" name="vole" id="vole" /></p>
  82.     <p><label for="hvole">Heure du vol</label>:<input type="text" name="hvole" id="hvole" maxlength="20" /></p>
  83.                     <p>Commentaire:</p><p></label>:<textarea name="commentaire" id="commentaire" rows="10" cols="50"></textarea></p>
  84.        
  85.     </p>
  86.     <p>Lorsque vous avez vérifiez que les informations demandées sont correctes, cliquez sur le bouton ci-dessous. Vous recevrez un mail de confirmation.</p>
  87.     <input type="submit" value="Valider les informations" name="submit"/>
  88.    
  89.     </form>
  90.     </div>
  91.                  
  92.                        
  93.    <?php include("piedpage.php" ) ; ?>

 
 
 
 
Et voilà les messages d'erreurs:
 
 
 
 

Citation :

Notice: Undefined index: nom in C:\wamp\www\********\new3.php on line 8
 
Notice: Undefined index: prenom in C:\wamp\www\***********\new3.php on line 9
 
Notice: Undefined index: phone in C:\wamp\www\***********\new3.php on line 10
 
Notice: Undefined index: mail in C:\wamp\www\**********\new3.php on line 11
 
Notice: Undefined index: adult in C:\wamp\www\***********\new3.php on line 12
 
Notice: Undefined index: child in C:\wamp\www\*********\new3.php on line 13
 
Notice: Undefined index: date in C:\wamp\www\***********\new3.php on line 14
 
Notice: Undefined index: adresse in C:\wamp\www\***********\new3.php on line 15
 
Notice: Undefined index: postal in C:\wamp\www\************\new3.php on line 16
 
Notice: Undefined index: ville in C:\wamp\www\**************\new3.php on line 17
 
Notice: Undefined index: aeroport in C:\wamp\www\*************\new3.php on line 18
 
Notice: Undefined index: vole in C:\wamp\www\**********\new3.php on line 19
 
Notice: Undefined index: hvole in C:\wamp\www\**************\new3.php on line 20


 
Avec ensuite la page internet notamment en haut, en dessous des messages d'erreur:
 
 
Nous sommes désolé mais vous avez oublié de remplir votrenom,prénom,téléphone,mail,le nombre d'adulte,le nombre d'enfant,la date du transport,l'adresse de départ,le code postal de l'adresse de départ,la ville de départ,l'aéroport de destination,votre numéro de vol,l'heure du vol,merci de tout remplir.
 
Ce message ainsi que ces messages d'erreurs s'affichent dès la première fois que je "mets en route" la page. Je n'ai donc pas encore remplie le formulaire.
 
Je dois paraitre un peu..."chiant" mais serait il possible d'essayer d'utilisé les choses du type "isset" ou "empty" au pire mais pas partir dans des trucs où je serais incapable de retoucher la page après sauf si vous vous sentez prêt à me faire un cours...
 
En tout cas,merci d'avance et je suis dsl si ce message ressemble à celui de qqun mais je n'ai rien vu de très très clair dans un cas où on a un formulaire, et lorsque on a remplie le formulaire, il faut vérifier que les données sont mises sinon on affiche un message d'erreur...
 
Merci d'avance et bonne soirée
 
P.S: vous êtes mes derniers espoirs.


Message édité par tag91 le 03-09-2009 à 22:04:25
mood
Publicité
Posté le 03-09-2009 à 21:55:58  profilanswer
 

n°1921077
stealth35
Posté le 03-09-2009 à 22:28:55  profilanswer
 

t'es sous quel version de PHP, si c'est la 5, as tu PDO, d'installer,
si tu dis oui a tout je te monterai comment faire un code beaucouo plus simple et plus lisible, tu t'es beaucoup embete  ;)

n°1921080
tag91
Posté le 03-09-2009 à 22:32:34  profilanswer
 

heu...comment savoir, je marche avec notepad++ donc apres, le php..je vois pas trop. j'apprends en autodidacte grace au siteduzero.com    ....
quand à PDO, je ne sais pas ce que c'est... mais j'ai hate de savoir!


Message édité par tag91 le 03-09-2009 à 22:33:27
n°1921083
stealth35
Posté le 03-09-2009 à 22:37:18  profilanswer
 

fait un fichier phpinfo.php
 
avec  
 
<?php
phpinfo();
?>
 
apres tu me dis t'as quel version,  et si une ligne ou y'as PDO
 
t'as un serveur particulier ?  zend server, wamp, easy php ...

n°1921084
tag91
Posté le 03-09-2009 à 22:38:41  profilanswer
 

j'ai wampserver,je regarde pour infophp

n°1921086
tag91
Posté le 03-09-2009 à 22:44:51  profilanswer
 

j'ai php 5.3.0
et
PDO
PDO support enabled
PDO drivers  mysql, sqlite

n°1921091
stealth35
Posté le 03-09-2009 à 22:58:01  profilanswer
 

cool. bon deja tu peux utiliser les tableaux ou les objects ca serai plus simple que d'utilisé plein de variable
 
par exemple
 

mysql_connect("****", "****", "*****" );
mysql_select_db("***********" );
 
$post = $_POST;
array_map('mysql_real_escape_string', $post);
 
$data = (object) $post;


 
et la tu pourras recuperé  $nom, $prenom....
 
comme ca  
 

$data->nom, $data->prenom


 
array_map  sert a faire un fonction sur chaque element du tableau  la c'est mysql_real_escape_string

n°1921096
tag91
Posté le 03-09-2009 à 23:04:51  profilanswer
 

ok c'est gentil,en effet, si ça fait tout automatiquement,plus besoin de me déranger
 
et au niveau donc du pbl, tu vois d'où ça peut venir?

n°1921099
stealth35
Posté le 03-09-2009 à 23:15:31  profilanswer
 

maintenant pour t'es erreur on va faire une liste

 


$error = array();

 

foreach($data as $key => $value)
{
   if(empty($value)
{
    switch($key)
    {
        case 'child':
            array_push($error, "le nombre d'enfant" );
       break;
      case 'postal'
            array_push($error, "le code postal de l'adresse de départ" );
       break;
    }
}
}

 

// complete le switch

 
 

si tu fais

 

echo implode(', ', $error);

 

t'as ta chaine toute faite

 


pour ton error verifie bien qu'il y'a tout dans $_POST

 

avec   print_r($_POST);


Message édité par stealth35 le 03-09-2009 à 23:17:19
n°1921102
tag91
Posté le 03-09-2009 à 23:24:01  profilanswer
 

olalala...je vais méditer tout ça! je suis débutant!je comprends le switch case break par contre "foreach($data as $key => $value)"
et "implode" je connais pas

mood
Publicité
Posté le 03-09-2009 à 23:24:01  profilanswer
 

n°1921103
stealth35
Posté le 03-09-2009 à 23:29:49  profilanswer
 

foreach c'est une boucle
 
il va cherche dans ton tableau, chaque paire  clé/valeur
 
et  
 
implode de permet  de construire une chaine a partir d'un tableau avec un separateur
 
par exemple  
 
$array = array(1, 2, 3, 4);
echo impode('/', $array)
 
va te rendre
 
1/2/3/4


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  formulaire/recherche de case vide/message

 

Sujets relatifs
Recherche d'un caractère précis Batch/DOSRecherche d'une solution pour gérer des données simples
Probléme avec mon formulaire EmailRecherche un evenement spécial...
Access remplissage table intermédaire dans formulaireModule covoiturage sur intranet : recherche informations
Comment faire une recherche en fulltext sur une viewSous-requête et recherche boolean
VBS VB ecrire message dans une fenetre soustraite/reduiteProblème Formulaire de contact
Plus de sujets relatifs à : formulaire/recherche de case vide/message


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR