If et Else php

Résolu/Fermé
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 - 14 déc. 2009 à 21:35
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 - 15 déc. 2009 à 23:07
Bonjour,
J'ai un petit problème dans mon code php.
Je vous résume en quelques lignes le problème.
Un formulaire permet de renseigner ses coordonnées. Si le formulaires est complété, alors on enregistre et on on affiche la confirmation. Sinon on affiche un message qui dit que les champs ne sont pas renseignés correctement.
Quand la condition est remplie, pas de problème, tout fonctionne. Mais quand la condition n'est pas remplie, l'enregistrement ne se fait pas mais le texte qui doit s'afficher ne s'affiche pas.
Mon code ci-dessous :
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("mabdd");
If (isset($_POST['nom']) AND isset($_POST['prenom']) AND isset($_POST['codepostal']) AND isset($_POST['localite']) AND isset($_POST['mail']))
{
If ($_POST['nom'] != NULL AND $_POST['prenom'] != NULL AND $_POST['codepostal'] != NULL AND $_POST['localite'] != NULL AND $_POST['mail'] != NULL)
{
$nom = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
$prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom']));
$codepostal = mysql_real_escape_string(htmlspecialchars($_POST['codepostal']));
$localite = mysql_real_escape_string(htmlspecialchars($_POST['localite']));
$mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));

mysql_query("INSERT INTO newsletter VALUES('', '" . $nom . "', '" . $prenom . "', '" . $codepostal . "', '" . $localite . "', '" . $mail ."')");
?>

<p>Votre inscription à bien été prise en compte !</p>
<?php
}
}
else
{
?>

<p>Les champs n'ont pas été remplis correctement, merci de verifier vos coordonnées .<br />Revenir au <a href="newsletter.html">formulaire d'inscription</a></p>
<?php
}
?>

Merci d'avance pour votre aide
A voir également:

10 réponses

avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
14 déc. 2009 à 21:38
En minuscules, ça ira déjà un peu mieux : "if" et pas "If"
Tu pourrais directement vérifier tes champs avec la fonction empty qui retourne true si la variable est vide.
1
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
14 déc. 2009 à 21:43
je n'ai pas de probleme avec les champs, les if fonctionnent parfaitement.
C'est le else qui ne va pas.
Si la condition est remplie, alors tout fonctionne.
Sinon, le texte ne s'affiche pas.
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
14 déc. 2009 à 21:54
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("mabdd");

if(!empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['codepostal']) && !empty($_POST['localite']) && !empty($_POST['mail'])) {
	// Sécurisation des variables
	$nom = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
	$prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom']));
	$codepostal = mysql_real_escape_string(htmlspecialchars($_POST['codepostal']));
	$localite = mysql_real_escape_string(htmlspecialchars($_POST['localite']));
	$mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
	
	// Insertion dans la base de données
	if(mysql_query("INSERT INTO newsletter VALUES('', '" . $nom . "', '" . $prenom . "', '" . $codepostal . "', '" . $localite . "', '" . $mail ."')")) {
		echo '<p>Votre inscription à bien été prise en compte !</p> ';
	} else {
		echo '<p>Erreur lors de l\'inscription</p>';
	}
} else {
	echo '<p>Les champs n\'ont pas été remplis correctement, merci de verifier vos coordonnées .<br />'."\n".
	'Revenir au <a href="newsletter.html">formulaire d\'inscription</a></p>'."\n";
}
?>
0
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
14 déc. 2009 à 21:56
Ce code m'a l'air bien plus clair et complet que le mien. Je le test de suite et te tiens au courant....
0

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

Posez votre question
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
14 déc. 2009 à 22:26
Ca fonctionne, merci beaucoup...
Au fait, aurais-tu une fonction qui permet de verifier la validité de l'adresse mail?
Merci
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
14 déc. 2009 à 22:28
Les regex ...
preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i',$email);
Retourne true si l'email est valide
0
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
14 déc. 2009 à 23:04
Merci pour ton aide....
0
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
15 déc. 2009 à 22:30
Les regex fonctionnent parfaitement.
Cependant, je crois qu'il existe un code php ou peut être un java-script qui permet de vérifier la validité d'une adresse mail en envoyant une sorte de ping au serveur de l'adresse mail qui retourne true si l'e-mail existe.
Pour info, la distribution OS commerce (parmi d'autres) utilisent ce genre de vérifications.
Si vous connaissez ce code, je suis preneur...
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
15 déc. 2009 à 22:38
La vérification par Javascript ne doit en aucun cas remplacer celle en PHP, mais juste être un complément !
La regex est la même pour n'importe quel langage.
Par contre, tu ne peux pas vérifier si une adresse email existe, mais seulement si il y a un serveur mail sur l'hôte après "@".
https://codes-sources.commentcamarche.net/
0
Rom190686 Messages postés 436 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 20 novembre 2015 35
15 déc. 2009 à 23:07
Encore merci...
0