formulaire/recherche de case vide/message

formulaire/recherche de case vide/message - PHP - Programmation

Marsh Posté le 03-09-2009 à 21:55:58    

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
Reply

Marsh Posté le 03-09-2009 à 21:55:58   

Reply

Marsh Posté le 03-09-2009 à 22:28:55    

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  ;)

Reply

Marsh Posté le 03-09-2009 à 22:32:34    

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
Reply

Marsh Posté le 03-09-2009 à 22:37:18    

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

Reply

Marsh Posté le 03-09-2009 à 22:38:41    

j'ai wampserver,je regarde pour infophp

Reply

Marsh Posté le 03-09-2009 à 22:44:51    

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

Reply

Marsh Posté le 03-09-2009 à 22:58:01    

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

Reply

Marsh Posté le 03-09-2009 à 23:04:51    

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?

Reply

Marsh Posté le 03-09-2009 à 23:15:31    

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
Reply

Marsh Posté le 03-09-2009 à 23:24:01    

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

Reply

Marsh Posté le 03-09-2009 à 23:24:01   

Reply

Marsh Posté le 03-09-2009 à 23:29:49    

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed