Bonjour,
j’ai la fonction suivante qui permet de verifier qu’un utilisateur se loguer (dans un espace membre wordpress).
Tout se passe au niveau du test if (strcmp($admission, ‘ja’) !== 0 )
La variable $admission est bien égale à ‘ja’ quand je la fais afficher juste avant….mais je ne rentre pas dans la condition et le user ne se loggue pas.
A savoir que quand je fais afficher la variable avec un echo juste avant, ça fait planter aussi le programme, et le user ne se loggue pas.
Quand je ne met pas cette condition, il n’y a pas de problème.
aurais je fait une erreur dans l’écriture de la condition ?
je ne comprends pas….. il y a des choses bizarre qui se passe comme le plantage lors de l’affichage par echo…
merci pour votre aide par avance…..j’en ai besoin….je ne comprend pas et je ne vois plus rien…
j’ai la fonction suivante qui permet de verifier qu’un utilisateur se loguer (dans un espace membre wordpress).
add_filter( "gform_field_validation_124", "login_validate_field_124", 10, 4 );
function login_validate_field_124($result, $value, $form, $field) {
// make sure this variable is global
global $user;
// validate username
if ( $field['cssClass'] === 'benutzername' ) {
$user = get_user_by( 'login', $value );
if ( empty( $user->user_login ) ) {
$result["is_valid"] = false;
$result["message"] = "Invalid username provided.";
}
}
// validate pass
if ( $field['cssClass'] === 'passwort' ) {
if ( !$user or !wp_check_password( $value, $user->data->user_pass, $user->ID ) ) {
$result["is_valid"] = false;
$result["message"] = "Invalid password provided.";
}
}
$user_role = array_shift($user->roles);
if ($user_role !== 'mitglieder_partnerlieferanten' )
{
if ($user_role == 'mitglieder_mitglieder' )
{
$admission = $user->usermitglieder_admission;
}
if ($user_role == 'mitglieder_partnerorganisationen' )
{
$admission = $user->userpartnerorga_admission;
}
if ($user_role == 'administrator' )
{
$admission = ja;
}
// AJOUT TEST POUR SAVOIR SI LE USER EST ADMIS (ou administrator = admis direct)
//if (($admission == 'ja' ) || ($user_role == 'administrator' ) )
//{
//return $result;
//}
//if (($user_role == 'administrator') || (2>3)) // ne fonctionne pas
//if ((1<2) || (2>3)) // MARCHE
//if ($user_role == administrator ) // ne fonctionne pas
//if ($user_role == "administrator" ) // ne fonctionne pas
//if (strcmp($admission, 'ja') !== 0 ) // ne fonctionne pas
if (strcmp($admission, 'ja') !== 0 )
{
return $result;
}
else
{
echo '<script type="text/javascript">window.alert(" Sie sind nicht Miglieder ");</script>';
}
}
else
{
echo '<script type="text/javascript">window.alert(" Sie können nur in Lieferantenbereich anmelden ");
</script>';
}
// FIN AJOUT
}
Tout se passe au niveau du test if (strcmp($admission, ‘ja’) !== 0 )
La variable $admission est bien égale à ‘ja’ quand je la fais afficher juste avant….mais je ne rentre pas dans la condition et le user ne se loggue pas.
A savoir que quand je fais afficher la variable avec un echo juste avant, ça fait planter aussi le programme, et le user ne se loggue pas.
Quand je ne met pas cette condition, il n’y a pas de problème.
aurais je fait une erreur dans l’écriture de la condition ?
je ne comprends pas….. il y a des choses bizarre qui se passe comme le plantage lors de l’affichage par echo…
merci pour votre aide par avance…..j’en ai besoin….je ne comprend pas et je ne vois plus rien…