THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 Page de retour automatique

(27-03-2014 12:29:46)


Salut les loulous!

Via un plugin j'ai modifié le fonctionnement des urls pour accepter le slash dans celles-ci.

Le problème qui se pose maintenant c'est que cette fonction :

function url_page_courante() {
	$uri = $_SERVER['REQUEST_URI'];

	// Si on est a la racine, s'assurer qu'on a une url avec fichier
	if (substr($uri, -1) == '/') $uri = $uri . 'index.php';

	// On utilise ensuite basename() pour retirer l'éventuel chemin comme dans http://www.maboutique.com/path/to/maboutique/mapage.html
	return urlfond() . '/' . basename($uri);
}

me fait tout foirer en cas de redirection après une connexion au site (par exemple)

...

je me demande si, en réattribuant la valeur de l'url sans le basename, ça causerait des soucis autre part?

bien sûr, je ne compte pas modifier cette fonction directement mais changer la valeur de urlpageret dans un plugin... mais est-ce qu'il y a beaucoup d'appel à cette fonction sur le site hormis pour l'attribution de urlpageret?

j'aurais, du coup, le même souci autre part?

Last edited by Elyos (27-03-2014 12:32:32)


Aide les autres, ils t'aideront en retour.

Offline


Euh en fait...
Je peux pas modifier la valeur de

$_SESSION["navig"]->urlpageret

via un plugin...

Vu que cette attribution a lieu ici :

ActionsModules::instance()->appel_module("varfond");

// Page retour
// Supprimer le paramètre "déconnexion" de l'url page retour
if(! $nopageret) $_SESSION["navig"]->urlpageret = supprimer_deconnexion(url_page_courante());
else if($_SESSION["navig"]->urlpageret=="") $_SESSION["navig"]->urlpageret = urlfond();

// Sécurisation
if($securise && ! $_SESSION["navig"]->connecte) {
	redirige(urlfond("connexion"));
}

// Vérif transport
if($transport && ! $_SESSION["navig"]->commande->transport) {
	redirige(urlfond("adresse"));
}

// Vérif panier
if($panier && ! $_SESSION["navig"]->panier->nbart) { redirige(urlfond()); }


$parseur = new Parseur();

// fonctions à éxecuter avant les inclusions
ActionsModules::instance()->appel_module("inclusion");

Y'a redirection avant l'appel de "inclusion" et si je fais la modification à l'appel de "varfond" ça rechange juste après...


Aide les autres, ils t'aideront en retour.

Offline


Personne n'a de réponse...? D'aide ?


Aide les autres, ils t'aideront en retour.

Offline


Salut,

Bah en fait tu cherche à faire quoi exactement ça sera peut être plus simple pour aider?

(car si c'est dans un formulaire de connection, tu peux choisir ou tu te redirige si c'est ok ou pas)

Offline


Salut thibs...

Bah j'ai expliqué... c'est pas clair?

Certaines pages nécessitent d'être loggué.
Si on accède à ces pages sans être loggué, on est redirigé vers la page de connexion puis après vers la page que l'on voulait accéder.

Mes urls réécrites comportent des slashs.
De ce fait, la fonction url_page_courante renvoie une url erronée car le basename enlève tous les "dossiers virtuels" de l'url.

Exemple :
http://www.monsitethelia.fr/dossier-vir … -page.html (nécessite d'être loggué)
-> stockage dans $_SESSION["navig"]->urlpageret de l'url via : supprimer_deconnexion(url_page_courante())
-> page de connexion
-> connexion faite
-> renvoie vers $_SESSION["navig"]->urlpageret

supprimer_deconnexion(url_page_courante()) renvoie : http://www.monsitethelia.fr/ma-page.html

>>> "page introuvable"


Aide les autres, ils t'aideront en retour.

Offline


Question con (je préviens je suis dans mon bureau donc pas testé): as tu essayé en jouant avec SET et GET avec la Balise #URL de ta page ?

Offline


J'ai pas testé mais ça ne pourra pas marcher car dans moteur.php
On a

// Page retour
// Supprimer le paramètre "déconnexion" de l'url page retour
if(! $nopageret) $_SESSION["navig"]->urlpageret = supprimer_deconnexion(url_page_courante());
else if($_SESSION["navig"]->urlpageret=="") $_SESSION["navig"]->urlpageret = urlfond();

// Sécurisation
if($securise && ! $_SESSION["navig"]->connecte) {
	redirige(urlfond("connexion"));
}

Ce qui redirige directement après l'attribution de la valeur de $_SESSION["navig"]->urlpageret ...

Temporairement j'ai modifié la fonction url_page_courante comme ceci :

function url_page_courante() {
	$uri = $_SERVER['REQUEST_URI'];

	// Si on est a la racine, s'assurer qu'on a une url avec fichier
	if (substr($uri, -1) == '/') $uri = $uri . 'index.php';

	// On utilise ensuite basename() pour retirer l'éventuel chemin comme dans http://www.maboutique.com/path/to/maboutique/mapage.html
	//return urlfond() . '/' . basename($uri);
	if(substr($uri,0,1)!= '/'){
		$uri = '/'.$uri;
	}
	return urlfond() . $uri;
}

Mais ça m'embête d'avoir modifié un fichier natif...


Aide les autres, ils t'aideront en retour.