[RESOLU] Appel variable fonction

Eléphanteau du PHP | 16 Messages

28 déc. 2013, 13:43

Bonjour,

Ci-dessous la fonction checkmdp qui permet de vérifier la validité des mots de passe et qui affiche si ceux-ci sont corrects :

function checkmdp($mdp, $mdp2)
{
global $valid_mdp;

if (($mdp == '') OR ($mdp2 == ''))
{
$valid_mdp = False;
$message = 'Veuillez saisir des mots de passe';
}
else
{
//Cohérence MDP = MDP confirmation
if($mdp != $mdp2 AND $mdp != '' AND $mdp2 != '')
{
$valid_mdp = False;
$message = 'Les mots de passe saisis ne sont pas identiques';
}
else
{
$valid_mdp = True;
}
}

if ($valid_mdp == False)
{
echo $message;
}

}

Dans mon code principal je souhaiterais faire appel à la variable $valid_mdp pour savoir si elle est True ou False.

Je fais ceci :
if ((isset($_POST["mdp_nv_client"])) AND (isset($_POST["mdp_nv_client_valid"])))
{
$mdp_nv_client = $_POST["mdp_nv_client"];
$mdp_nv_client_valid = $_POST["mdp_nv_client_valid"];
checkmdp($mdp_nv_client,$mdp_nv_client_valid);
echo '<br>';

Y a t-il un moyen plus propre que de passer par une variable globale ???

D'avance merci.

Yoann

}

echo $valid_mdp;

Eléphant du PHP | 453 Messages

28 déc. 2013, 15:58

Salut,

Tu n'as pas du tout besoin de globaliser ta variable. Il te suffit de transmettre/retourner tes variables. Je te conseille de lire ou de relire un cour sur les fonctions. Sauf aux quelques rares exceptions, globaliser, c'est mal ;). Pourquoi ? ex : une variable peut avoir le même nom. Si elle est globalisée....

Je t'invite à lire ceci :
<?php
function checkmdp($mdp, $mdp2){
	if (($mdp == '') OR ($mdp2 == '')){
		return array('valid' => false,'message' => 'Veuillez saisir des mots de passe');
	}else if($mdp != $mdp2 AND $mdp != '' AND $mdp2 != ''){
		return array('valid' => false,'message' => 'Les mots de passe saisis ne sont pas identiques');
	}else{
		return array('valid' => true,'message' => '');
	} 
}

if ((isset($_POST["mdp_nv_client"])) AND (isset($_POST["mdp_nv_client_valid"]))){
	$mdp_nv_client = $_POST["mdp_nv_client"];
	$mdp_nv_client_valid = $_POST["mdp_nv_client_valid"];
	$check = checkmdp($mdp_nv_client,$mdp_nv_client_valid);
	echo $check['message'];
echo '<br>';
?>
J'ai fait ça de tête. Donc je peux avoir fait une petite erreur. Cependant, je t'aiguille suivant ton idée de départ.
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

Eléphanteau du PHP | 16 Messages

28 déc. 2013, 17:37

Merci infiniment cela fonctionne !
Je vais maintenant pouvoir appliquer cela à une seconde fonction :)