Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Passare un vettore con querystring

    Ciao a tutti,
    ho il seguente problema:
    in una pagina php si forma un vettore di molti elementi, tipo:

    $personaggi=array("paperino","topolino","minni","p luto",...)

    (diciamo un array con una trentina di elementi).

    Ora, ho la necessità di passarlo ad un'altra pagina php possibilmente con una querystring, tipo:

    <a href=pagina2.php?vettore=$personaggi>pagina2</a>

    Se però lo faccio così come vedete, NON mi funziona (ho provato in vari diversi modi ma.. niente).

    D'altra parte non mi è possibile farlo così:

    <a href=pagina2.php?uno=paperino$due=topolino&tre=min ni...>

    perché verrebbe un link esageratamente lungo (e credo neanche funzionante oltre un tot di caratteri).

    Quindi come fare?
    Qui credo ci voglia un "guru" del php

  2. #2

  3. #3
    puoi usare le sessioni per passare i dati tra 2 pagine che recupereresti nell'array $_SESSION. CI sono scritte delle pillole per fare cio' e degli articoli in freephp.html.it.

    Inizia di lì , poi se hai difficolta' , siamo qui ad aiutarti.

    Ciao
    ______________________________________

    Progresso Web.

  4. #4
    potresti passarlo con il metodo post....

  5. #5
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    Puoi provare a serializzare l'array con la funzione serialize():
    http://it2.php.net/manual/it/function.serialize.php
    e ovviamente riottenere i valori con la funzione inversa:
    http://it2.php.net/manual/it/function.unserialize.php

    Ma non ne ricordo il funzionamento corretto e potrei dirti una fagianata...
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

  6. #6
    anzitutto grazie a tutti.

    x caruccis:
    l'idea delle sessioni non è male, ma mi porta un potenziale problema: lo script è già in pagine protette, per cui è relativo ad un utente iscritto. Se lo stesso utente fa 2 richieste contemporanee la stessa variabile avrebbe 2 potenziali valori e solo 1 sarebbe considerato dallo script, per cui.. conflitti. Potrei fare una sessione all'interno della sessione, ma poi se l'utente fa ancora 2 richieste contemporanee devo fare più sessioni nella sessione utente.. insomma non ne verrei fuori facilmente

    x matteosister:
    l'idea del POST l'avevo valutata ma c'è un problema ed uno svantaggio:
    il problema è che il vettore io già ce l'ho prima del POST, per cui dovrei rigenerarlo apposta per il POST (per quante prove io abbia fatto mi sono accorto che il POST accetta solo vettori creati li per li e non vettori già esistenti);
    lo svantaggio è che non posso raggiungere delle pagine dandone semplicemente l'URL con la querystring

    x iox84:
    ti dico la verità non ho molto capito come la funzione serialize() potrebbe aiutarmi..

  7. #7
    In sessione puoi avere quante variabili vuoi, quindi il tuo array potrebbe stare anche in un array padre, mentre i tuoi potrebbero essere array figli.
    Il serialize serve proprio per "serializzare" le informazioni contenute in vettori per inserirle in sessioni. Poi nella pagina successiva, per riprendere le informazioni devi "unserializzare".
    ______________________________________

    Progresso Web.

  8. #8
    molto semplice

    codice:
    $qsArray = array();
    while(list(, $value) = each($list))
    {
      $qsArray[] = 'lista[]=' . urlencode($value);
    }
    
    $qs = implode('&', $qsArray);
    poi appendi $qs all'url ... e hai tutto

    la lista la hai come array dentro

    $_GET['lista']

    ovviamente nello stesso ordine nel quale li hai inseriti

  9. #9
    siete gentilissimi. Provo e vi faccio sapere

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    460
    Non mi e' chiaro perche' dovresti passare un array via GET. Secondo me stai facendo la domanda sbagliata. Cosa devi fare esattamente?
    There are 10 types of people in the world - those who understand binary and those who don't.

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.