Afficher une div selon la saisie effectuée

Résolu/Fermé
philipf75017 Messages postés 10 Date d'inscription jeudi 6 juin 2019 Statut Membre Dernière intervention 12 juin 2022 - 6 juin 2019 à 15:04
philipf75017 Messages postés 10 Date d'inscription jeudi 6 juin 2019 Statut Membre Dernière intervention 12 juin 2022 - 6 juin 2019 à 15:06
Bonjour,
je viens de m'inscrire pour pouvoir joindre des photos.

Je vais essayer d'être précis.
Lorsque l'utilisateur a oublié son mot de passe il clique sur "Mot de passe oublié". Lors de ce clic j'affiche une div qui contient un formulaire avec un input de type text et un bouton "envoyer".
Lorsque l'utilisateur clique sur le bouton envoyer je teste l'adresse mail saisie.
PUIS
Si l'adresse est correcte je cache la div et un j'affiche un message .
Si l'adresse n'est pas valide, je laisse la div affichée avec un message d'erreur
Les fonctions script et php fonctionnent
Pour moi c'est bien un problème d'écriture PHP.
voici le contenu de mes fichiers
Fichier index.php
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>toto</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="text/javascript" src="scripts/scripts.js"></script />
</head>
<body style="font-family:verdana">
<?php
include("fonctionsphp.php");
// Traitement
$saisi = isset($_POST['saisi']) ? $_POST['saisi'] : "";
$is_correct = false;
$mail = isset($_POST['mail']) ? $_POST['mail'] : "";
if (!empty($_POST['mail'])){
	$adresse_mail=htmlentities($_POST['mail']);
	if(!VerifierAdresseMail($adresse_mail)){
		$is_correct = false;
	}
	else { $saisi = 'ok'; 
		$is_correct = true;
	}
}
 
if (isset($_POST['valider2'])){
	$is_correct = ($mail == 'ok'); // true ou false
}
?>
<span style="cursor:pointer" onclick="montrer('madiv');"><b>Mot de passe oublié ?</b></span> <br />
<?php
// Affichage
if ( $is_correct )
{
	echo $mail." : adresse correcte";
} 
?>
	<div id="madiv" style="display:<?php echo ( $is_correct || $mail == '' )? 'none' : 'block'; ?>">
		<form name="log" action="index.php?page=connexion" method="post">
			Saisiez votre adresse mail <input type="text" name="mail" value="<?php echo $mail;?>" ><br />
			<input type="submit" name="valider2" value="valider"/>
		</form>
	</div>
<input type="text" name="saisi" value="<?php echo $saisi; ?>">
<?php
if( !$is_correct && $mail != ''){
	echo $mail." : adresse incorrecte!";
}
?>
</body>
</html>


le fichier script
function montrer(id){
	document.getElementById(id).style.display = "inline";
}
function cacher(id){
	document.getElementById(id).style.display = "none";
}

le fichier des fonctions php
<?php
//vérifie l'adresse mail
function VerifierAdresseMail($adresse_mail){
   $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
   if(preg_match($Syntaxe,$adresse_mail))
      return true;
   else 
     return false;
}
?>

le fichier style.css
#madiv { display :none; }

les images écran :
écran 1 = le texte sur lequel l'utilisateur doit cliquer
écran 2 = l'écran qui affiche la div où l'utilisateur doit saisir son mail.
écran 3 = quand l'utilisateur à cliquer sur le bouton. Ici l'adresse est correcte mais la div reste visible et le message n'est pas celui qui devrait être affiché
écran 4 = l'adresse est incorrecte, la div reste affichée et le message est correcte.


C'est l'image "écran 3" qui est incorrecte car la div ne devrait pas être affichée et le message n'est pas celui attendu.


Configuration: Windows / Chrome 74.0.3729.169

1 réponse

philipf75017 Messages postés 10 Date d'inscription jeudi 6 juin 2019 Statut Membre Dernière intervention 12 juin 2022
6 juin 2019 à 15:06
Les images écran

0