changement de système de session

page 1 page 2
Répondre
BornToBe
BornToBe
Déconnecté
Nì heolas go haontìos
Salut à tous!

Bon alors il m'arrive un truc bizarre: c'est-à-dire qu'il y a deux semaines, mon hébergeur a tenté de passer son serveur en PHP 5. Finalement tous les autres sites ont accusé le coup alors il a dû repasser en PHP 4. Et que c'est-il passé? Tout mon système de sessions (fortement inspiré du cours de notre Globule nationalesmiley) ne marche plus. J'en ai fait part à mon hébergeur qui m'a dit qu'il ne faut plus utiliser $_SESSION mais session_register().
D'une part cela m'étonne puisque justement La Globule précise dans son cours qu'il le fait dans le contexte du PHP 4.
Et d'autre part, ben je n'arrive pas à voir comment remplacer les méthodes concernant les variables de connection.

Je sais pas trop si j'ai été clair...smiley

BTB
zebden
zebden
Déconnecté
zebdinou pour les intimes / Blog : http://www.zebden.fr
session_register() devient obselète quand les variables globales sont à OFF , il vaut mieux utiliser $_SESSION , donc ce qu'on t'as dit c'est faux ..
Sauf s'ils ont repassé le serveur a une version PHP antérieure à la 4.1.0 dans ce cas change $_SESSION par¨$HTTP_SESSION_VARS
BornToBe
BornToBe
Déconnecté
Nì heolas go haontìos
Pourtant le mec a l'air bien callé en PHP.
Il m'a filé une espèce d'aide par mails mais que je ne comprends pas:
session_start();
session_register("Slogin");
session_register("Spass");
session_register("SUserNom");
(...)
$Slogin=$usr_login;
$Spass=$usr_password;
$SUserNom=$usr_nom;
(...)

auquel j'ai répondu que je ne voyais pas comment il l'utilisait, puis:
UTILISATION :
<?
session_start();
if ($Slogin == "hhh"){action}

etc....
?>
chaque fois que session_start(); est utilisé, si la variable est renseignée, elle est connu de tous les scripts, il n'y a que lorsque le navigateur est fermé que la session est désactivée.
(après m'avoir expliqué le rôle des fonctions plus haut)que j'ai cru comprendre au début mais que je n'arrive pas à appliquer...

Voilà, au cas où tu vois où il veut en venir...

BTB
i M@N
i M@N
Déconnecté
One Love, One Heart, One Unity.
Hello !

Spa compliqué : tu codes en register_global à off :

Au lieu de faire :
  1. session_start();
  2. session_register("Spass"); 
tu fais :
  1. session_start();
  2. $_SESSION['id'] = $Spass;
  3. /* avec $Spass qui vient d'une variable en $_GET ou $_POST ou de ta base de données*/ 
PLus d'info sur comment coder en register_global à off ici : http://www.lephpfacile.com/forums/read_msg.php?f=1&id=2438

@+...
i M@N
i M@N
Déconnecté
One Love, One Heart, One Unity.
Arf ...

Tu fais :
  1. session_start();
  2. $_SESSION['Spass'] = $Spass;
  3. /* avec $Spass qui vient d'une variable en $_GET ou $_POST ou de ta base de données*/
  4.  
Désolé ... j'ai un peu de mal today.

@+...
zebden
zebden
Déconnecté
zebdinou pour les intimes / Blog : http://www.zebden.fr
la méthode qu'on t'as donnée est une mtehode juste quand les var globales sont activées mais pour un souci de securité il vaut mieux les mettre dans le tableau de session.
Il te reste le manuel PHP , tu tape session_register() , ca devrait t'eclairer un peu plus.
BornToBe
BornToBe
Déconnecté
Nì heolas go haontìos
Je viens de me renseigner, et je crois qu'ils sont en PHP 4.0.4. Je reprends donc ce qu'a dit Zebden: il suffit de remplacer $_SESSION par $HTTP_SESSION_VARS ?? Rien d'autre??

Sinon, merci pour vos conseils. Mais personne ne voit comment voulait faire le mec? Parce que dans un premier temps, je préfèrerais suivre ce qu'il me dit: c'est un hébergeur indépendant et il préconise cette solution pour l'utiliser lui-même... Mais bon, comme c'est pas le genre à prendre un peu trop de son temps pour expliquer les choses... Pas comme vous, quoi!!!smileysmileysmileysmiley

BTB
BornToBe
BornToBe
Déconnecté
Nì heolas go haontìos
J'avais pas vu ton message. Non mais session_register je vois ce que c'est, j'ai déjà regardé dans le manuel. Mais le truc, c'est que je ne sais pas comment l'appliquer au code que j'ai déjà fait...

Par exemple, ma page de login, c'est exactement - ou presque - la même que dans les cours de La Globule. Que faudrait-il changer?

BTB
zebden
zebden
Déconnecté
zebdinou pour les intimes / Blog : http://www.zebden.fr
A l'enregistrement :

au lieu de faire :
$_SESSION['variable'] = "truc";

ca donne :
$variable = "truc",
session_register($variable);

Pour recuperer :
au lieu de faire :
echo $_SESSION['variable'];

ca donne
echo $variable;

Mieux vaut utiliser les tableaux ...
BornToBe
BornToBe
Déconnecté
Nì heolas go haontìos
Merci beaucoup.
Et qu'est-ce que tu veux dire à propos des tableaux de sessions?

BTB
zebden
zebden
Déconnecté
zebdinou pour les intimes / Blog : http://www.zebden.fr
$_SESSION est un tableau

avec session register t'enregistre la variable en temps que variable de session.
BornToBe
BornToBe
Déconnecté
Nì heolas go haontìos
Ah d'accord je vois ce que tu veux dire... Oui, il semblerait que ce soit plus sûr...
Mais bon, moi aussi ça me saôule de devoir le changer, hein. En plus, j'avais rajouté des ptits trucs trouvés par ci par là sur le net qui rajoutaient à la sécurité... Tant pis.

BTB
BornToBe
BornToBe
Déconnecté
Nì heolas go haontìos
Euh, c'est bizarre: toujours dans login.php, le code ne passe pas dans cette condition:
  1. if (isset($_POST['login'])) 
ni dans celle-ci:
  1. if (($login == "meuwa") && ($pwd == "demayne")) 
ou encore là:
  1. if (($login == $login_valide) && (md5($pwd) == $pwd_valide)) 
.
A croire que les if n'existaient pas encore en PHP 4.0.4... Quelqu'un voit d'où ça vient?

BTB
i M@N
i M@N
Déconnecté
One Love, One Heart, One Unity.
Hello !

Normal, en codant à register_global à off, on doit vérifier l'existence de la variable et l'initialiser :
  1. if isset($_POST['login']) $login=$_POST['login'] else $login=""; 
@+...
i M@N
i M@N
Déconnecté
One Love, One Heart, One Unity.
une précision : tu fais ça avec toutes tes variables dans la page traitant le formulaire en $_GET ou $_POST ou dans la page qui récupère une variable dans l'url. Tu fais ça pour toutes tes variables en début de page et après c'est bbon tu pourras te servir de $variable dans ton script.
page 1 page 2
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Breizh Blog