If et Else php

Résolu
Rom190686 Messages postés 436 Date d'inscription   Statut Membre Dernière intervention   -  
Rom190686 Messages postés 436 Date d'inscription   Statut Membre Dernière intervention   -
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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   Statut Membre Dernière intervention   35
 
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
<?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   Statut Membre Dernière intervention   35
 
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   Statut Membre Dernière intervention   35
 
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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   Statut Membre Dernière intervention   35
 
Merci pour ton aide....
0
Rom190686 Messages postés 436 Date d'inscription   Statut Membre Dernière intervention   35
 
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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   Statut Membre Dernière intervention   35
 
Encore merci...
0