PHP5.2 - Get - Paramètre crypté tronqué ?

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 : PHP5.2 - Get - Paramètre crypté tronqué ?

par Raf_CF » 24 avr. 2009, 11:01

OK. Je le décode comment dans mon php après ? (oui je débute)
Edit : OK. URLdecode. ça fonctionne.
Merci pour la réactivité même si la cause de la régression m'intrigue toujours...

Complément : j'ai vérifié en prod (en php4), j'ai aussi des "+" dans ma condition cryptée. Pourtant ça passe bien. Au niveau de JavaScript, la fonction appendData utilise la fonction escape.

Code : Tout sélectionner

this.appendData = function(pfield, pvalue) { datas += (datas.length == 0) ? pfield+ "=" + escape(pvalue) : "&" + pfield + "=" + escape(pvalue); };

par Ryle » 24 avr. 2009, 10:51

Je ne pense pas que ce soit lié à la version de php, mais simplement au fait qu'un + dans une url est assimilé à un espace s'il n'est pas encodé...

La fonction JS encodeURIComponent() devrait te permettre d'encoder ta chaine pour pouvoir l'envoyer via l'url en ajax :)

PHP5.2 - Get - Paramètre crypté tronqué ?

par Raf_CF » 24 avr. 2009, 10:46

Bonjour,

J'ai une page qui affiche des résultats par paquets avec des liens précédent / suivant pour naviguer dedans en mode AJAX. Ces liens ne fonctionnent plus en php 5.2 (du moins je pense que ça vient de là car je ne vois pas d'autres évolutions liées à ce mécanisme).
Dans le détail :
Le clic sur "précédent" ou "suivant" appelle une fonction Javascript que je copie là :

Code : Tout sélectionner

function liste_images(condition,page_courante) { var XHR = new XHRConnection(); XHR.appendData("condition", condition); XHR.appendData("page_courante", page_courante); XHR.sendAndLoad("/photos_numerisees.do.php", "GET", affiche_images); }
Extrait du code PHP appelé :

Code : Tout sélectionner

$condition = $_REQUEST['condition']; $page_courante = $_REQUEST['page_courante']; file_put_contents(RACINE."\\_debug.txt", $condition.' - ',FILE_APPEND); (puis la condition est décryptée et utilisée dans la requête de recherche
Le paramètre condition est crypté (avec des md5 et des base64decode).
Le problème semble se situer dans la récupération de ce paramètre.
Quand je le récupère dans les traces :
- à sa création il vaut quelque chose comme "...1JIUBoASg4nUDpXPQY+Bm1SIgZ0VHA..."
- à sa récupération dans le GET, un saut de ligne remplace le "+" : "1JIUBoASg4nUDpXPQY Bm1SIgZ0VHA"

Est-ce que ça dit quelque chose à quelqu'un ?
Merci...