bonsoir à tous,

Voilà j'ai une question

je souhaite envoyer via une méthode get un gros tableaux
donc dans un premier je le sérialise pour avoir un chaine string, et pour le moment je la convertie en hexadécimal pour cacher un peu le truc dans le get qui sera dans l'adresse.

je sais que ce n'est pas classe du tout, mais je ne sais pas quoi faire en réalité de plus classe.
j'ai essayé la compression gzcode et d'autre, mais je me retrouve avec des symboles qui font tous planter.

Pourriez vous me donner ne piste.

Merci d'avance flo

3 réponses


iriven
Réponse acceptée

ces fonctions mon souvent sauver la vie.
j'espere qu'elles vont sauver la tienne aussi:

function b64safeurlencode($string) {
    $data = base64_encode($string);
    $data = str_replace(array('+','/','='),array('-','_',''),$data);
    return urlencode($data);
}
function b64safeurldecode($string) {
    $data = str_replace(array('-','_'),array('+','/'),urldecode($string));
    $mod4 = strlen($data) % 4;
    if ($mod4) {
        $data .= substr('====', $mod4);
    }
    return base64_decode($data);
}

$tonArray= array_map('b64safeurlencode',$tonArray);
$tonUrl= $tonUrl.'?'.http_build_query($tonArray);

et à la reception

if($_GET)
foreach($_GET as $k=>$v)
$_GET$k] = b64safeurldecode($v);

bonjour les trous de sécurité.
pourquoi passer tout un tableau via l'url?
si c'est pour une utilisation dans d'autres pages en interne pourquoi ne pas le stocker en session?
et si c'est pour un lien distant un service comme curl est plus indiqué.
ton problème tel posé montre qu'il y a une erreur de réflexion dans la mise en place du projet.
mais si tu veux continuer dans ta dans ta lancée, tu peux faire:

$tonUrl= $tonUrl.'?'.http_build_query($tonArray);
$tonUrl= urlencode($tonUrl);
et à la reception
$tonUrl= urldecode($tonUrl);
flo3376
Auteur

merci iriven de me répondre,
alors d'abord les raison pour laquelle je veux passer par un get sont les suivantes:
-prb de compatibilité entre html2pdf et le reste de mon site, prb sur lequel je n'ai pas envie de m'attarder.
-seconde raison est que cette génération de pdf doit se faire sans appel à une bd ou fichier.
-l'utilisation de session est impossible, car il s'agit d'un formulaire qui donne une récap de l'inscription avec les mdps en clair. Une fois l'inscription terminé, la personne reçois le lien avec la chaine, et lorsqu'il le lancera aura son pdf.

Donc si le mec est assez con pour essayer de pirater son propre tableaux de donné, vue que la page appellée n'est pas connecté à quoique ce soit, je dois avouer que je ne vois pas le danger.

J'ai regardé url encode, gzip ... et c'est pas génial à cause des caractéres spéciaux, c'est pour ça que pour le moment le tableau est convertit en chaine hexadecimal, c'est certe pas compressé, mais y a que des chiffres donc clean pour tous les explorateurs.

voilà voilà