pb controle de formulaire [PHP] - PHP - Programmation
Marsh Posté le 05-02-2007 à 15:03:53
Une méthode souvent utilisée consiste à faire retourner true/false à ta fonction de vérification et s'en servir ainsi:
Code :
|
Mais j'ai comme l'impression que cela ne résoudra pas tout ton problème.
hummm je sens
Marsh Posté le 05-02-2007 à 15:15:03
anapajari a écrit : Une méthode souvent utilisée consiste à faire retourner true/false à ta fonction de vérification et s'en servir ainsi:
|
c'est vrai ca ne repond pas vraiment a ma question:
Donc voila le code ca sera plu simple je pense
ca c'est ma fonction :
function check_form($nom, $prenom, $login, $adresse, $cp, $ville, $email, $pass, $repass)
{
$aroba = strpos($email, '@');
$dot = strpos($email, '.');
if(empty($nom))
echo "Vous avez oublie de saisir votre nom <br />";
if(empty($prenom))
echo "Vous avez oublie de saisir votre prenom<br />";
if(empty($login))
echo "Vous avez oublie de saisir votre login<br / >";
if(empty($adresse))
echo "Vous avez oublie de saisir votre adresse<br /";
if(empty($cp))
echo "Vous avez oublie de saisir votre code postal<br />";
if(empty($ville))
echo "Vous avez oublie de saisir votre ville<br />";
if (empty($email))
echo "Vous avez oublie de saisir votre email<br />";
elseif(!empty($email) && $aroba == '' | $dot == '')
echo "Mail invalide<br />";
if(empty($pass) || empty($repass))
echo "Vous avez oublie de saisir votre pass<br />";
}
et ca c'est mon insertion :
$fill_db = "INSERT INTO user (nom, prenom, login, adresse, cp, ville, email, pass, repass, date) VALUES (\"$nom\", \"$prenom\",\"$login\", \"$adresse\", \"$cp\",\"$ville\",\"$email\", \"$pass\", \"$repass\", \"$date\" )";
$result = mysql_query($fill_db, $link);
if (!$result)
die('Requete invalide : ' . mysql_error());
le probleme ce que meme si des champs de mon formulaire ne sont pas remplis le formulaire et enregistre dans ma base. Je voudrais ke lon enregistre le formulire que si toute les information ont ete fournies par l'utilisateur.
Marsh Posté le 05-02-2007 à 15:39:51
bin en fait si ça répond totalement à ta question
tu fais un return true/false dans check_form et tu mets un if avec ton insert
Marsh Posté le 05-02-2007 à 15:46:26
anapajari a écrit : bin en fait si ça répond totalement à ta question |
OK j'essai de faire comme tu viens de me le dire mais ca ne marche pas pourrai tu mecrire la condition parce ke la je bloque
Merci!!
Marsh Posté le 05-02-2007 à 16:06:19
http://fr.php.net/manual/fr/language.functions.php
Et aussi (car même si t'as pas balancé tout ton code, je parie que $nom, $prenom et cie proviennent directement du formulaire, sans contrôle) :
http://fr.php.net/mysql_real_escape_string
voire mieux :
http://fr.php.net/manual/fr/functi [...] xecute.php (si tu as mysqli)
Marsh Posté le 05-02-2007 à 16:17:11
sielfried a écrit : http://fr.php.net/manual/fr/language.functions.php |
Apres avoir lu tes liens ca ne marche tjrs pas (pr http://fr.php.net/mysql_real_escape_string je suis o courant. cvrai que c plus correct) mais sinon je nariv jamais a tomber dans la bonne condition]. je les gere mal.
Bref quelq'un pourrais -t-il reprendre mon code au dessus et le modifier afin de le faire fonctionner correctement??
Merci!!!
Marsh Posté le 05-02-2007 à 16:30:18
Si c'est pas bon, tu retournes false, sinon tu retournes true, y a pas plus basique. Fais voir ce que t'as essayé de faire au moins.
Marsh Posté le 05-02-2007 à 17:14:27
Code :
|
Marsh Posté le 05-02-2007 à 19:16:22
La requête SQL en tant que telle et les affichages ne devraient pas avoir lieu là-dedans.
Marsh Posté le 06-02-2007 à 10:09:41
sielfried a écrit : La requête SQL en tant que telle et les affichages ne devraient pas avoir lieu là-dedans. |
Je suis pas sur qu'il veuille se lancer dans le MVC
Marsh Posté le 06-02-2007 à 11:09:21
nycius a écrit :
|
Cette exemple de code controle la valeur de retour champs par champs. Moi ce que je veut faire c'est controler que tout les champs ont bien etes rempliset enregister dans la base que si tout les champs sont remplis. je vous envoi ma version qui ne marche pas:
function insert_in_db($nom, $prenom, $login, $adresse, $cp, $ville, $email, $pass, $repass)
{
$fill_db = "INSERT INTO user (nom, prenom, login, adresse, cp, ville, email, pass, repass, date) VALUES (\"$nom\", \"$prenom\",\"$login\", \"$adresse\", \"$cp\",\"$ville\",\"$email\", \"$pass\", \"$repass\", \"$date\" )";
$result = mysql_query($fill_db);
echo "donnee entreerr";
if (!$result)
die('Requete invalide : ' . mysql_error());
}
function check_form($nom, $prenom, $login, $adresse, $cp, $ville, $email, $pass, $repass)
{
$aroba = strpos($email, '@');
$dot = strpos($email, '.');
$retval = FALSE;
while ($retval == FALSE)
{
if(empty($nom))
echo "Vous avez oublie de saisir votre nom <br />";
if(empty($prenom))
echo "Vous avez oublie de saisir votre prenom<br />";
if(empty($login))
echo "Vous avez oublie de saisir votre login<br / >";
if(empty($adresse))
echo "Vous avez oublie de saisir votre adresse<br /";
if(empty($cp))
echo "Vous avez oublie de saisir votre code postal<br />";
if(empty($ville))
echo "Vous avez oublie de saisir votre ville<br />";
if (empty($email))
echo "Vous avez oublie de saisir votre email<br />";
elseif(!empty($email) && $aroba == '' | $dot == '')
echo "Mail invalide<br />";
if(empty($pass) || empty($repass))
echo "Vous avez oublie de saisir votre pass<br />";
}
$retval = TRUE;
if ($retval == TRUE)
insert_in_db($nom, $prenom, $login, $adresse, $cp, $ville, $email, $pass, $repass);
}
j'ai aussi essaye a ta maniere ca fait apreil que celle ci. Please HELP!!!!
Marsh Posté le 06-02-2007 à 11:50:16
ReplyMarsh Posté le 06-02-2007 à 12:31:31
nycius a écrit : C'est exactement ce que je t'ai mis, regarde et adapte |
Je vien d'adapeter mon code donc dis moi si tu vois un probleme ne tout si je ne saissi aucune valeur dans mes champs ca enregiste une ligne vide dans ma base ou si je saisi juste un champs ca le marquera: Moi je veut que ca enregistre dans la base une fois ke tous les champs ont etes remplis. Merci de ton aide.
function insert_in_db($nom, $prenom, $login, $adresse, $cp, $ville, $email, $pass, $repass)
{
$fill_db = "INSERT INTO user (nom, prenom, login, adresse, cp, ville, email, pass, repass, date) VALUES (\"$nom\", \"$prenom\",\"$login\", \"$adresse\", \"$cp\",\"$ville\",\"$email\", \"$pass\", \"$repass\", \"$date\" )";
$result = mysql_query($fill_db);
echo "donnee entreerr";
if (!$result)
die('Requete invalide : ' . mysql_error());
}
function check_form($nom, $prenom, $login, $adresse, $cp, $ville, $email, $pass, $repass)
{
$aroba = strpos($email, '@');
$dot = strpos($email, '.');
$retval = TRUE;
if(empty($nom))
{
$retval = TRUE;
echo "Vous avez oublie de saisir votre nom <br />";
}
if(empty($prenom))
{
$retval = TRUE;
echo "Vous avez oublie de saisir votre prenom<br />";
}
if(empty($login))
{
$retval = TRUE;
echo "Vous avez oublie de saisir votre login<br / >";
}
if(empty($adresse))
{
$retval = TRUE;
echo "Vous avez oublie de saisir votre adresse<br /";
}
if(empty($cp))
{
$retval = TRUE;
echo "Vous avez oublie de saisir votre code postal<br />";
}
if(empty($ville))
{
$retval = TRUE;
echo "Vous avez oublie de saisir votre ville<br />";
}
if (empty($email))
{
$retval = TRUE;
echo "Vous avez oublie de saisir votre email<br />";
}
elseif(!empty($email) && $aroba == '' | $dot == '')
{
$retval = TRUE;
echo "Mail invalide<br />";
}
if(empty($pass) && empty($repass))
{
$retval = TRUE;
echo "Vous avez oublie de saisir votre pass<br />";
}
$retval = FALSE;
if ($retval == FALSE)
insert_in_db($nom, $prenom, $login, $adresse, $cp, $ville, $email, $pass, $repass);
else
echo "on insere pas";
}
Marsh Posté le 06-02-2007 à 12:34:38
nycius a écrit : C'est exactement ce que je t'ai mis, regarde et adapte |
C bon ca marche j'ai oublier le else. Merci encore tu dechire
Marsh Posté le 05-02-2007 à 14:51:13
Bonjour.
J'ai cree une fontion qui me permet de controler la validite d'un formulaire. Maintenant je voudrais rentrer les donnees saisies par l'utilisateur que si ces donnees repondent aux critere de ma fonctions.(controle de larobase dans le mail ...). Commen faire???
Merci.
---------------
L'etre humain juge tres vite comprend lentement, s'enerve facilement et perd vite ses facultees d'enfant!!!!