Discussion:
session header urlrewritin?
(trop ancien pour répondre)
pascal scalpa
2009-11-04 21:10:31 UTC
Permalink
Bonjour à tous
je suis débutant en php et essai de faire fonctionner (désespérément)
ceci :
Je souhaiterai que quand un internaute arrive sur une pageA
directement, il soit redirigé vers une pageB.
La pageB contient du code permettant à l'internaute de s'identifier.
Ces données seraient transmises à la pageA, une fois quelques choix
opérés sur la pageB.
J'ai essayé ceci dans la pageA :
<?php
// Démarrage de la session
session_start();
//si le flag est à false, c'est que le visiteur n'est pas passé par la
pageB:
if ($_SESSION['monflag'] == True){
//$_SESSION['monflag'] = False;
}else{
header("Location: pageB.php");
exit;
}
$titre_page="Identifier les verbes conjugués dans une phrase";
$js_deplus="./id_mot/fr_conj_id_vrb1.js";
$css_deplus="./id_mot/clicmot.css";
$body_page="";
require("./header.php");
?>


puis dans la pageB :
<?php
// Initialisation d'une éventuelle session.
session_start();
// Détruit toutes les variables de session
$_SESSION = array();
// Si vous voulez détruire complètement la session, effacez également
le cookie de session.
// Note : cela détruira la session et pas seulement les données de
session
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-42000, '/');
}
// Finalement, on détruit la session.
session_destroy();
// Démarrage de la nouvelle session
session_start();

//flag utilisé pour vérifier si le visiteur est passé par cette page
$_SESSION['monflag'] = True;
// Déclaration des variables de la page
$titre_page="Identifier les verbes conjugués dans une phrase";
$js_deplus="verif_form.js";
$css_deplus="";
$_SESSION['matiere'] = Conjugaison;
require("./header.php");
?>

Merci de m'éclairer.
pascal
Olivier Miakinen
2009-11-08 23:26:50 UTC
Permalink
Bonjour,
Post by pascal scalpa
je suis débutant en php et essai de faire fonctionner (désespérément)
Je souhaiterai que quand un internaute arrive sur une pageA
directement, il soit redirigé vers une pageB.
Ah ? Et pourquoi ça ?
Post by pascal scalpa
La pageB contient du code permettant à l'internaute de s'identifier.
Ces données seraient transmises à la pageA, une fois quelques choix
opérés sur la pageB.
Dans ce cas, pourquoi ne pas *inclure* le code de la pageB dans la pageA
au lieu de faire une redirection ? Fonctionnellement c'est identique, et
c'est beaucoup plus simple à gérer.
Post by pascal scalpa
<?php
// Démarrage de la session
session_start();
//si le flag est à false, c'est que le visiteur n'est pas passé par la
if ($_SESSION['monflag'] == True){
//$_SESSION['monflag'] = False;
Je ne connais pas grand-chose aux sessions, et je ne peux donc pas te
dire si un tel système de flag peut marcher ou pas. J'aurais tendance à
penser que non car à mon humble avis il peut y avoir plein de cas tordus
selon le nombre de fenêtres ouvertes simultanément par le visiteur sur
ton site.

Or donc, plutôt que de tester une variable monflag sans signification,
tu ferais mieux de tester si les données d'authentification elles-mêmes
sont remplies, c'est-à-dire exactement les données pour lesquelles tu as
eu l'idée de faire une pageB pour les remplir !
Post by pascal scalpa
}else{
header("Location: pageB.php");
Attention ! Quoique les navigateurs les plus courants acceptent une url
partielle ici, ce n'est pas standard et tu devrais donc mettre une url
complète :
header("Location: http://www.example.com/chemin/complet/pageB.php");
Post by pascal scalpa
[...]
<?php
// Initialisation d'une éventuelle session.
session_start();
// Détruit toutes les variables de session
$_SESSION = array();
// Si vous voulez détruire complètement la session, effacez également
le cookie de session.
// Note : cela détruira la session et pas seulement les données de
session
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-42000, '/');
}
// Finalement, on détruit la session.
session_destroy();
// Démarrage de la nouvelle session
session_start();> ?>
Merci de m'éclairer.
pascal
//flag utilisé pour vérifier si le visiteur est passé par cette page
$_SESSION['monflag'] = True;
Aaaargh ! C'est si compliqué que ça, les sessions, qu'il faille une
dizaine de lignes au début du script, parmi lesquelles deux appels à
session_start() ? Encore une fois je n'y connais rien mais j'ai le
sentiment que tu te fais des nœuds au cerveau avec une solution trop
complexe -- et qui donc a peu de chances de marcher !
Post by pascal scalpa
// Déclaration des variables de la page
$titre_page="Identifier les verbes conjugués dans une phrase";
$js_deplus="verif_form.js";
$css_deplus="";
$_SESSION['matiere'] = Conjugaison;
require("./header.php");
Je pense sincèrement que tu n'as pas besoin d'une pageB.

En gros, je verrais plutôt dans pageA :

if ($_REQUEST[] contient ce qu'il faut) {
traitement prévu initialement pour pageA
} else {
afficher le formulaire pour remplir les données
d'authentification (ce que tu avais prévu pour
pageB initialement), le paramètre « action »
contenant un lien vers pageA
}

Cordialement,
--
Olivier Miakinen
Loading...