probleme avec php

Répondre
picsooo
le 07/07/2013 à 15:44
picsooo
BAnjour je suis entrain de creer un formulaire de contact qui contient six champs a remplir

Mon probleme C'est que je voudrais inserer les informations correct dans la base de donnée apres l'affichage des message d'erreures

Dans mon cas mon formulaire affiches les message d'erreures mais inseres les donnée quand méme dans ma table !
comment faire Merci si il ya quelqun qui sy connait me reppond !!

voici mon code :

<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="global.css">
<?php
function taille_variable($variable,$taille_min=0,$taille_max=0){
global $_POST;
if(!isset($_POST[$variable])){
// valeur non définie
return false;
}elseif (strlen($_POST[$variable])<$taille_min){
return False;
}elseif(strlen($_POST[$variable])>$taille_max){
return FALSE;
}
return True;
}
?>

<form method="POST" name="creer-utilisateur">
<h1> contactez nous </h1>
<div id="bloc">

<div id='left'> <div id="logo"><img src="logo.png"></div></div>
<div id='rit'>
<p>Nom (*) <input type="text" name="nom" class="champs" size="25"> Prénom (*) <input type="text" name="prenom" size="25"></p>


<p>Adresse mail (*) <input type="text" name="email" class="champs" size="60"></p>


<p>Téléphone <input type="text" name="telephone" class="champs" size="20"></p>
<p>objet de votre message (*) <input type="text" class="champs" name="objet" size="25"> </br>
</br>
<label for='comment'>votre message ici (*) </label> <textarea id='comment' name='comment'> </textarea>


<p> <input type="submit" name="envoyer" value="Envoyer" /></p>
</div>

</form>
</div>
<?php
////////////////////////////////////////////////////////

include('../admin/includes/connect/bdd.php');

/////////////////////////////////////////////////////////////


$nom=(isset($_POST["nom"])) ? $_POST["nom"] : "";

$prenom=(isset($_POST["prenom"])) ? $_POST["prenom"] : "";

$telephone=(isset($_POST["telephone"])) ? $_POST["telephone"] : "";

$objet=(isset($_POST["objet"])) ? $_POST["objet"] : "";


$email=(isset($_POST["email"])) ? $_POST["email"] : "";
$comment=(isset($_POST["comment"])) ? $_POST["comment"] : "";

$msg = "Nom:\t$nom\n";


$msg = "Prénom:\t$prenom\n";


$msg = "Numéro de téléphone:\t$telephone\n";


$msg = "objet:\t$objet\n";


$msg = "E-Mail:\t$email\n";

$msg = "comment:\t$comment\n";
?>

<?php


if ( !isset($_POST['nom']) && !isset($_POST['prenom']) && isset($_POST['email']) && !isset($_POST['objet']) && !isset($_POST['telephone'])
&& !isset($_POST['comment'])) {} else { echo "un ou plusiseur champs sont vide";} echo'</br>';
// if (!strpos($_POST['email'], @)) {


if (taille_variable('nom',3,15)) {} else { echo "le nom doit contenir au moins 3 lettres"; }


if (taille_variable('prenom',3,15)) {}else { $prenom_different = true; }



if (taille_variable('objet',5,150)) {}else { $objet_different = false; }

if (!is_numeric($_POST['telephone'])) {}else { $telephone_notnumeric = true; }




if (!taille_variable('comment',10,790)) {}else { $comment_different = true; }


if (!isset($nom_different)
&& !isset($prenom_different)
&& !isset($objet_different)
&& !isset($telephone_notnumeric)
&& !isset($telephone_different)
&& !isset($comment_different)) {

/////////////////////////////////////////////////////////////

include('../admin/includes/connect/bdd.php');

//////////////////////////////////////////////////////



$rqt=$bdd->prepare('INSERT INTO contact (nom,prenom,telephone,objet,email,comment)
VALUES(:nom,:prenom,:telephone,:objet,:email,:comment)');

$rqt->bindValue(':nom',$nom,PDO::PARAM_STR);
$rqt->bindValue(':prenom',$prenom,PDO::PARAM_STR);
$rqt->bindValue(':telephone',$telephone,PDO::PARAM_STR);
$rqt->bindValue(':objet',$objet,PDO::PARAM_STR);
$rqt->bindValue(':email',$email,PDO::PARAM_STR);
$rqt->bindValue(':comment',$comment,PDO::PARAM_STR);

$rqt->execute();

} else { $nom_different = true;

} { $erreur_inconnue = true; }







//if (isset($mail_incorrect)){ echo '<h4>email inccorect</h4>'; }
if (isset($nom_different)){ echo '<h4>le nom doit contenir au moins 3 lettre</h4>'; }
if (isset($prenom_different)){ echo '<h4>le prenom doit contenir au moins 3 lettre</h4>'; } echo '</br>';
if (isset($objet_different)){ echo '<h4>objet de votre commentaire dopit contenir au moins troi lettres </h4>'; }
if (isset($telephone_notnumeric)){ echo '<h4>numero de telephone doit contenir que des chiffres</h4>'; }
if (isset($telephone_different)){ echo '<h4>numero de telephoneinccorexct ressayez</h4>'; }
if (isset($comment_different)){ echo '<h4>votre message est trop court ressayez </h4>'; }
?>
lucci
LupusMic
le 07/07/2013 à 19:48
LupusMic
Tout d'abord : quand on dit « bonjour » on le fait sans faute d'orthographe. Ça montrerait que tu te relise un minimum et que donc tu nous considères. Ensuite, lire la charte du forum, qui demande à utiliser le bbcode pour afficher le code, qui pourrait nous aider.

En ce qui concerne ton code, plusieurs remarques :
→ $_POST est un superglobal, accessible depuis n'importe quel portion de code. Ce n'est donc pas la peine d'utiliser global $_POST.
→ ton code est trop compliqué. Les conditions dans tes if sont trop longues.
→ il y a un mélange des genres dans la gestion des erreurs qui n'est pas génial.

Pour la gestion des erreurs, j'utilise en général un tableau. Chaque clé du tableau représente un paramètre HTTP, auquel j'associe un tableau d'erreurs. Ça permet de simplifier la gestion des erreurs.

<?php

$errors = array();

if(/* condition d'erreur */)
$errors['nom'] = 'Nom incorrect';

if(0 < count($errors))
/* Puisqu'on a des erreurs, on peut gérer */;
else
/* il n'y a pas d'erreur, on prépare et insère les données */;
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours