8721 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai un site qui tourne en php 5.3 et je viens de prendre un vps chez ovh, pour apprendre la gestion d'un vps.

J'ai des lignes de code de variable qui commence par $_POST, si j'ai bien compris, c'est plus autorisé en php5.4, car superglobale. Avant, sur ma version 5.3 j'avais passé le serveur en mode on pour le register global.

Ma question, est simple, je fais comment pour que mon code fonctionne ne php5.4 ?

Il faut que je remplace mes $_POST par un autre code ou rajouter des lignes de code ? Je cherche mais je suis un peu perdu.

Je me sert de $_POST pour envoyer un formulaire en ligne.

Merci de vos réponses. Je sais très bien que passer en mode on est niveau sécurité mauvais.

Le truc, c'est que j'ai du mal à comprendre le fameux changement entre 5.3 et 5.4 avec les globals registre. Je lit tout et le contraire ....

Si quelqu'un pouvait me filer un lien ou m'expliquer en quoi consiste le changement, ça serait sympa.

Je bloque pour l'envoi de mes variables avec le formulaire. Ca ne passe plus avec Php 5.4. Il faut que je modifie mon code mais je rame.

Cordialement.

Dom
Modifié par CVS (25 Oct 2014 - 14:49)
Pour info, ça fait quand même depuis php 4 que register_globals est fortement déconseillé. C'est pas comme s'ils n'avaient pas prévenu.
Merci, je vais regarder.

Je peux avoir un exemple d'une valeur définie ? En gros j'ai à modifier mes valeurs non défini par des valeurs défini et mon code fonctionnera en php 5.4 ?

Ca serait sympa, je suis pas un pro, je bidouille mais j'aime bien des exemples ça me permet d'apprendre plus vite c'est du concret.

Merci encore pour votre aide, c'est sympa. Smiley cligne
Modifié par CVS (23 Oct 2014 - 20:36)
Ben je t'ai donné un exemple, mais bon en voilà un plus clair peut être.

Tu appelles l'URL avec un paramètre GET http://www.toto.fr/?toto=tutu
Avec les register_globals à On tu pouvais faire:

<?php
echo $toto;


Maintenant c'est à Off par défaut et tu dois faire:


<?php
echo $_GET['toto'];


Cela te permettait d'avoir des variables automatiquement.
Donc partout où tu récupères des données d'un formulaire ou de ta query string, tu dois corriger si tu n'utilisais pas $_POST ou $_GET, bref regarde dans la doc c'est plus clair.

Bon courage. Smiley smile
Pour une solution facile à ce problème et avoir les variables automatiques extraites comme auparavant, voir la fonction extract. Cela dit, il vaudrait mieux ne pas utiliser cette fonction et modifier son code, car en l'utilisant on s'expose exactement aux mêmes problèmes de sécurité que ceux dont souffre register_globals.
Modifié par QuentinC (24 Oct 2014 - 07:14)
Merci beaucoup, je vais regarder dans la journée.

Je te tiens au courant.

Merci encore. Smiley smile
J'ai un problème pour faire passer cette variable : $champ2 dans un formulaire d'envoi.

$champ2 = prénom.

En php 5.3 elle passait comme une lettre à poste. En 5.4 chez un vide dans mon mail de réception.

C'est pareil pour toutes mes variables.

Merci de vos lumières.
J'ai trouvé, pour passer ma variable je rajoute :

$champ2 = $_POST['champ2']; /* Prénom */

Et la variable passe bien dans le mail.
Merci pour tes explications qui m'on beaucoup aidé dans le passage dans la version 5.4

Mon site fonctionne nickel en 5.4

Merci encore à toi pour ton aide.

Dom Smiley cligne