Probleme de variable de session

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 : Probleme de variable de session

Re: Probleme de variable de session

par 1L6GSG » 09 mars 2010, 11:17

Bonjour,

Eureka !!!

j'ai creuser sur le sessio_destroy car je n'arrivait pas a comprendre comment la variable page1 vers page2 ne passait pas et que l'nverse par exemple marchait.

Tout simplement en bas de la page1 il y avait un page_close()

Bizarre quand meme je ne pensait pas que cette fonction vidait les variables de session.

En tout cas merci pour m'avoir mis sur le chemin.

Re: Probleme de variable de session

par Aureusms » 09 mars 2010, 08:25

Concernant la destruction de session, tu as le choix entre :
$_session = "";
unset($_session);
session_destroy();

Re: Probleme de variable de session

par remy442 » 09 mars 2010, 00:30

Cela fonctionne j'avais déja essayer.

Le problème c'est que je viens de reprendre un projet en court d'un site qui m'était jusqu'a ce jour inconnu.
C'est pour ca c'est pas evident.

Ya pas mal de chose sur la page.

Quel est le code qui efface les sessions ? (session destroy ? ) Je vais regarder si y'a pas ca dans un include ou une connerie comme ca...

Je commence a desesperer.

Re: Probleme de variable de session

par Aureusms » 09 mars 2010, 00:03

Hmmm :-k
Si tes sessions sont activées, si tes cookies sont activés il reste deux choix :

1) ton serveur refuse cela (mais je n'ai jamais rien vu de pareil)
2) plus haut dans ton code tu efface les sessions ou tu réécris dessus.

Dernier truc, n'utilises plus $_request mais plutôt $_SESSION, $_GET, $_FILES ou $_POST.
Ne mais pas ta requête dans l'url car tu es limité en taille (je crois me rappeler de 250 caractères max). Si tu veux vraiment utiliser ce mode, serialize() ta requête. Mais je te le déconseille... Les requêtes côté serveur doivent rester côté serveur...

Essaye cela :
créer 2 pages appelées test1.php et test2.php

test1.php
<?php
session_start();
$_SESSION["test"] = "roule les sessions";
header ("Location: test2.php");
?>
test2.php
<?php
session_start();
echo $_SESSION["test"];
?>
vérifie que je ne me soit pas trompé dans le header.

Re: Probleme de variable de session

par remy442 » 08 mars 2010, 23:25

Oui tout est bien activé :D

Re: Probleme de variable de session

par Aureusms » 08 mars 2010, 22:52

Et tes coockies ?

Re: Probleme de variable de session

par remy442 » 08 mars 2010, 22:51

malheureusement oui session start est bien présent sur la deuxieme page

Re: Probleme de variable de session

par Aureusms » 08 mars 2010, 22:46

J'ai lu en travers mais peux tu me dire si :
  • session_start() est présent dans ton code de ta page 2
    tes coockies sont activés

Re: Probleme de variable de session

par remy442 » 08 mars 2010, 21:44

Bonsoir,

Alors pour le echo $query
elle s'ecrit bien oui.

Je ne comprend vraiment pas pourquoi elle pas pas a l'autre pas en tant que variable de session.

J'ai essayer de contourner en faisant pas comme ceci :
$_SESSION['exportquery']=$query
Dans mon lien export j'ai mis
../export.php?requete=.'$_SESSION['exportquery']'.
Sauf que vu que dans ma requete il y a des ' ' pour ajouter des variable de date
SELECT a.commande_id, a.annule, a.commande_date, a.agence_id, a.commande_interne_client, a.commande_type, u.agence_id, u.agence_nom, c.groupe_id, u.groupe_id, c.groupe_nom 
FROM ".DB_TABLE_COMMANDE." a, agence u , groupe c WHERE u.groupe_id=c.groupe_id AND u.agence_id=a.agence_id AND a.commande_date>'".datefr2en($_REQUEST['datedeb'])."' AND a.commande_date<'".datefr2en($_REQUEST['datefin'])."'"
Lors de la recuperation via GET sur le seconde page sa me coupe la recuperation a : a.commandedate> vu qu'apres il y a des ' '

Comment faire pour eviter ce probleme ??

Merci d'avance

Re: Probleme de variable de session

par niuxe » 08 mars 2010, 19:55

