Pb identification php

Résolu/Fermé
Jason_007 Messages postés 8 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 16 mai 2008 - 15 mai 2008 à 15:59
Jason_007 Messages postés 8 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 16 mai 2008 - 16 mai 2008 à 12:08
Bonjour,

Voici le code

"<?php
session_start();

if (isset($_SESSION["membre_ndx"]) and $_GET["code"])
{

?>
<link rel="stylesheet" type="text/css" href="../css/styles.css">
<p align="center" class="xbig"><u>Modification d'un statut </u></p>
<p align="center" class="xbig"> </p>
<form name="form1" method="post" action="modif_statut_job.php">
<div align="center">
<input type="text" name="statut" value="<?php echo $_GET["statut"] ?>">
<input type="submit" name="Submit" value="Modifier">
</div>
</form>
<?php
}


else //Sinon


{
echo $_SESSION["membre_ndx"];
echo $_GET["statut"];
?>

<link rel="stylesheet" type="text/css" href="../css/styles.css">
<p>Ces données sont accessibles seulement en se logguant. </p>
<?php
}
?>"

J'ai mis en bas de code (après le else) 2 echo permettant de vérifier si je reçois bien les variables $_SESSION["membre_ndx"] et $_GET["statut"].

Voici le message d'erreur lisible dans le navigateur :
"Notice: Undefined index: membre_ndx in c:\program files\easyphp1-8\www\presse\application\modif_statut.php on line 25
6

Ces données sont accessibles seulement en se logguant."

La première ligne veut dire qu'il ne connait pas la variable membre_ndx et le "6" est bien le code statut envoyé par une autre page, ça c'est bon.

Pourquoi ne reconnait-il pas membre_ndx, puisque le code :"
<?php
session_start();

if (isset($_SESSION["membre_ndx"])" est utilisé à chaque début de page dans la moitié de mon application sans que cela ne pose de problème.
Merci de votre aide, j'en perd mon latin.
Jaco
A voir également:

9 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
15 mai 2008 à 16:04
Bonjour,

L'erreur est dans le Else, non ?
Or, justement, dans le Else, tu n'as plus forcément isset($_SESSION...) !

Xavier
0
Jason_007 Messages postés 8 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 16 mai 2008
15 mai 2008 à 16:12
Non, ça vient pas de là
Je l'ai tout de même enlevé et j'ai


6
Ces données sont accessibles seulement en se logguant.

Seule la phrase Notice: Undefined index: membre_ndx in ..... a disparu mais ça ne marche toujours pas puiqu'il devrait m'afficher le formulaire au lieu de la phrase du bas qui est là uniquement pour empêché l'accés aux gens non identifiés.

HELP !
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
15 mai 2008 à 16:39
Euh...
Je ne vois pas comment il pourrait t'afficher le formulaire.

Ton "if" n'est pas vérifié, puisque
isset($_SESSION["membre_ndx"]) vaut FALSE

Donc il ne va pas à l'intérieur du "if", et ne va pas afficher le formulaire !
0
Jason_007 Messages postés 8 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 16 mai 2008
15 mai 2008 à 16:42
J'ai bien compris que mon if n'était pas vérifier, je veux savoir pourquoi car il devrait l'être.
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
15 mai 2008 à 16:51
Ah excuse-moi, j'avais mal compris ^^'

Bon, j'imagine que ta variable est correctement mise en session, enfin dans le doute montre nous quand même le code où tu le fais.

Autre possibilité : vérifie dans ton php.ini la valeur du paramètre
session.auto_start

S'il est à 1, alors à chaque nouvelle page la session sera automatiquement ouverte. La conséquence, c'est que quand, toi, tu fais session_start(), ça va écraser l'ancienne session pour en commencer une nouvelle ! Et du coup, tu perds tout.

Donc, deux solutions :
- Soit tu mets session.auto_start à 0 ;
- Soit tu enlèves le session_start() du début de ta page.
Personnellement, je préfère la première solution qui permet de maîtriser les fermetures et ouvertures de session.
0
Jason_007 Messages postés 8 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 16 mai 2008
15 mai 2008 à 17:25
Je pense savoir d'ou ça vient.
Pour la seule fois (d'ou problème uniquement sur cette page alors que j'utilise ce code plusieurs fois), je ne fais pas parvenir le lien via un header:location mais via une adresse dans un a href.
Je ne vois que ça, voici un exemple de lien pointant vers la page posant problème :

<a href=" http://localhost/presse/application/modif_statut.php?statut= <?php echo $ligne['id_statut'] ?>" ><?php echo $ligne['statut'] ?></a></td>

Etant en train de tenter de réécrire le code, je refais de mémoire, mais ça devait venir de là.
J'essaye donc de créer des liens a href sur la page précédente à partir de header : location mais je galère car n'est jamais fait


Est-ce celà ?
Comment faire ?
Help toujours.... mais on avance
0
Jason_007 Messages postés 8 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 16 mai 2008
16 mai 2008 à 09:24
Concernant le message précédent, j'ai vérifié session.auto_start qui est bien à 0.
Celà ne m'étonne pas, puisque les autres pages marchent et que c le seul endroit ou je perds mes infos de session.

De plus, ma dernière idée est mauvaise puisque lors d'un menu, je fais des liens en a href et non en header(location:...) et ça marche quand même.

Le mystère s'épaissiiiiiiii

Merci de votre aide !
Jaco
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
16 mai 2008 à 11:28
Mmmh, est-ce que tous tes liens sont définis en relatifs ? Ou en absolu ? Est-ce bien le même nom de domaine qui est spécifié, si c'est en absolu ? En effet, les sessions sont gérées à l'aide de cookies, qui sont spécifiques à un domaine : une session définie pour localhost et une session définie pour 127.0.0.1 seront différentes !
0
Jason_007 Messages postés 8 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 16 mai 2008
16 mai 2008 à 12:08
Le problème est résolu.
Je ne sais pas trop pourquoi finalement car j'ai fais plein d'essais et subitement cela a fonctionné.
Cela restera donc un mystère.
Merci quand même.
Jaco
0