|
La Communauté Webmaster 
| Pages: [1] |
 |
|
|
|
Auteur |
Sujet: problème de controle formulaire (Lu 799 fois) |
|
 |
problème de controle formulaire
« sur: le 22-03-2007 a 14:31:24 » |
|
johnny-57
Membre récent

Hors-Ligne
Sexe: 
Messages: 12

|
Bonjour tout le monde,
Comme 2 têtes pensent mieux qu'une je vous fait part de mon problème parce qu'à force ma tête ne pense plus 
J'ai une page avec un formulaire
<? echo "<FORM enctype='multipart/form-data' ACTION='inscription-ok.php' METHOD=POST>"; echo "<TABLE width='80%' CELLPADDING=3 CELLSPACING=2 >"; echo "<tr>"; echo " <td align= 'left'>"; echo " </td></tr><tr><TD align='left' class='default'>"; echo " Société :</td><td>"; echo " <INPUT TYPE='text' NAME='societe' VALUE='' SIZE=40 MAXLENGTH=50>"; echo " </TD></TR><TR>"; echo " <td align= 'left'>"; echo " </td></tr><tr><TD align='left' class='default'> "; echo " Nom :</td><td>"; echo " <INPUT TYPE='text' NAME='nom' VALUE='' SIZE=40 MAXLENGTH=50>"; echo " </TD></TR><TR>"; echo " <td align= 'left'>"; echo " </td></tr><tr><TD align='left' class='default'> "; echo " Prénom :</td><td>"; echo " <INPUT TYPE='text' NAME='prenon' VALUE='' SIZE=40 MAXLENGTH=50>"; echo " </TD></TR><TR>"; echo " <td align= 'left'>"; echo " </td></tr><tr><TD align='left' class='default'> "; echo " Fonction : </td><td>"; echo " <INPUT TYPE='text' NAME='fonction' VALUE='' SIZE=40 MAXLENGTH=50>"; echo " </TD></TR><TR>"; echo " <td align= 'left'>"; echo " </td></tr><tr><TD align='left' class='default'> "; echo " Téléphone : </td><td>"; echo " <INPUT TYPE='text' NAME='tel' VALUE='' SIZE=40 MAXLENGTH=50>"; echo " </TD></TR><TR>"; echo " <td align= 'left'>"; echo " </td></tr><tr><TD align='left' class='default'> "; echo " Fax : </td><td>"; echo " <INPUT TYPE='text' NAME='fax' VALUE='' SIZE=40 MAXLENGTH=50>"; echo " </TD></TR><TR>"; echo " <td align= 'left'>"; echo " </td></tr><tr><TD align='left' class='default'> "; echo " Portable : </td><td>"; echo " <INPUT TYPE='text' NAME='portable' VALUE='' SIZE=40 MAXLENGTH=50>"; echo " </TD></TR><TR>"; echo " <td align= 'left'>"; echo " </td></tr><tr><TD align='left' class='default'> "; echo " Email : </td><td>"; echo " <INPUT TYPE='text' NAME='email' VALUE='' SIZE=40 MAXLENGTH=50>"; echo " </TD></TR><TR>"; echo " <td align= 'left'>"; echo " </td></tr><tr><TD align='left' class='default'> "; echo " Site web : </td><td>"; echo " <INPUT TYPE='text' NAME='site' VALUE='' SIZE=40 MAXLENGTH=50>"; echo " </TD></TR><TR>"; echo " <td align= 'left'>"; echo " </td></tr><tr><TD align='left' class='default'> "; echo " Adresse : </td><td>"; echo " <INPUT TYPE='text' NAME='adresse' VALUE='' SIZE=40 MAXLENGTH=50>"; echo " </TD></TR><TR>"; echo " <td align= 'left'>"; echo " </td></tr><tr><TD align='left' class='default'> "; echo " Code postal : </td><td>"; echo " <INPUT TYPE='text' NAME='cp' VALUE='' SIZE=40 MAXLENGTH=50>"; echo " </TD></TR><TR>"; echo " <td align= 'left'>"; echo " </td></tr><tr><TD align='left' class='default'> "; echo " Ville : </td><td>"; echo " <INPUT TYPE='text' NAME='ville' VALUE='' SIZE=40 MAXLENGTH=50>"; echo " </TD></TR><TR>"; echo " <td align= 'left'>"; echo " </td></tr><tr><TD align='left' class='default'> "; echo " Pays : </td><td>"; echo " <INPUT TYPE='text' NAME='pays' VALUE='' SIZE=40 MAXLENGTH=50>"; echo " </TD></TR>"; echo " <TR><TD colspan=2 align='center'>"; echo " <CENTER>"; echo " <INPUT TYPE='reset' VALUE='Effacer' name='Annulation'> "; echo " <INPUT TYPE='submit' NAME='Validation' VALUE='Enregistrer'>"; echo " </CENTER>"; echo " </TD>"; echo "</TR>"; echo "</TABLE>"; echo "</FORM>";
?>
|
|
Elle renvoie vers une autre page en php également qui vas insérer le contenue du formulaire dans la base mysql. Pour ne pas enregistrer n'importe quoi je contrôle le contenue des champs avec ce code qui est dans la 2ème page
<? function verif($nom, $email, $tel) { $retour=0; // vérification du nom if ($_POST[nom]=="") { echo "<center><font size=+2><b>Vous n'avez pas saisi votre nom</b></font></center>"; $retour=1; return false; } // vérfifcation de la présence du telephone if ($_POST[tel]=="") { echo "<br><center><font size=+2><b>Vous n'avez pas saisi votre numéro de téléphone</b></font></center>"; $retour=1; return false; } // vérification de l'E-MAIL if ($_POST[email]) { $email = strtolower($_POST[email]); if (strlen($email) < 6){ echo "$email : Email trop court<br>"; $retour=1; } if (strlen($email) > 255) { echo "$email : Email trop long<br>"; $retour=1; } if (!ereg("@", $email)){ echo "$email : Le email n'a pas d'arobase (@)<br>"; $retour=1; } if (preg_match_all("/([^a-zA-Z0-9_\@\.\-])/i", $email, $trouve)) { echo "$email : caractère(s) interdit dans un email (".implode(", ",$trouve[0]).")."; echo "<br>"; $retour=1; } if (!preg_match("/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$/i", $email)) { echo "$email : ce n'est pas un la forme d'un email.<br>"; $retour=1; } list($compte, $domaine)=split("@", $email, 2); if (!checkdnsrr($domaine, "MX")){ echo "$email : Ce domaine ($domaine) n'accepte pas les emails<br>"; $retour=1; } return $email; } } if ($retour==0) { return true; } else { return false; } $result=verif($_POST[nom],$_POST[email],$_POST[tel]); if ($result==false) { echo "<br><br><center><font size=+2><b>Utilisez le bouton retour arrière pour modifier votre saisie</b></font></center>"; } else {
$carac = "abcdefghijklmnopqrstuvwxyz1234567890#$;*@"; $nbcarac = 7; $password=""; srand((double)microtime()*1000000); for($i=0; $i<$nbcarac;$i++){ $password.= $carac[rand()%strlen($carac)]; } $Maintenant = date('dmY');
$instruction="INSERT INTO fournisseurs VALUES ('', '$Maintenant', '$_POST[societe]', '$_POST[nom]', '$_POST[prenon]', '$_POST[fonction]', '$_POST[tel]', '$_POST[fax]', '$_POST[portable]', '$_POST[email]', '$_POST[site]', '$_POST[adresse]', '$_POST[cp]','$_POST[ville]','$_POST[pays]','$_POST[email]','$password','0','','','','','','','')"; $res = mysql_query ($instruction, $connexion); $num_enreg= mysql_insert_id();
echo "<center><br><br><br><br><font color=red><b>Merci, les informations concernant votre profil sont maintenant enregistrées sous le numero : ".$num_enreg."</b></font><br><br><br><br>"; echo "Un mail de confirmation vous a été envoyé à l'adresse $_POST[email].<br><br><br><br>";
$aujourdhui = getdate(); $mois = $aujourdhui['mon']; $jour = $aujourdhui['mday']; $an = $aujourdhui['year']; $heure = $aujourdhui['hours']; $min = $aujourdhui['minutes']; $sec = $aujourdhui['seconds']; $total=$categorie+$valeur; mail("$_POST[email]", "texte d'accueil", "From: webmaster");
$sqlcomp="SELECT id FROM fournisseurs ORDER BY id DESC LIMIT 1"; $repcomp = mysql_query($sqlcomp, $connexion); while ($rescomp = mysql_fetch_row($repcomp)) { //echo "$rescomp[0]"; $sqlcomp2="INSERT INTO competences VALUES ('','$rescomp[0]','','','','','','','0','','')"; $repcomp2 = mysql_query($sqlcomp2, $connexion); //echo $sqlcomp2; } } ?>
|
|
Biensur je ne montre pas la partie connexion à la base mais elle est bien dans le code 
Si vous avez une idée je suis preneur merci d'avance |
|
|
|
|
|
|
 |
Re:problème de controle formulaire
« Répondre #1 sur: le 23-03-2007 a 21:00:32 » |
|
|
|
|
 |
Re:problème de controle formulaire
« Répondre #2 sur: le 23-03-2007 a 21:04:56 » |
|
|
|
|
 |
Re:problème de controle formulaire
« Répondre #3 sur: le 23-03-2007 a 21:16:01 » |
|
|
|
|
 |
Re:problème de controle formulaire
« Répondre #4 sur: le 24-03-2007 a 07:41:38 » |
|
|
|
|
 |
Re:problème de controle formulaire
« Répondre #5 sur: le 24-03-2007 a 10:13:01 » |
|
ToToMaStEr
Modérateur Global
    
Hors-Ligne
Sexe: 
Messages: 238

....
|
je n'ai pas vu de script de connexion sql. Je vois que des recuperation sous fetch_row: $sqlcomp="SELECT id FROM fournisseurs ORDER BY id DESC LIMIT 1"; $repcomp = mysql_query($sqlcomp, $connexion); while ($rescomp = mysql_fetch_row($repcomp)) { //echo "$rescomp[0]"; $sqlcomp2="INSERT INTO competences VALUES ('','$rescomp[0]','','','','','','','0','','')"; $repcomp2 = mysql_query($sqlcomp2, $connexion); //echo $sqlcomp2;
|
| |
Vous ne pourrez pas me batre à ce jeu:labrute || Formation aux premiers secours CRF |
|
|
 |
Re:problème de controle formulaire
« Répondre #6 sur: le 24-03-2007 a 10:26:05 » |
|
|
|
|
 |
Re:problème de controle formulaire
« Répondre #7 sur: le 24-03-2007 a 12:24:21 » |
|
iowa
Invité
|
Bon alors j'ai pas tout lu ton code.
Pour ta première page : Pourquoi tu n'écrit pas carément juste le formulaire dans le fichier sans utiliser PHP ? Utilise toujours la balise ouvrante : <?php
Pour ta deuxième page : tu dois utiliser les fonctions isset ou empty pour vérifier les résultats. Exemple :
se transforme en :
Il faut faire ça avec toutes les données à vérifier.
Un autre truc : quand tu essaie d'accéder à un array mais toujours des quotes pour entourer le nom.
Exemple :
if (!verif($_POST['nom'],$_POST['email'],$_POST['tel']))
|
| |
|
|
|
|
 |
Re:problème de controle formulaire
« Répondre #8 sur: le 26-03-2007 a 19:07:07 » |
|
johnny-57
Membre récent

Hors-Ligne
Sexe: 
Messages: 12

|
bon,
ne parvenant pas a trouver l'erreur j'ai tout repris à 0 à tête reposé et sa donne sa
<? // // DEBUT Fonction de contrôle du mail PHP-UNIX function check_mail($email) { if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email)) || (preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',$email)) ) { $host = explode('@', $email); if(checkdnsrr($host[1].'.', 'MX') ) return true; if(checkdnsrr($host[1].'.', 'A') ) return true; if(checkdnsrr($host[1].'.', 'CNAME') ) return true; } return false; } // FIN Fonction de contrôle du mail
$Envoi = 1; //initialisation de la variable envoi à 1
if ($nom == ""){ //nom du champ1 echo("Vous n'avez pas complété le champ nom.<br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ $Envoi = 0; //si le champ1 n'a pas été rempli, la variable envoi prend la valeur de 0 } if ($prenom == ""){ echo("Vous n'avez pas complété le champ prenom.<br>"); $Envoi = 0; } if ($fonction == ""){ echo("Vous n'avez pas complété le champ fonction<br>"); $Envoi = 0; } if ($email == ""){ echo("Vous n'avez pas complété le champ email<br>"); $Envoi = 0; } else { if (check_mail($email)) { echo(""); } else { echo("L'adresse e-mail n'est pas valide<br>"); $Envoi = 0; } } if ($adresse == ""){ echo("Vous n'avez pas complété le champ adresse.<br>"); $Envoi = 0; } if ($cp == ""){ echo("Vous n'avez pas complété le champ code postal.<br>"); $Envoi = 0; } if ($Envoi == 0) echo "<br><br><center><font size=+2><b>Utilisez le bouton retour arrière pour modifier votre saisie</b></font></center>"; //Envoi du message
if ($Envoi == 1) { //vérification que la variable envoi est bien à 1
|
|
et sa marche bien, si sa peut vous servir |
|
|
|
|
| Pages:
[1] |
|
|
|
| |
|
|