transmission de variable

Eléphanteau du PHP | 48 Messages

23 janv. 2012, 16:39

Salut a tous,

je cherche le code qu'il faut que j'utilise pour transmettre une variable par get ou post peu importe (preference pour post) sans que le visiteur n'ai a clicker sur un lien pour la transmttre.
C'est un code que j'utiliserai a la fin d'un code php pour terminer une verification. Et la je galere un peu entre les headers, href. Ca ne fonctionne pas comme je voudrais.
Faut il utiliser un scrpit java ou quelque chose comme ca ?

Merci a tous

ViPHP
xTG
ViPHP | 7331 Messages

23 janv. 2012, 16:41

Formulaire ou lien nécessitent l'action de l'utilisateur.
Dans ton cas une redirection est le mieux :
header('Location: taPage.php?taVariable=taValeur');
Un header() doit être placé avant tout affichage.

Eléphanteau du PHP | 48 Messages

23 janv. 2012, 17:24

j'ai deja testé ca mais ma page est en html ! est ce que cela importe pour la recup de la variable ?

je recupera ma variable avec
$log_me = ($_GET['mavariable']);
c bien ca ?

ViPHP
xTG
ViPHP | 7331 Messages

23 janv. 2012, 17:46

Pour interpréter un script PHP il faut que le fichier porte l'extension .php et non .html
Aussi il ne faut pas de parenthèse autour de la variable.

Eléphanteau du PHP | 48 Messages

24 janv. 2012, 00:00

ok j'ai reussi a faire ce que je voulais ;p

je me suis apercu d'une chose etonnante avec chrome, les variables globales (session) saute lorsque l'on appuie sur f5.

Ya un moyen a part les cookies pour remedier a ca ?

ViPHP
ViPHP | 1996 Messages

24 janv. 2012, 00:12

Tu es en local ou sur un serveur distant ?

As tu quelques part :
ini_set('session.use_trans_sid', "0");
ini_set('session.use_cookies', "1");
ini_set('session.use_only_cookies', "1");
session_name("NOM_DU_COOKIE");
session_start();
session_regenerate_id();
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphanteau du PHP | 48 Messages

24 janv. 2012, 00:35

en local et non je n'ai pas ce code encore ^^

tu peu m'en dire 1 mot stp ?

merci !

Eléphanteau du PHP | 48 Messages

24 janv. 2012, 00:49

si j'insere simplement ce code, mon traitement m'indique que l'utilisateur n'est pas connecter.

Peut etre simplement que je n'ai pas coder comme il faut le cookie dans mon traitement.

Eclaire moi sur le fonctionne si tu peu je verrai ca demain maintenant.

tchus

ViPHP
ViPHP | 1996 Messages

24 janv. 2012, 23:16

Quand tu fais session_start(), le serveur envoi un cookie volatile au navigateur client indiquant l'id de session. C'est automatique pas besoin de l'envoyer manuellement.
Cependant session_start(); ne doit être présent qu'une seule fois n'importe où sur la page (mais c'est meiux en haut de page) et sur toutes les pages utilisant les sessions et leurs super-variables ($_SESSION)

Ces trois lignes là :
ini_set('session.use_trans_sid', "0");
ini_set('session.use_cookies', "1");
ini_set('session.use_only_cookies', "1");
Oblige php a n’accepter que les infos venant du cookie et non via l'URL (deuxième mode de transmission de l'id de session)
Si tu as des sautes de variables de sessions venant de Chrome, il doit ne pas accepter les cookie même volatile. Vérifie cela.

Dernière chose : tu écris variable globale session. La super-variable $_SESSION est d'office globale uniquement si tu as session_start() dans la page.
On parle bien de la variable $_SESSION["MA_VARIABLE"] ou de global $ma_variable; Ce n'est pas la même chose...
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphanteau du PHP | 48 Messages

26 janv. 2012, 16:08

Merci de tes infos !

J'ai reussi a regler une bonne part de mes erreures de codage dus essentiellement a la syntaxe dont les subtilités sont encore un peu flou pour donc j'y vais a taton.

Pour ces lignes :
ini_set('session.use_trans_sid', "0");
ini_set('session.use_cookies', "1");
ini_set('session.use_only_cookies', "1");
Dois je egalement les mettre en debut de chacune de mes pages utilisant les sessions ?

Derniere chose, dans mon code je n'utilise que ce genre d'ecriture $_SESSION["MA_VARIABLE"].
Quelle difference avec global $ma_variable ? je n'ai pas saissi la nuance !

Pour info j'utilise session_start sur toute mes pages. Est ce que cela peut poser un probleme de securité ?

merci

ViPHP
ViPHP | 1996 Messages

27 janv. 2012, 00:04

Pour ces lignes :
ini_set('session.use_trans_sid', "0");
ini_set('session.use_cookies', "1");
ini_set('session.use_only_cookies', "1");
Dois je egalement les mettre en debut de chacune de mes pages utilisant les sessions ?
yep!
Dois je egalement les mettre en debut de chacune de mes pages utilisant les sessions ?

Derniere chose, dans mon code je n'utilise que ce genre d'ecriture $_SESSION["MA_VARIABLE"].
Quelle difference avec global $ma_variable ? je n'ai pas saissi la nuance !

Pour info j'utilise session_start sur toute mes pages. Est ce que cela peut poser un probleme de securité ?
session_start() est à mettre sur toute les pages ou tu vas utiliser les variables de session à savoir $_SESSION["MA_VARIABLE"]. Aucun problème de sécurité.

$_SESSION à une portée super globale. Un petit exemple ? Soit page1.php et page2.php)

page1.php
<?php 
session_start();
$_SESSION["essai"] = 'coucou';
?>
page2.php
<?php 
session_start();
echo $_SESSION["essai"];
?>
Ensuite tu lances dabord page1.php (http://monsite.com/page1.php) puis page2.php (http://monsite.com/page2.php)
Tu devrais avoir "coucou" d'afficher => la donnée de la variable inscrite dans page1.php est disponible dans page2.php. Cela marche aussi avec la portée des variables de fonctions, de classe, ...

La différence avec global $maVariable; est que la portée de $maVariable ne sera globale (fonction, classe) que pour la page en cours (page1.php par exemple) et non pour page2.php. Tu ne pourra pas transmettre d'infos de page1 à page2.
Perso je n'aime pas trop les global $maVariable; mais cela peut être utile de temps en temps.
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphanteau du PHP | 48 Messages

27 janv. 2012, 02:58

aok g pigé cette fois !
je n'utilise que des variable super globales egalement et aucune global $maVariable.
De cette maniere je suis sur d'avoir la meme valeur sur toutes les pages. Ca evite les confusions!

Merci de tes info !!