par
Nestecha » 05 déc. 2014, 02:45
Hello, essaie avec ce code :
$sError = 0;
$definitionSexe= array( "M"=> array("nom"=>"Masculin","appellation"=>"Monsieur"), "F"=>array("nom"=>"feminin","appellation"=>"Madame") );
$personnes= array();
$personnes["LaporteGabriel"]=array("prenom"=>"Gabriel","nom"=>"Laporte","sexe"=>"M","courriel"=>"[email protected]" );
$personnes["ChenierJoanne"]=array("prenom"=>"Joanne","nom"=>"Chenier","sexe"=>"F","courriel"=>"[email protected]" );
$personnes["LavoieDrapeauRoxanne"]=array("prenom"=>"Roxanne","nom"=>"LavoieDrapeau","sexe"=>"F","courriel"=>"[email protected]");
$personnes["LaporteJacques"]=array("prenom"=>"Jacques","nom"=>"Laporte","sexe"=>"M", "courriel"=>"[email protected]" );
$personnes["LaporteSandrine"]=array("prenom"=>"Sandrine","nom"=>"Laporte","sexe"=>"F", "courriel"=>"[email protected]" );
$personnes["LegrisAntoine"]=array("prenom"=>"Antoine","nom"=>"Legris","sexe"=>"M","courriel"=>"[email protected]" );
$personnes["AlexanderDurand"]=array("prenom"=>"Alexander","nom"=>"Durand","sexe"=>"M","courriel"=>"[email protected]" );
if (isset($_POST['Submit'])) {
foreach($personnes as $aSubPersonne) {
if ($_POST['nom'] == $aSubPersonne['nom'] && $_POST['prenom'] == $aSubPersonne['prenom'] && $_POST['sexe'] == $aSubPersonne['sexe'] && $_POST['courriel'] == $aSubPersonne['courriel']) {
echo 'Bienvenue ' . $aSubPersonne['prenom'] . ' ' . $aSubPersonne['nom'] . '.';
$sError = 0;
exit();
} else {
$sError++;
}
}
}
if ($sError > 0) {
echo 'Erreur de connexion, utilisateur introuvable.';
}
Ce n'est pas très beau, mais c'est le code du départ qui veut ça.
En fait ce qui est dérangeant, c'est le fait de devoir vérifier chaque personne une à une.
Pour expliquer un peu le code :
1/ On boucle avec le foreach pour passer dans tous les sous-tableaux de $personnes.
2/ On vérifie si les valeurs envoyées en $_POST (tel que $_POST['nom']) sont égales ou non aux valeurs correspondantes dans le sous-tableau dans lequel nous nous trouvons (tel qu'ici : $aSubPersonne['nom']).
3/ Si toutes les valeurs concordent, on remet le compteur d'erreur initialement crée à 0, puis on quitte la boucle avec exit() (l'utilité de ceci, c'est parce qu'en 4, on ajoute 1 au compteur d'erreur si les valeurs ne concordent pas, sauf qu'on a déjà trouvé le bon résultat, donc on aura des erreurs si la boucle continue et voit des valeurs qui ne concordent pas).
4/ Si toutes les valeurs ne concordent pas, on ajoute 1 au compteur d'erreur (et on continue dans la boucle).
5/ Après ce foreach, si la valeur de $sError est égale à 0, on écrit rien. Si elle est supérieure à 0, on écrit une erreur de connexion.
Hello, essaie avec ce code :
[php]$sError = 0;
$definitionSexe= array( "M"=> array("nom"=>"Masculin","appellation"=>"Monsieur"), "F"=>array("nom"=>"feminin","appellation"=>"Madame") );
$personnes= array();
$personnes["LaporteGabriel"]=array("prenom"=>"Gabriel","nom"=>"Laporte","sexe"=>"M","courriel"=>"
[email protected]" );
$personnes["ChenierJoanne"]=array("prenom"=>"Joanne","nom"=>"Chenier","sexe"=>"F","courriel"=>"
[email protected]" );
$personnes["LavoieDrapeauRoxanne"]=array("prenom"=>"Roxanne","nom"=>"LavoieDrapeau","sexe"=>"F","courriel"=>"
[email protected]");
$personnes["LaporteJacques"]=array("prenom"=>"Jacques","nom"=>"Laporte","sexe"=>"M", "courriel"=>"
[email protected]" );
$personnes["LaporteSandrine"]=array("prenom"=>"Sandrine","nom"=>"Laporte","sexe"=>"F", "courriel"=>"
[email protected]" );
$personnes["LegrisAntoine"]=array("prenom"=>"Antoine","nom"=>"Legris","sexe"=>"M","courriel"=>"
[email protected]" );
$personnes["AlexanderDurand"]=array("prenom"=>"Alexander","nom"=>"Durand","sexe"=>"M","courriel"=>"
[email protected]" );
if (isset($_POST['Submit'])) {
foreach($personnes as $aSubPersonne) {
if ($_POST['nom'] == $aSubPersonne['nom'] && $_POST['prenom'] == $aSubPersonne['prenom'] && $_POST['sexe'] == $aSubPersonne['sexe'] && $_POST['courriel'] == $aSubPersonne['courriel']) {
echo 'Bienvenue ' . $aSubPersonne['prenom'] . ' ' . $aSubPersonne['nom'] . '.';
$sError = 0;
exit();
} else {
$sError++;
}
}
}
if ($sError > 0) {
echo 'Erreur de connexion, utilisateur introuvable.';
}
[/php]
Ce n'est pas très beau, mais c'est le code du départ qui veut ça.
En fait ce qui est dérangeant, c'est le fait de devoir vérifier chaque personne une à une.
Pour expliquer un peu le code :
1/ On boucle avec le foreach pour passer dans tous les sous-tableaux de $personnes.
2/ On vérifie si les valeurs envoyées en $_POST (tel que $_POST['nom']) sont égales ou non aux valeurs correspondantes dans le sous-tableau dans lequel nous nous trouvons (tel qu'ici : $aSubPersonne['nom']).
3/ Si toutes les valeurs concordent, on remet le compteur d'erreur initialement crée à 0, puis on quitte la boucle avec exit() (l'utilité de ceci, c'est parce qu'en 4, on ajoute 1 au compteur d'erreur si les valeurs ne concordent pas, sauf qu'on a déjà trouvé le bon résultat, donc on aura des erreurs si la boucle continue et voit des valeurs qui ne concordent pas).
4/ Si toutes les valeurs ne concordent pas, on ajoute 1 au compteur d'erreur (et on continue dans la boucle).
5/ Après ce foreach, si la valeur de $sError est égale à 0, on écrit rien. Si elle est supérieure à 0, on écrit une erreur de connexion.