Encore un header...

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

28 nov. 2005, 21:53

Il est clair que ma page catalogue.php contient du HTML, mais pas moyen de s'en passer...
je récapitule alors:
page panier
ou se trouve: header("Location: catalogue.php?ec=COMMANDER");
catalogue.php inclus => centre.php
centre.php inclus => commande.php (avec header ("Location: login.php"]; )
il faut donc placer le code de "centre.php" avant le HTML de la page "catalogue.php". S'il n'y a pas moyen de faire autrement il n'y a plus que le javascript (pour le cas ou le js est désactivé un lien a cliquer)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 148 Messages

28 nov. 2005, 23:20

Bon, alors voilà les nouvelles :

J'ai essayé la solution de Truc/jeff, mais le problème persiste.

Effectivement, j'ai du code HTML qui est envoyé par la page catalogue.php, comment contourner ce problème, sachant que je ne peux pas ne pas mettre ce code ?
Et hop !

Eléphant du PHP | 148 Messages

28 nov. 2005, 23:29

Oups, pardon, j'avais pas vu ton post !!

Ou alors il reste la solution un peu moins propre, on triche, et je redirige directement depuis la page panier.php vers la page commande.php, mais alors il faut que je la construise selon l'architecture de ma page index.php, avec des include et tout et tout...

Qu'en penses-tu ?
Et hop !

Mammouth du PHP | 19672 Messages

28 nov. 2005, 23:32

Personnellement, je ferais une redirection JavaScript: les navigateurs ou JavaScript est désactivé sont en général les navigateurs en mode texte (robots d'indexation entre autre) et qelques ordinateurs en entreprise : si tu crée un magasin à l'intention de l'internaute lambda, tu as très peu de chances de voir le JavaScript désactivé. En outre, tu peux toujours ajouter un lien html vers la page suivante avec un message pour les paranos du virus en JavaScript ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 148 Messages

28 nov. 2005, 23:37

Bonsoir Cyrano,

et où devrais-je la placer cette redirection JavaScript ? sur la page centre.php, ce serait le + logique, mais comment l'inclure dans mon code :?:
Et hop !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

28 nov. 2005, 23:43

Personnellement, je ferais une redirection JavaScript:(...) virus en JavaScript ;)
pareil c'est ce que je disait d'ailleurs :wink:
comment l'inclure dans mon code
remplace:
header ("Location: login.php"]; 
par:
<script type="text/javascript" language="javascript">
 window.location.replace("login.php");
</script>

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 148 Messages

28 nov. 2005, 23:46

Certes, c'est la petite explication en + sur le risque de tomber sur un navigateur dont le JavaScript est désactivé qui m'a convaincu, et aussi, un peu, parce-que j'en ai marre de ces headers !!!! :D

Bon, donc je remplace, et je vous dis comment ça se passe...

Merci en tout cas pour votre aide...

:pouce:
Et hop !

Mammouth du PHP | 19672 Messages

28 nov. 2005, 23:47

J'avais juste survolé le sujet, en le relisant mieux, je constate que le javaScript ne t'aidera pas beaucoup : il y a un problème d'architecture dans ton système. Mais tu pourrais le contourner en déplaçant la vérification de la variable de session dans ton index : tu dis que tout est en pseudo-frames, je suppose donc que ta page index contient un switch vérifiant la page demandée: quand tu testes si la page est la page "commander", c'est là que tu peux tester la variable de session pour envoyer la bonne page pour la page d'identification. Sommairement:
<?php
switch($page)
//...
    case "commander":
        if(!empty($_SESSION['login']) && $_SESSION['login'] != "")
        {
            include("./pages/commander.php");
        }
        else
        {
            include("./pages/identifier.php");
        }
    break;
//... etc...
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 148 Messages

28 nov. 2005, 23:53

Euh oui,

mais en l'occurence, la page index.php est composée d'autres pages en php, dont la principale est centre.php, et c'est sur cette page que s'effectue le switch.

Sinon, j'ai fait ça sur ma page centre.php
?php
require_once('../Connections/cnn.php');

if (!isset ($_GET['rubrikID'])) 
	{
	if (isset($_GET['ec']) && ($_GET['ec'] == "COMMANDER"))
		{
		$ec = $_GET['ec'];
           if (!isset($_SESSION['statut'])||($_SESSION['statut'] != "client"))
            {
                ?>
				<script type="text/javascript" language="javascript">
					window.location.replace("login.php");
				</script>
				<?php
                exit;
            }
            else
                include ("commande.php");            
        }
	}
Et ça marche...

:)

Mais c'est vrai que niveau architecture, il y a encore 2 ou 3 trucs qui ne me semblent pas très propres, mais pour l'instant, on peut les contourner, et d'ailleurs au final, ça permet d'avoir des scripts moins longs, sur certaines pages...
Et hop !

Mammouth du PHP | 19672 Messages

28 nov. 2005, 23:55

Alors c'est parfait, il te reste plus qu'à mettre un [Résolu] ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 148 Messages

29 nov. 2005, 00:00

Sitôt dit, sitôt fait !!

Encore merci...
Et hop !