Php +formulaire

Résolu/Fermé
damien35 Messages postés 80 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 1 décembre 2009 - 3 mai 2009 à 18:07
damien35 Messages postés 80 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 1 décembre 2009 - 3 mai 2009 à 19:27
Bonjour,

j'ai besoin de votre aide j ai un formulaire qui fonctionne a moitié en fait je voudrai ke mes données soient enregistrées dans ma base mysql seulement si tous les champs sont remplis! Seulement mes données s'enregistrent dans la base meme si je met qu'une donné dans le formulaire. j'ai utilisé la fonction empty mais ca change rien on m'a parlé d'une fonction trim mais jai pas tout saisi

aidez moi please voici mon script :

<?php

mysql_connect("localhost", "root", "")OR die('Erreur de sélection de la base');
mysql_select_db("camping")OR die('Erreur de sélection de la base');
//{ => inutile

$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$adresse = $_POST['adresse'];
$codepostal = $_POST['codepostal'];
$ville = $_POST['ville'];
$telephone = $_POST['telephone'];
$mail = $_POST['mail'];
$message = $_POST['message'];

if(empty($nom) && ($prenom) && empty($adresse) && empty($codepostal) && empty($ville) && empty($telephone) && empty($mail) && empty($message))
{
echo ("il y a un champ vide");
}else
{
echo ("champs bien remplies");

}



if ( trim ( $var ) == '' ) { // dans le cas où la variable est vide
echo 'vide';
} else {
echo 'contenu';
}



$req=mysql_query('INSERT INTO clients (nom, prenom, adresse, codepostal, ville, telephone, mail, message) VALUES("'.$nom.'", "' .$prenom.'", "'.$adresse.'", "'.$codepostal.'", "'.$ville.'", "'.$telephone.'", "'.$mail.'", "'.$message.'")') or die (mysql_error());
if($req)
{
echo 'enregisttrement reussi';
}
else
{
echo' un probleme est survenu<br/>'.$req;
}



mysql_close ();
?>

5 réponses

Ki!l Messages postés 94 Date d'inscription vendredi 1 mai 2009 Statut Membre Dernière intervention 4 mars 2011 36
3 mai 2009 à 18:35
Il faut exécuter la requête seulement si la condition est vérifier
essaie avec le suivant:

if(empty($nom) && ($prenom) && empty($adresse) && empty($codepostal) && empty($ville) && empty($telephone) && empty($mail) && empty($message))
{
echo ("il y a un champ vide");
}else
{
$req=mysql_query('INSERT INTO clients (nom, prenom, adresse, codepostal, ville, telephone, mail, message) VALUES("'.$nom.'", "' .$prenom.'", "'.$adresse.'", "'.$codepostal.'", "'.$ville.'", "'.$telephone.'", "'.$mail.'", "'.$message.'")') or die (mysql_error());
if($req)
{
echo 'enregisttrement reussi';
}
else
{
echo' un probleme est survenu<br/>'.$req;
}
echo ("champs bien remplies");

}
1
Infoms Messages postés 43 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 25 juillet 2009 16
3 mai 2009 à 18:37
tu peut controler votre formulaire avec le java script avant d'envoyer les infos au base, a mon avie c'est plus simple et assurées
mai pour votre solution au fin l'orsque tu vas inseree les valeur dans le tableu tu doive le remplacer par ça :
$req=mysql_query("INSERT INTO clients VALUES('$nom','$prenom','$adresse','$codepostal','.$ville.','$telephone','.$mail','$message')") or die (mysql_error());
dans value en utilise "" selement et non ."". car le point associer pour la concatunation situ aura un autre prob ma rappeler
0
togodo Messages postés 148 Date d'inscription vendredi 19 septembre 2008 Statut Membre Dernière intervention 19 août 2009 8
3 mai 2009 à 19:07
Ce n'est pas des && mais des || à utiliser.

Si au moins un champ (ou inclusive) est vide alors tu ne fais rien.

Or la tu dis si tout les champs sont vides (et) alors tu ne fais rien.Et si tu as au minimum un champ rempli alors tu enregistres.

Logique ;)
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
3 mai 2009 à 19:25
Tu peut controler votre formulaire avec le java script avant d'envoyer les infos au base, a mon avie c'est plus simple et assurées

Non, non, et non.
Le javascript permet oui de faire un pré-controle des valeurs saisies par l'utilisateur afin de lui épargner le rechargement de la page en cas d'erreur, mais il n'est en rien un gage de sécurité.

Il est primordial de controler les valeurs cotés serveur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
damien35 Messages postés 80 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 1 décembre 2009
3 mai 2009 à 19:27
merci pour vos réponses ca fonctionne!!

la solution :

<?php

mysql_connect("localhost", "root", "")OR die('Erreur de sélection de la base');
mysql_select_db("camping")OR die('Erreur de sélection de la base');


$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$adresse = $_POST['adresse'];
$codepostal = $_POST['codepostal'];
$ville = $_POST['ville'];
$telephone = $_POST['telephone'];
$mail = $_POST['mail'];
$message = $_POST['message'];

if(empty($nom) || ($prenom) || empty($adresse) || empty($codepostal) || empty($ville) || empty($telephone) || empty($mail) || empty($message))
{
echo ("Remplissez tous les champs du formulaire s'il vous plaît");
}
else
{
$req=mysql_query('INSERT INTO clients (nom, prenom, adresse, codepostal, ville, telephone, mail, message) VALUES("'.$nom.'", "' .$prenom.'", "'.$adresse.'", "'.$codepostal.'", "'.$ville.'", "'.$telephone.'", "'.$mail.'", "'.$message.'")') or die (mysql_error());
if($req)
{
echo 'Vos données ont bien été enregistrées';
}
else
{
echo' un probleme est survenu<br/>'.$req;
}
echo ("champs bien remplies");

}
?>
0