Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [urlencode() svuota gli alfanumerici?]

    Salve gente.

    Ho un problema. Sto cercando di inviare con metodo GET un'array bidimensionale e seguo le consuete procedure di serializzazione e deserializzazione sull'array.


    Le funzioni unserialize e serialize funzionano benissimo.
    L'unico problema me lo crea urlencode che prendendo come parametro l'array, mi modifica tutte le occorrenze di valori alphanumerici (come AA102 ) nel carattere vuoto.

    Esiste una funzione alternativa a urlencode che mi produca una serializzazione corretta?!?!?

  2. #2
    Vediamo se con un pò di codice riesco a farmi capire:


    ho questo array bidimensionale:


    $ordini[0]['CODICE'] = 1;
    $ordini[0]['CODICE PRODOTTO] = 10000;
    .........

    eseguo una serializzazione:

    'pagina.php?ordini=urlencode(serialize($ordini))'. ....

    e riottengo con una unserialize nella pagina pagina.php l'array bidimensionale.
    N.B Nella pagina pagina.php ho come indirizzo url questo:
    http://www.sito.it/ordine.php?ordini...s%3A5%3A%22%22100CS %3Bs%3A8%3A%22QUANTITA%22%3Bs%3A1%3A%221%22%3Bs%3A 6%3A%22PREZZO%22%3Bs%3A4%3A%2212.5%22%3B%7D%7D

    Il problema è che se $ordini[0]['CODICE PRODOTTO'] è un valore numerico(10000) in pagina.php con un echo posso verificare l'esattezza del contenuto dell'array. Invece se $ordini[0]['CODICE PRODOTTO'] contiene un valore alpha numerico (100CS ) l'echo produce un bel 'vuoto'.

    Questa cosa non si spiega. Non vi posto ulteriore codice perchè è una cosa tutta complessa(anche per me che l'ho digitato).

    Però ho dato una lettura su php.net ai dettagli sulla funzione urlencode che si riferisce a valori non alphanumerici.

  3. #3
    ho provato a togliere urlencode(), ora faccio uso solo di serialize e unserialize il risultato è uguale.

    Ottengo un array del genere:


    $ordini[0]['CODICE'] = 1;
    $ordini[0]['CODICE PRODOTTO'] = 10000;

    $ordini[1]['CODICE'] = 2;
    $ordini[1]['CODICE PRODOTTO'] = 100AG;


    invio l'array a pagina.php ottenendo questo get:
    www.sito.it/ordine.php?ordini=a:2:{i:1;a:4:{s:6:"CODICE";i:14;s:15:"CODICE%20PRODOTT O";s:5:"10001";s:8:"QUANTITA";s:1:"1";s:6:"PREZZO" ;s:3:"8.5";}i:4;a:4:{s:6:"CODICE";i:14;s:15:"CODIC E%20PRODOTTO";s:5:"100AR";s:8:"QUANTITA";s:1:"1";s :6:"PREZZO";s:3:"8.5";}}



    nel primo caso l'echo ( echo $ordini[0]['CODICE'].$ordini[0]['CODICE PRODOTTO'].$ordini[1]['CODICE'].$ordini[1]['CODICE PRODOTTO'] nella pagina ricevente l'array dopo la unserialize() mi produce solo:

    1 10000

    invece di:

    1 10000 2 100AG

    Qualsiasi valore numerico inserisca nell'array $ordini[n]['CODICE PRODOTTO'] ottengo un risultato non null.Al contrario se ho un valore alphanumerico null.
    Vi giuro queste sono le uniche funzioni che uso serialize e unserialize. Il resto non faccio nulla.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.