Hello, (tu as vu je l'ai pas fait) :-*
[...]dans ton message on voit pas grand chose la :wink:
C'est juste plus coloré maintenant. Oh la belle bleue, oh la belle rouge, etc. :tir2:

Évite le $_REQUEST. $_REQUEST permet de récupérer n'importe quelle super-globale (cookie, get, post, session). C'est une faille potentielle si je ne m'abuse.

Méthodologie :
1. As tu essayé ta requête dans la console mysql par exemple ? As tu un résultat convaincant ?
2. As tu essayé d'afficher ta requête en dur ? (echo $query) ? Est ce que cette dernière aura à peu près le même résultat dans la console Mysql ?
3. As tu regardé le tableau $_REQUEST ? (print_r( $_REQUEST)) ? As tu quelque chose de convaincant ?

Méthodologie générale :
1. donner des noms bien explicites à tes variables et fonctions (le mieux en Français pour pleins de raisons) ;)
2. garder une ligne de conduite d'ecriture ($var_kelke_choz et plus loin $varAutreChoz)
3. bien indenter son code (perso, je préfère l'écriture hongroise)
4. bien commenter les blocs (pas de redondance)
5. pas de commentaire faux/obsolète (!)

Au passage, il y a ce livre qui me semble bien fait : Coder proprement. Je l'ai feuilleter et il me semble bien sympa pour apréhender un bon script.

Bonne soirée à toi

Re: Probleme de variable de session

par remy442 » 08 mars 2010, 18:53

if($_REQUEST['groupe'] && $_REQUEST['groupe']!='tous')
$filtre .= " AND c.groupe_id=".$_REQUEST['groupe'];
if($_REQUEST['agence_id'] && $_REQUEST['agence_id']!='toutes' && $_REQUEST['oldgroup']==$_REQUEST['groupe'] || $_REQUEST['agence_id'] && $_REQUEST['agence_id']!='toutes' && isset($id_gr))
$filtre .= " AND a.agence_id=".$_REQUEST['agence_id'];
if($_REQUEST['datedeb'])
$filtre .= " AND a.commande_date>'".datefr2en($_REQUEST['datedeb'])."' AND a.commande_date<'".datefr2en($_REQUEST['datefin'])."'"; 
if(isset($id_gr)) 
$filtre .= " AND u.groupe_id=".$id_gr;
if($_SESSION['recherche']!='') 
$filtre = " AND a.commande_interne_client LIKE \"".$_SESSION['recherche']."\"";
$query = sprintf(
"SELECT a.commande_id, a.annule, a.commande_date, a.agence_id, a.commande_interne_client, a.commande_type, u.agence_id, u.agence_nom, c.groupe_id, u.groupe_id, c.groupe_nom 
FROM ".DB_TABLE_COMMANDE." a, agence u , groupe c WHERE u.groupe_id=c.groupe_id AND u.agence_id=a.agence_id ".$filtre ." %s %s", "ORDER BY u.groupe_id ASC, a.agence_id ASC, ".$tri." ".$ord, $pgelimit);

Re: Probleme de variable de session

par stealth35 » 08 mars 2010, 18:34

met les balises [ php][/php], dans ton message on voit pas grand chose la :wink:

Re: Probleme de variable de session

par remy442 » 08 mars 2010, 18:22

Je suis en train d'essayer de passer ma requete en GET juste pour voir

et la je suis confronté a un probleme de ' " qui coupe ma requete.

Exemple :

if($_REQUEST['groupe'] && $_REQUEST['groupe']!='tous')
$filtre .= " AND c.groupe_id=".$_REQUEST['groupe'];
if($_REQUEST['agence_id'] && $_REQUEST['agence_id']!='toutes' && $_REQUEST['oldgroup']==$_REQUEST['groupe'] || $_REQUEST['agence_id'] && $_REQUEST['agence_id']!='toutes' && isset($id_gr))
$filtre .= " AND a.agence_id=".$_REQUEST['agence_id'];
if($_REQUEST['datedeb'])
$filtre .= " AND a.commande_date>'".datefr2en($_REQUEST['datedeb'])."' AND a.commande_date<'".datefr2en($_REQUEST['datefin'])."'";
if(isset($id_gr))
$filtre .= " AND u.groupe_id=".$id_gr;
if($_SESSION['recherche']!='')
$filtre = " AND a.commande_interne_client LIKE \"".$_SESSION['recherche']."\"";


$query = sprintf(
"SELECT a.commande_id, a.annule, a.commande_date, a.agence_id, a.commande_interne_client, a.commande_type, u.agence_id, u.agence_nom, c.groupe_id, u.groupe_id, c.groupe_nom
FROM ".DB_TABLE_COMMANDE." a, agence u , groupe c WHERE u.groupe_id=c.groupe_id AND u.agence_id=a.agence_id ".$filtre ." %s %s", "ORDER BY u.groupe_id ASC, a.agence_id ASC, ".$tri." ".$ord, $pgelimit);

si je fais :

echo $query;

j'ai ceci : SELECT a.commande_id, a.annule, a.commande_date, a.agence_id, a.commande_interne_client, a.commande_type, u.agence_id, u.agence_nom, c.groupe_id, .groupe_id, c.groupe_nom FROM commande a, agence u , groupe c WHERE u.groupe_id=c.groupe_id AND u.agence_id=a.agence_id AND a.commande_date>'2010-03-01' AND a.commande_date<'2010-03-31' ORDER BY u.groupe_id ASC, a.agence_id ASC, commande_id

quand je passe en GET, de l'autre coté je recupere seulement ceci :

SELECT a.commande_id, a.annule, a.commande_date, a.agence_id, a.commande_interne_client, a.commande_type, u.agence_id, u.agence_nom, c.groupe_id, u.groupe_id, c.groupe_nom FROM commande a, agence u , groupe c WHERE u.groupe_id=c.groupe_id AND u.agence_id=a.agence_id AND a.commande_date>

j'ai l'i^mpression qu'il n'aime pas les '$filtre' et que ca me coupe la requete. Comment eviter cela.

Merci

Re: Probleme de variable de session

par Yosh » 08 mars 2010, 17:31

tu montrer tout ton code?

Re: Probleme de variable de session

par remy442 » 08 mars 2010, 17:28

Une petite précision :

Si sur la page2.php je fais :

$_SESSION['test']="testok";

et sur la page1.php je fais:

echo $_SESSION['test'];

Lorsque je reviens de la page2.php vers la page1.php sur la page 1 mon "testok" s'affiche bien mais dans le sens page1 vers page2 que je souhaite a la base ca ne fonctionne pas