Page 1 sur 1
Redirection si mail non valide
Posté : 29 déc. 2015, 23:32
par Jownhy
Bonjour à tous,
Je viens de récupérer un site internet mais je ne suis encore que débutant en PHP/Mysql. J'essaye de mettre une redirection vers une page lorsque l'utilisateur n'a pas validé son adresse mail (via le code envoyé). Cependant je bloque, celà ne fonctionne pas (l'utilisateur qui n'a pas validé son mail n'est pas redirigé).
Est ce que quelqu’un aurait une idée de correction ?
Merci d'avance
if(strstr($_SERVER['PHP_SELF'],'mail_validation.php') == false) {
if(identity_IsLogged() && identity_getUserId() != null && !$g_identity->isMailValide()) {
$query = "SELECT mail_valide FROM user WHERE id_user= '";
$result = db_query_read($query);
if (!$result=0) {
header( "Location: mail_validation.php" ) ;
}else {
header( "Location: index.php" ) ;
}
}
}
Re: Redirection si mail non valide
Posté : 29 déc. 2015, 23:38
par or 1
rajouter des echo avant et après chaque if pour savoir quelles conditions sont remplies et non remplies.
Re: Redirection si mail non valide
Posté : 29 déc. 2015, 23:59
par Jownhy
je pense qu'il y a un soucis avec le ismailvalide
echo 'mail_valide : '.$g_identity->isMailValide().'<br/>';
echo 'id : '.identity_getUserId().'<br/>';
echo 'logged : '.identity_IsLogged().'<br/>';
if(strstr($_SERVER['PHP_SELF'],'mail_validation.php') == false) {
echo "toto";
if(identity_IsLogged() && identity_getUserId() != null && !$g_identity->isMailValide()) {
echo "titi";
}
}
ça me donne :
mail_valide : 1 (alors que non valide)
id : 2570153
logged : 1
toto
public function isMailValide()
{
if($this->mailValide) {
return(true);
}
return(false);
Re: Redirection si mail non valide
Posté : 30 déc. 2015, 00:18
par or 1
quel est le code qui affecte une valeur à $this->mailValide ?
Re: Redirection si mail non valide
Posté : 30 déc. 2015, 00:22
par Jownhy
/*
// Vérifie le code d'activation de l'email pour valider l'adresse de l'utilisateur
*/
function mail_validation($code_validation)
{
// Récupération de l'email de l'utilisateur pour vérifier le code
$query = "SELECT email, mail_valide FROM users WHERE id_user='" . addslashes($this->idUser) . "' LIMIT 1";
$result = db_query_read($query);
if (!($user = mysql_fetch_array($result)))
redirige("index.php");
//Appel du PIU de MP
$parameters = $this->initParameters();
$parameters['mail'] = $user['email'];
$parameters['code_validation'] = $code_validation;
$result = MPWebServices::Call($this->getConfig("identity_WebServiceAddress"), 'mail_validation', $parameters);
if ($result['statut'] != SUCCESS)
return $result['message'];
else
{
$query = "UPDATE users SET mail_valide='1' WHERE id_user='".$this->idUser."' AND mail_valide='0' LIMIT 1";
db_query_write($query);
$this->mailValide = 1;
mpsessions_add('mail_valide', $this->mailValide);
// patch pour répercuter la connexion auto du https au http
if(isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == 'on') {
$lien = "http://".$_SERVER['HTTP_HOST']."/index.php?u=".$this->getUserId()."&s=".md5($this->getUserKey().$this->getMail());
$this->disconnect(false);
header("Location: ".$lien);
exit();
}
// fin patch
//redirige("game.php?id_user=" . $this->id_user . "&clef=" . $this->key);
}
}
Re: Redirection si mail non valide
Posté : 30 déc. 2015, 10:23
par Jownhy
up
Re: Redirection si mail non valide
Posté : 30 déc. 2015, 10:41
par @rthur
up
Et donc ?
Tu as testé les conditions qui sont dans la fonction que tu as donné ?
A quel moment ça ne fonctionne pas comme voulu ?
Re: Redirection si mail non valide
Posté : 30 déc. 2015, 10:47
par Jownhy
j'ai un soucis avec la fonction ismailvalide qui semble toujours indiquer 1 (quand je fais echo, ça me retourne mail_valide : 1)
public function __construct() {
//Récupération des informations contenues dans la session pour logger l'user
$this->langue = mpsessions_get('langue');
$this->idUser = mpsessions_get('id_user');
$this->key = mpsessions_get('clef');
$this->mailValide = mpsessions_get('mail_valide');
$this->pseudo = mpsessions_get('pseudo');
$this->newUser = mpsessions_get('new_user');
$this->isLogged = mpsessions_get('is_logged');
$this->sexe = mpsessions_get('sexe');
$this->mail = mpsessions_get('mail');
Re: Redirection si mail non valide
Posté : 30 déc. 2015, 14:32
par Ascla
Eh bien maintenant, faut débuger cette petite fonction.
Regarde tout d'abord si tu arrives à bien récupérer les données de l'utilisateur, si la comparaison est bonne, etc
Dés qu'un retour te semblera anormal, tu seras à peu près ou regarder.
Re: Redirection si mail non valide
Posté : 04 janv. 2016, 14:59
par Jownhy
Bon ça avance lentement mais surement,
quand je met le if result = 0 , ça me redirige tout le temps vers la page mail_validation (même si le mail est validé), quand je met 1 ça redirige jamais
if(strstr($_SERVER['PHP_SELF'],'mail_validation.php') == false) {
if(identity_IsLogged() && identity_getUserId() != null) {
$query = "SELECT mail_valide FROM users where id_user='".identity_getUserId()."';";
$req = mysql_query($query);
$result = mysql_fetch_row($req);
if($result == 0) {
header('Location: mail_validation.php');
} else {
}
}
}
Re: Redirection si mail non valide
Posté : 04 janv. 2016, 18:28
par Jownhy
Bon ça fonctionne avec ce bout de code :
if(strstr($_SERVER['PHP_SELF'],'mail_validation.php') == false) {
if(identity_IsLogged() && identity_getUserId() != null) {
$query = "SELECT mail_valide FROM users where id_user='".identity_getUserId()."';";
$req = mysql_query($query);
$result = mysql_fetch_row($req);
echo "resultat : ".$result[0]."<br/>";
if($result[0] == 0) {
header('Location: mail_validation.php');
} else {
}
}
}
ça bloque bien tout lorsque le mail n'est pas valide.
cependant lorsque le mail est valide, certaines pages renvoient tout de même vers mail_validation, est-ce que quelqu'un aurait une idée d'où ça peut provenir ?
Re: Redirection si mail non valide
Posté : 04 janv. 2016, 19:23
par jeremylevy
Salut,
"cependant lorsque le mail est valide, certaines pages renvoient tout de même vers mail_validation"
Qu'est-ce-que cela signifie ? Quelles pages ?
++
Re: Redirection si mail non valide
Posté : 04 janv. 2016, 23:09
par Jownhy
quand je navigue sur le site, certaines pages fonctionnent (=je peux y acceder normalement), d'autres ne fonctionnent pas (= renvoi vers mail_validation, alors que le mail est bien validé dans la bdd)