- Statut : non résolu
- Ce sujet contient 6 réponses, 1 participant et a été mis à jour pour la dernière fois par Timama, le il y a 9 années et 6 mois.
-
AuteurMessages
-
26 mars 2015 à 22 h 32 min #548323
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 4.1.1
– Version de PHP/MySQL :
– Thème utilisé : le mien
– Extensions en place :
– Nom de l’hebergeur : STRATO
– Adresse du site :Problème(s) rencontré(s) :
Bonjour,
J’ai créé un formulaire de connexion personnalisé.
Dans ce formulaire, j’utilise les messages d’erreurs de wordpress si le formulaire est mal rempliif (!empty($_POST)){
$creds = array();
$creds[‘user_login’] = $_POST[‘user_login’];
$creds[‘user_password’] = $_POST[‘user_password’];
$creds[‘remember’] = true;
$user = wp_signon($creds, false);
if (is_wp_error($user)){
$error = $user->get_error_message();
} else {
//redirection vers la page
header(‘location:mitgliederbereich’);
}
}Dans ce formulaire, il y a un lien qui apparaît dans les message d’erreur, au cas où si le mot de passe est oublié.
J’ai intercepté cette page pour la diriger vers la mienne (la même en customisée) grâce au code suivant dans functions.php/********** Interception de la page http://club-d-affaires.de/wp-login.php?action=lostpassword ********/
add_filter(‘lostpassword_url’, ‘wp_hijack_lostpassword’);
function wp_hijack_lostpassword() {
return home_url(‘/lostpassword/’);
}J’ai donc ma page, qui me demande d’entrer le login ou l’adresse Email, pour m’envoyer vers la page de génération du nouveau mot de passe.
Mais voilà, j’ai quelques problèmes. Je créé moi même mes message d’erreur car j’ai 2 langues et je n’arrive pas à customiser les messages d’erreur de wordpress.
PB 1: j’ai mon message d’erreur (dans le cas de login/email vide, soit $errorlost) s’affiche dès le début, dès la conexion à cette page.
PB2: si mon login est faux, le message $errorlost ne s’affiche pas. Je ne sais pas si le résultat de
$user = username_exists($user_login);
peut être testé avec is_wp_error($user) ?PB3 : si mon login est bon, rien ne se passe….je n’arrive pas à acceder à « wp-login.php?checkemail=confirm » après validation
voici le code
<?php
//traitement des erreurs de connexion
$errorlost = false;
$errorlost2 = false;
if (empty($_POST['user_login'])){
//redirection vers la page
$errorlost = true;
//header('location:lostpassword');
}
elseif (!empty($_POST))
{
$user_login = $_POST['user_login'];
echo 'user_login =' .$user_login; // renvoi bien le login
$user = username_exists($user_login);
echo 'user =' .$user; // renvoi bien l'ID du user si login exist
if (is_wp_error($user))
{
$errorlost2 = true;
}
else
{
//redirection vers la page de modification de mot de passe
// http://club-d-affaires.de/wp-login.php?checkemail=confirm
}
}
?>
<div id="check-lostpassord" >
<div class="titre">
<h1> <img src="<?php echo $cheminsite; ?>/images/lion.png » alt= »lion »> <?php echo $lang['TITRE-CONNEXION']; ?> </h1>
<div class="titre-underline"> </div>
</div>
<div class="connexion-lostpassword">
<div id="box-lostpassword">
<p class="message"><?php echo $lang['lostpassword_message']; ?></p>
</br>
<div class="error">
<p id="lostpasswordform-erreur">
<?php
if ($errorlost):
echo $lang['lostpassword_error'];
endif
?>
</p>
<p id="lostpasswordform-erreur2">
<?php
if ($errorlost2):
echo 'TEST';
echo $lang['lostpassword_error2'];
endif
?>
</p>
</div>
<!-- http://club-d-affaires.de/wp-login.php?action=lostpassword -->
<form name="lostpasswordform" class="lostpasswordform" action="" method="post" id="lostpasswordform" >
<br class="clear"></br>
<p id="text-form">
<label for="user_login" ><?php echo $lang['lostpassword_login']; ?>*:<br />
<br class="clear"></br>
<input type="text" name="user_login" id="user_login" class="input" value="" size="20" /></label>
</p>
<br class="clear"></br>
<br class="clear"></br>
<input type="hidden" name="redirect_to" value="" />
<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php echo $lang['lostpassword_envoyer']; ?> » /></p>
</form>
</div> <!-- fin box-connexion -->
</div> <!-- fin connexion -->
</div> <!-- fin connexion -->Si vous avez des conseils à me donner, si vous avez eu à customiser ce passage de génération de mot de passe, je vous remercie de votre aide.
Timama
27 mars 2015 à 10 h 01 min #999527bonjour !
okay, j’aurai pas du bosser tard hier soir, j’ai fait des bêtises dans mes codes.
Alors, le PB 1 et 2 sont réglés.voici les codes
<div id="check-lostpassord">
<div class="titre">
<h1> <img src="/images/lion.png » alt= »lion »> </h1>
<div class="titre-underline"> </div>
</div>
<div class="connexion-lostpassword">
<div id="box-lostpassword">
<p class="message"></p>
</br>
<div class="error">
<p id="lostpasswordform-erreur">
</p>
<p id="lostpasswordform-erreur2">
</p>
</div>
<!-- http://club-d-affaires.de/wp-login.php?action=lostpassword -->
<form name="lostpasswordform" class="lostpasswordform" action="" method="post" id="lostpasswordform">
<br class="clear"></br>
<p id="text-form">
<label for="user_login">*:<br />
<br class="clear"></br>
</label>
</p>
<br class="clear"></br>
<br class="clear"></br>
<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value=" » /></p>
</form>
</div> <!-- fin box-connexion -->
</div> <!-- fin connexion -->
</div> <!-- fin connexion -->Le truc que je n’arrive pas à faire, c’est quand je valide le formulaire, il n’y a pas de redirection vers la page que je veux (je veux directement aller vers http://club-d-affaires.de/wp-login.php?action=rp, que j’intercepterais aussi).
A savoir que $user affiche bien l’id si la personne tape un bon login. Et donc là, après validation, il n’y a pas de redirection…..
j’ai essayé différents chemin bien sûr…. sans succès… si vous avez un conseil pour cette redirection, merci 😉
Timama
27 mars 2015 à 10 h 39 min #999528bon, je ne suis pas sûre que cela soit bien de zapper l’envoi d’Email avec le lien, qui amène à la page de modification du mot de passe : un avis sur ça ? niveau sécurité ??
Donc il faut que quand mon login est bon, que j’envoi un Email avec un lien amenant à la page de modification du mot de passe (que j’intercepterais alors).
Mais comment trouvé ce lien à envoyer ? avez vous une idée?
merci pour votre aide
27 mars 2015 à 17 h 03 min #999529alors, j’avance j’avance mais je recule en même temps 😉
Il me faut donc :
1- message d’erreur si login faux ou vide
2- envoie de l’Email de confirmation pour modification mot de passeAlors, voici le code qui fonctionne, mais qui fait soit le point 1 ou soit le point 2, mais pas les 2 en même temps
<div id="check-lostpassord">
<div class="titre">
<h1> <img src="/images/lion.png » alt= »lion »> </h1>
<div class="titre-underline"> </div>
</div>
<div class="connexion-lostpassword">
<div id="box-lostpassword">
<p class="message"></p>
</br>
<div class="error">
<p id="lostpasswordform-erreur2">
</p>
</div>
<!-- http://club-d-affaires.de/wp-login.php?action=lostpassword -->
<form name="lostpasswordform" class="lostpasswordform" action=" » method= »post » id= »lostpasswordform » >
<br class="clear"></br>
<p id="text-form">
<label for="user_login">*:<br />
<br class="clear"></br>
</label>
</p>
<br class="clear"></br>
<br class="clear"></br>
<p class="submit">
<input type="submit" name="user-submit" id="wp-submit" class="user-submit" value=" » tabindex= »1002″/>
</br></br> <p> </p>
<a href="connexion/?langue= » >
<h2> </h2> </a>
<input type="hidden" name="redirect_to" value="?reset=true » />
</p>
</form>
</div> <!-- fin box-connexion -->
</div> <!-- fin connexion -->
</div> <!-- fin connexion -->et tout se passe à ce niveau là, en début de
27 mars 2015 à 18 h 50 min #999530est ce que vous avez une idée pourquoi si je mets
<form name="lostpasswordform" class="lostpasswordform" action=" » method= »post » id= »lostpasswordform » >si le login est bon, ok ça marche mais si le login est vide ou faux, cela amène à la page
http://club-d-affaires.de/de/wp-login.php?action=lostpasswordalors que j’ai fais un filtre
add_filter(‘lostpassword_url’, ‘wp_hijack_lostpassword’);
function wp_hijack_lostpassword() {
return home_url(‘/lostpassword/’);
}pourquoi le filtre ne fonctionne pas dans ce cas là ?
27 mars 2015 à 19 h 04 min #999531si je mets
action= » »
cela m’enmène à http://club-d-affaires.de/wp-login.p … stpassword (sans le /de/ ) mais toujoru spas de redirection qio se fait alors que j’ai mis un filtre…
avez vous une idée pourquoi ?
28 mars 2015 à 16 h 15 min #999532personne pour m’aider ?
Même un tout petit peu ?
je cherche encore :search:
-
AuteurMessages
- Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.