cohabiter $_session et $_post dans une meme page

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 : cohabiter $_session et $_post dans une meme page

par anna70 » 17 janv. 2006, 21:14

deja merci de votre collaboration et excusez moi de ne pas vous avoir donné suite de suite :oops: .

alors pour ettayer mon prob je dirai que la solution est plus proche de celle de PRoGRaFLaSH

c'est recuperer ces variables dans la page compte.php selon qu'elle soient envoyé en $_post ou $_SESSION sans que la session prenne le dessus à chaque fois . ( ces variables sont les memes qu'elles soient en post ou en session) .

shematiquement parlant c'est :

Code : Tout sélectionner

identification pageidentification.php ===============>pagecompte.php(recuperation $_POST['mail'] et $_POST['motdepasse']) et affichage . modification pagecompte.php================>pagemodification.php (recuperation $_SESSION['mail'] et $_SESSION['motdepasse']) modification et retour sur page compte pour reaffichage en par recuperation de session

par DocType » 17 janv. 2006, 12:55

j'aijuste tenter d'apporté une solution :lol:
ni plus ni moins
difficile dans ces conditions... :lol:
tjr pas compris le pkoi du comment de la question ^^

par jeff » 17 janv. 2006, 12:52

j'aijuste tenter d'apporté une solution :lol:
ni plus ni moins

par DocType » 17 janv. 2006, 12:48

Sérieux je pige plus rien là :lol:
Jeff, si elle passe par les memes variables, ce n'est apparemment pas anodin ! A mon avis elle veut incrementer une variable de differentes valeurs suivants le type d'envoi...donc me semble pas que ta réponse corresponde bien à sa recherch (qui est pas super clair). Je verrais plutot un if et elseif avec isset pour post et session:
if (isset($_SESSION['var1']))
{
$var1 = trim($_SESSION['var1']); 
}
elseif(isset($_POST['var1']))
{
$var1 = trim($_POST['var1']); 
}
else
{
$var1 = "";
}
Je cible plus sa demande sur cette soluce là...
Maintenant, si le demandeur pouvait apporter des précisions, ce ne serait pas de refus !

par anna70 » 17 janv. 2006, 12:40

salut

pour
$session = isset($_GET['session'])? trim($_GET['session']):"";
session_start($session);
$var1 = isset($_SESSION['var1'])? trim($_SESSION['var1']):"";
$var2 = isset($_SESSION['var2'])? trim($_SESSION['var2']):"";
$var1 = isset($_POST['var1'])? trim($_POST['var1']):"";
$var2 = isset($_POST['var2'])? trim($_POST['var2']):"";
c'est normale car tu ecrase ta variable
tu peut passer par un tableau par example
$session = isset($_GET['session'])? trim($_GET['session']):"";
session_start($session);
$var1['session'] = isset($_SESSION['var1'])? trim($_SESSION['var1']):"";
$var2 ['session']= isset($_SESSION['var2'])? trim($_SESSION['var2']):"";
$var1['post'] = isset($_POST['var1'])? trim($_POST['var1']):"";
$var2 ['post']= isset($_POST['var2'])? trim($_POST['var2']):"";
en revanche si dans cette page j'envoie les variables par $_POST elle ne seront pas prises en compte ==> erreur s'affiche variables $_SESSION sont vides .
comprend pas
merci pour vos reponses (PRoGRaFLaSH et Jeff ) ,

j'essaye ce que jeff a corrigé et je vous tiens au courant .

a+

par DocType » 17 janv. 2006, 12:40

Je souhaiterais que tu te rende compte du script que tu fais...

Code : Tout sélectionner

$var1 = isset($_POST['var1'])? trim($_POST['var1']):""; $var1 = isset($_SESSION['var1'])? trim($_SESSION['var1']):"";
Si envoi par post de var1, post var1 devient var1, sinon vide
Si envoi par session de var1, session var1 devient var1, sinon vide

Cela revient à dire que ta variable sera soit vide, soit equivalente a session...donc tu as deux trois lignes en trop
Il doit y avoir un énorme bug dans ton raisonnement. Que souhaite-tu faire ? Quel est ton pseudo code ?

par jeff » 17 janv. 2006, 12:36

salut

pour
$session = isset($_GET['session'])? trim($_GET['session']):"";
session_start($session);
$var1 = isset($_SESSION['var1'])? trim($_SESSION['var1']):"";
$var2 = isset($_SESSION['var2'])? trim($_SESSION['var2']):"";
$var1 = isset($_POST['var1'])? trim($_POST['var1']):"";
$var2 = isset($_POST['var2'])? trim($_POST['var2']):"";
c'est normale car tu ecrase ta variable
tu peut passer par un tableau par example
$session = isset($_GET['session'])? trim($_GET['session']):"";
session_start($session);
$var1['session'] = isset($_SESSION['var1'])? trim($_SESSION['var1']):"";
$var2 ['session']= isset($_SESSION['var2'])? trim($_SESSION['var2']):"";
$var1['post'] = isset($_POST['var1'])? trim($_POST['var1']):"";
$var2 ['post']= isset($_POST['var2'])? trim($_POST['var2']):"";
en revanche si dans cette page j'envoie les variables par $_POST elle ne seront pas prises en compte ==> erreur s'affiche variables $_SESSION sont vides .
comprend pas

par DocType » 17 janv. 2006, 12:33

les get post et session peuvent tout à fait cohabiter !
post n'a rien à voir avec session !!!!
Néanmoins, je ne vois pas le but final de ton script...même au travers de ton code. Un peu plus de clarté et d'explication serait superbe !

cohabiter $_session et $_post dans une meme page

par anna70 » 17 janv. 2006, 11:49

Bonjour à tous,

j'essaye de faire une mise à jour de mon site par rapport à easyphp 1.8 alors mon problème est :

1- pageconnexion.php ==> connexion à un compte par formulaire post .

2- pagecompte.php ==> recuperation des variables par

Code : Tout sélectionner

$var1 = isset($_POST['var1'])? trim($_POST['var1']):""; $var2 = isset($_POST['var2'])? trim($_POST['var2']):"";
j'affiche les resultats et tout se passe bien .

si je décide de modifier le contenue de mon compte, j'envoie par lien les variables par session sur la pagemodifprofil.php .

Code : Tout sélectionner

$_SESSION['var1']="$var1"; $_SESSION['var2']="$va2"; <? echo "<a href='./pagemodifprofil.php?'.SID >Modifier </a>"; ?>
3- pagemodifprofil.php :

je récupère la session :

Code : Tout sélectionner

$session = isset($_GET['session'])? trim($_GET['session']):""; session_start($session); $var1 = isset($_SESSION['var1'])? trim($_SESSION['var1']):""; $var2 = isset($_SESSION['var2'])? trim($_SESSION['var2']):"";

tout se passe bien la récupération et la modif faite, je renvois les variables à nouveau sur la page compte pour reafficher les nouvelles données :

Code : Tout sélectionner

$_SESSION['var1']="$var1"; $_SESSION['var2']="$var2"; header("Location:pagecompte.php?".SID);

Et c'est la que se trouve le schmilblick:

dans ma pagecompte.php j'essaye de cohabiter les mêmes variables selon qu'elles soient récupérer par $_post ou $_session et le problème est que c'est toujours les variables qui sont en dernier qui sont pris en compte :

exemple :

Code : Tout sélectionner

$session = isset($_GET['session'])? trim($_GET['session']):""; session_start($session); $var1 = isset($_SESSION['var1'])? trim($_SESSION['var1']):""; $var2 = isset($_SESSION['var2'])? trim($_SESSION['var2']):""; $var1 = isset($_POST['var1'])? trim($_POST['var1']):""; $var2 = isset($_POST['var2'])? trim($_POST['var2']):"";

dans ce cas c'est toujours les variables $_POST qui seront pris en compte malgré que c'est c'est $_SESSION qui sont envoyées (je précise que les $_SESSION passent bien )==> erreur s'affiche variables $_POST sont vides.

Si je veux que ce soient les $_SESSION qui soient pris en compte je mets en dernier et la c'est bon :

Code : Tout sélectionner

$session = isset($_GET['session'])? trim($_GET['session']):""; session_start($session); $var1 = isset($_POST['var1'])? trim($_POST['var1']):""; $var2 = isset($_POST['var2'])? trim($_POST['var2']):""; $var1 = isset($_SESSION['var1'])? trim($_SESSION['var1']):""; $var2 = isset($_SESSION['var2'])? trim($_SESSION['var2']):"";
en revanche si dans cette page j'envoie les variables par $_POST elle ne seront pas prises en compte ==> erreur s'affiche variables $_SESSION sont vides .


Alors ma question est :

est-il possible de cohabiter les $_POST et $_SESSION pour les mêmes variables dans une même page ??

Si qq1 a été confronté à ce problème merci de me donner un coup de main, voila j'espère que mes explications étaient clairs :oops: