Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: Aggiornare la sessione

  1. #1

    Aggiornare la sessione

    Salve, come da titolo, ho una sessione con dei dati che vengono aggiornati tramite form, il problema è che non mi aggiorna i dati durante la sessione, ma solo quando sloggo e riloggo. Adesso ho questo comando:
    Codice PHP:
    $inviautenti mysql_query("UPDATE utenti SET username='$username', email='$email' WHERE id = '$id'");
                 if(
    $inviautenti){
    echo 
    "Aggiornato" 
    Avevo letto su internet che si doveva impostare una specie di refresh dei dati, ma non sò come farlo. comunque da quel che ho capito deve andare dopo questa stringa, quando c'è 'echo "Aggiornato"'.
    Come devo strutturare il tutto? Usate come esempio i dati email e username.

  2. #2
    Ma usi delle variabili di sessione ($_SESSION)?

  3. #3
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    le sessioni si usano cosi


    1- session_start(); // AVVIA SESSIONE

    2- $_SESSION["var"] = $valore // Store dei dati
    3- $dato = $_SESSION["var"] // Read dei dati stipati


    4- fine script se non devi fare altro sulla session puoi pure evitare altre istruzioni per la gestione della session.

    NOTA:
    unset($_SESSION["var"]) => cancella la variabile dalla memoria
    session_destroy() => ditruggitore di sessioni (cancella completamente l'attuale sessione di TUTTI i dati => perdi anche la sessione e devi ricrearla se ti serve una nuova sessione)

    .....
    sono le basi.

  4. #4
    Allora, faccio così:
    Codice PHP:
    $username mysql_real_escape_string($_POST['username']); 
    $password mysql_real_escape_string($_POST['password']); 
    così invio i dati:
    Codice PHP:
    if ($verificadati == 1){
    session_start();
    $sessione mysql_fetch_array($recuperadati);
    $_SESSION['username'] = $sessione['username'];
    $result mysql_query($prova);
    $record mysql_fetch_array($result);
    $_SESSION['email'] = $sessione['email'];
    $_SESSION['password'] = $sessione['password'];
    $_SESSION['id'] = $sessione['id']; 
    così attribuisco i valori alla sessione per poterli richiamare.
    Poi ho questi campi:
    Codice PHP:
    echo '<label for="username">Username</label><input type="text" name="username" value="'.$_SESSION["username"].'" />';
    echo 
    '<label for="email">Email</label><input type="text" name="email" value="'.$_SESSION["email"].'" />
    '

    Che mi servono per permettere all'utente di immettere i nuovi dati.
    Poi gli faccio fare la select sui campi e l'uptade come ho postato prima. Spero di essere stato esaustivo.

  5. #5
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    quando hai finito l'update riassegna i nuovi valori ai campi della sessione e sei apposto ...

    // FAI UPDATE

    $_SESSION["dato"] = $nuovoDato ; // etc...

  6. #6
    Ok, adesso per vedere i dati aggiornati basta aprire una pagina del sito, oppure fare un refresh.
    Come facci oa dare un refresh senza ricorrere al comando header...
    Perchè il comando header deve andare necessariamente prima dell'inizio della pagina, ma non posso metterlo con la condizione if, che deve stare necessariamente dentro la pagina nel mio caso.
    Sapete come fare?

  7. #7
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    iul comando header funziona anche alla fine della pagina ... ma solo se non hai generato nessun output prima (echo var_dump etc...)

    il mio consiglio e' che tu faccia cosi

    1- pagina html con quello che sia e link + form etc...( tutti collegati a script esterno)
    2- script esterno con tutti i controlli del caso e il redirect alla pagina.

    cosi' vai tranquillo che una vola pigiato il submit lo script esegue il codice, aggiorna i dati e torna alla pagina chiamante.
    Dal punto di vita utente quelle che vedi e' un refresh della pagina.

  8. #8
    Grazie per la risposta, tu intendi mettere ad esempio un include?
    Comunque s epuoi spiegati meglo.

  9. #9
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    include qui ti serve solo se hai files con funzioni o altro

    l'idea (come sarebbe sempre meglio fare)

    1- index.php

    Codice PHP:
    <?PHP

    session_start
    ();

    $uio "" ;

    if( isset(
    $_SESSION["userInput"]) )
    $uio $_SESSION["userInput"] ; }

    ?>
    <html><head></head><body>
    USER INPUT : <?=$uio?>
    <hr />
    <form name="mioform" action="./prova.php" method="post">
    <input type="text" name="prova" />
    -
    <input type="submit" name="sub" value="testa" />
    </form>

    </body></html>

    Molto semplice giusto come esempio di funzionamento ... poi lo sccript php

    2- prova.php
    Codice PHP:

    <?PHP

    $var 
    $_POST["prova"] ;


    // GESTISCI E FAI QUELLO CHE VUOI AD ESEMPIO

    session_start();

    $_SESSION["userInput"] = $var 

    header("location:index.php") ;



    ?>
    pensaci

    P.S.
    il codice e' scritto al volo provalo spero di non aver fatto errori di sintassi o cose .. cmq la logica e' questa.

  10. #10
    Ciao, grazie per il tuo metodo, ma non riuscivo ad applicarlo con successo, così ho letto un pò in giro e ho trovato questo comando, che non mi crea impedimenti. La pagina và in refresh dopo 3 secondi. Sei d'accordo con questa soluzione? Ecco:

    codice:
    echo "<meta http-equiv='refresh' content='3; provarefresh.php'>";
    Fammi sapere

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.