Redirection si mail non valide

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Redirection si mail non valide

Re: Redirection si mail non valide

par Jownhy » 04 janv. 2016, 23:09

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)

Re: Redirection si mail non valide

par jeremylevy » 04 janv. 2016, 19:23

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

par Jownhy » 04 janv. 2016, 18:28

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

par Jownhy » 04 janv. 2016, 14:59

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

par Ascla » 30 déc. 2015, 14:32

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

par Jownhy » 30 déc. 2015, 10:47

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

par @rthur » 30 déc. 2015, 10:41

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

par Jownhy » 30 déc. 2015, 10:23

up

Re: Redirection si mail non valide

par Jownhy » 30 déc. 2015, 00:22

/*
// 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

par or 1 » 30 déc. 2015, 00:18

quel est le code qui affecte une valeur à $this->mailValide ?

Re: Redirection si mail non valide

par Jownhy » 29 déc. 2015, 23:59

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

par or 1 » 29 déc. 2015, 23:38

rajouter des echo avant et après chaque if pour savoir quelles conditions sont remplies et non remplies.

Redirection si mail non valide

par Jownhy » 29 déc. 2015, 23:32

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" ) ;
		}
    }
}