Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    199

    $_SESSION[$var] possibile farlo?

    Riprendendo un post precedente chiedo: è possibile mettere una variabile come valore di una sessione per far si da rendere quella sessione univoca?
    Quando lo faccio mi da una notifica di errore che non trova l'offset (ma la variabile la riconosce perchè la cita correttamente nella stessa notifica). C'è qualche modo per farlo funzionare?

    Grazie mille in anticipo.

    Ciao

  2. #2
    C'è un motivo particolare per il quale non hai postato nè il codice nè il messaggio di errore?

    Comunque funziona perfettamente.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    199
    L'errore è questo: Notice: Undefined offset: 80...dove 80 è il valore corretto di $prd_id

    Il codice è semplicemente $_SESSION[$prd_id]=$prd_id x salvarlo e quando vado a fare echo $_SESSION[$prd_id] mi da quell'errore (la variabile $prd_id è definita nella pagina, tant'è che lui mi scrive quell'80 su uno, 89 su un'altro e così via che sono appunto prd_id).

  4. #4
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    codice:
    Notice: Undefined offset
    come ben evidenziato, non è un errore, ma un notice, che non pregiudica il funzionamento dello script.

    Ti ritorna quel notice, perché l'indice di quell'array ancora non esiste.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    199
    Grazie della risposta, tuttavia non capisco...perchè mai se scrivo $_SESSION['PIPPO']=$prd_id e poi uso la sessione in un'altra pagina funziona invece $_SESSION[$prd_id]=$prd_id mi riporta quella notifica non facendo tuttavia procedere lo script? Che gli cambia se PIPPO glielo passo come stringa o come variabile??? Perché col primo gli indici esistono e con il secondo no???
    Ma soprattutto...xk è tutto così dannatamente complicato???

    Ciao e buona serata!

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    199
    Ho ricreato un form con sessioni per fare una prova e continua a darmi la stessa notifica.
    Ora lo propongo (è molto semplificato), magari sarà più facile capire dove sto sbagliando.
    Pagina index:
    codice:
    <body> 
    <form action="sessione.php" method="post" name="prova">
    <input name="id" type="text"/>
    <input name="nome" type="text"/>
    <input name="cognome" type="text"/>
    <input name="indirizzo" type="text"/>
    <input name="invio" type="submit" value="invio" />
    </form>
    <?php
    $id=5;
    echo $_SESSION[$id]['nome'];
    echo $_SESSION[$id]['cognome'];
    echo $_SESSION[$id]['indirizzo'];
    ?>
    </body>
    Pagina sessione:
    Codice PHP:
    <?php session_start(); 
    $id=$_POST['id'];
     
    $_SESSION[$id]=array ('nome'=>$_POST['nome'], 'cognome'=>$_POST['cognome'], 'indirizzo'=>$_POST['indirizzo']); header("Location: index.php"); 
    ?>
    Anche in questo caso, dopo il reindirizzamento mi da questi messaggi senza darmi altro output:
    Notice: Undefined offset: 5 in C:\Programmi\EasyPHP-12.1\www\prova\index.php on line 23

    Notice: Undefined offset: 5 in C:\Programmi\EasyPHP-12.1\www\prova\index.php on line 24

    Notice: Undefined offset: 5 in C:\Programmi\EasyPHP-12.1\www\prova\index.php on line 25

    Cosa sto sbagliando?

    PLEASEEEEEE!!!

    Ciao ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    199
    Trovato soluzione a questo problema...ora attendo gli altri.

    Cmq lo pubblico, magari un giorno potrà tornare utile a qualcuno:

    il problema stava (tanto per cambiare) negli apici:

    Codice PHP:
    $_SESSION[$id]=array ('nome'=>$_POST['nome'], 'cognome'=>$_POST['cognome'], 'indirizzo'=>$_POST['indirizzo']); header("Location: index.php"); 
    deve essere:

    Codice PHP:
    $_SESSION['$id']=array ('nome'=>$_POST['nome'], 'cognome'=>$_POST['cognome'], 'indirizzo'=>$_POST['indirizzo']); header("Location: index.php"); 
    e di conseguenza, quando si richiama la sessione essa dovrà essere: $_SESSION['$id']['nome'];

    Il fatto che fosse una variabile mi ha fatto pensare che non necessitava di apici come le stringhe...ma mi sbagliavo!

    Ciao a tutti, ci sentiamo al prossimo problema (tra 5 minuti...massimo!!! )

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    199
    Eccomi ancora qui...perdonate l'insistenza, ma questo è l'ultimo gradino di oltre 2 mesi di lavoro (ormai un'ossessione)...non ce la faccio piùùùùùùù (alla Magda)!!!

    Concettualmente credevo che se salvavo le sessioni con un numero univoco ($prd_id) e successivamente andavo a creare una nuova sessione con i dati di un nuovo prodotto (quindi id diverso, ergo sessione con nome diverso) avevo in memoria entrambe le sessioni. Invece qui non è cambiato nulla, ovvero la seconda sostituisce la prima...stai a vedere che scrivendo $_SESSION['$prd_id'] quello legge '$prd_id' come una stringa e non come il valore dell'ID del prodotto!?!
    Voi che dite?

    Grazie mille della pazienza e della solidarietà e compassione!!!

    Ciao ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    199
    SOLUZIONE TROVATA e perfettamente funzionante!!!

    In caso servisse ai posteri:

    per quel che ho potuto trovare e testare SEMBRA che una sessione non può contenere una variabile come chiave, quindi $_SESSION[$var] non viene accettata, però gli array "normali" accettano le variabili, cioè array[$var] non ha nessun problema: ergo la soluzione è stata la seguente: $_SESSION['nome'][$var] e poi dentro tutti i valori che si vuole (tra cui $var stesso (che magari è univoco) che ti aiuta a gestire l'array nella sua visualizzazione). Così facendo si ha una sessione univoca!!!

    Grazie della cortese attenzione...ora posso andare a dormire!!!

    PS: in caso avessi detto castronerie siete pregati di correggermi (sempre x i posteri...a me sta soluzione funziona!!!)

    CIAOOO


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.