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

    Memorizzazione e cancellazione dati in sessione

    Ciao a tutti,
    ho la necessità di dover selezionare (tramite checkbox) da una lista grandissima di utenti, alcuni di essi. Siccome la lista è veramente lunga, volevo permettere una ricerca di essi e selezionarli singolarmente.
    Ovviamente ogni volta che faccio una ricerca sono costretto a ricaricare la pagina per visualizzare solo i clienti corrispondenti alla ricerca, quindi i dati degli utente selezionati (solo il codice che è chiave!) li memorizzo nella sessione.

    Il mio problema è:
    - quando un utente non conferma la selezione e cambia pagina, vorrei fare in modo che la variabile (in questo caso un array) memorizzata in sessione con gli utenti finora selezionati venga svuotata (attraverso session_unset()), così se l'utente dovesse rientrare non trova più i campi precedentemente selezionati.

    Come faccio a fare in modo che l'array presente in sessione con l'elenco degli utenti venga "distrutto" solo quando l'utente cambia pagina?

    Ciao e grazie

  2. #2
    Immagino che la ricerca l'hai impostata utilizzando un form e, quando fai il submit, escono un numero ridotto di utenti, per poter essere selezionati con il chekbox, giusto?

    Se si, tu hai detto che i dati degli utente selezionati (solo il codice che è chiave!) li memorizzo nella sessione. Come fai? Cioé quando dopo la ricerca escono a video un certo nr. di utenti, e li selezioni con il chekbox, come li memorizzi nella sessione? Per caso fai un form in cui vi sono tutte le checkbox e quando fai il submit di memorizzi nella sessione i valori checkati?

  3. #3
    Originariamente inviato da gianf_tarantino
    Immagino che la ricerca l'hai impostata utilizzando un form e, quando fai il submit, escono un numero ridotto di utenti, per poter essere selezionati con il chekbox, giusto?
    Esatto! Un form con action $_SERVER['PHP_SELF'].

    Originariamente inviato da gianf_tarantino
    Se si, tu hai detto che i dati degli utente selezionati (solo il codice che è chiave!) li memorizzo nella sessione. Come fai? Cioé quando dopo la ricerca escono a video un certo nr. di utenti, e li selezioni con il chekbox, come li memorizzi nella sessione? Per caso fai un form in cui vi sono tutte le checkbox e quando fai il submit di memorizzi nella sessione i valori checkati?
    Li memorizzo attraverso una procedura php che richiamo utilizzando AJAX. Ogni volta che clicco su un checkbox aggiungo il codice utente all'array utenti in $_SESSION.

    Il problema mio è come svuotare questo array solo quando cambio la pagina.

  4. #4
    Anziché usare Ajax, quando fai settare le checkbox, crea un form e, quando, fa il submit vai su un'altra pagina in cui ti prendi le checkbox settate.

    In tal modo non usi la sessione.


    Un consiglio, se mi posso permettere. Io, di solito evito di fare il form con action $_SERVER['PHP_SELF']. Ritengo che, concettualmente, sia più pulito un approccio in cui in una pagina hai il form e in un'altra la destinazione del submit in cui fai gli eventuali controlli. In tal modo hai 2 pagine differenti e sicuramente + pulite, anziché un'unica pagina "incasinata".

  5. #5
    Originariamente inviato da gianf_tarantino
    Anziché usare Ajax, quando fai settare le checkbox, crea un form e, quando, fa il submit vai su un'altra pagina in cui ti prendi le checkbox settate.

    In tal modo non usi la sessione.
    Uso Ajax xkè devo poter accodare più contatti estratti da diverse ricerce e solo alla fine fare il submit di conferma.

    ESEMPIO: voglio selezionare tutti i contatti che iniziano con BO e tutti quelli che iniziano con CA. E una volta che ho l'array con tutti i contatti del primo gruppo e tutti quelli del secondo faccio il submit di conferma e passo alla pagina di esecuzione dello script.

    Inoltre Ajax mi permette di non ricaricare la pagina

  6. #6
    Ma allora anziché utilizzare 2 array di sessione, utilizza 2 array globali. Quando, poi, fai il submit spedisci tali 2 array oppure l'array risultante dall'unione dei 2 alla pagina di destinazione del form.

    Oppure ci sono problemi?

  7. #7
    Originariamente inviato da gianf_tarantino
    Ma allora anziché utilizzare 2 array di sessione, utilizza 2 array globali. Quando, poi, fai il submit spedisci tali 2 array oppure l'array risultante dall'unione dei 2 alla pagina di destinazione del form.

    Oppure ci sono problemi?

    Ma se ricarico la pagina l'array globale rimane?

  8. #8
    Ma se hai detto che usi Ajax per non dover ricaricare la pagina? Perché devi ricaricare la pagina?

  9. #9
    Buon giorno a tutti!

    mi collego alla discussione anche se devio un pò il tema...

    Io faccio login da qui...

    Codice PHP:
    <?php
    include("config.php");

    echo 
    "
    <h4>Effettua il Login</h4>
    <div id=\"regis\" class=\"panel\">
    <form action=\"
    $p_u/log_db.php\" method=\"post\">
    <input type=\"text\" name=\"nick\" size=\"7\" value=\"\">


    <input type=\"password\" name=\"pw\" size=\"7\" value=\"\">


    <input type=\"submit\"  value=\"entra\">


    <div>Hai perso i tuoi dati? <a href=\"
    $p_u/recupera_db.php\">Recuperali</a></div>
    <div>Non sei iscritto? <a href=\"
    $p_u/registra_db.php\">Iscriviti subito</a></div>

    <div><a href=\"http://www.catode.net\">[size="
    1"]Powered by DG Catode</a>[/size]</div>"
    ?>
    Come mi consigliate di continuare per salvare i dati in sessione?
    Passo le informazioni dal form nella sessione e come??
    Passo tutto ad un'altra pagina e poi da li come procedo?

    P.S. sono alla mia prima "volta" con le sessioni e con un sistema di autenticazione

    Grazie in anticipo.
    Lordras

  10. #10
    X LORDRAS:

    Ciao.
    A parte che non è buona educazione introdursi in argomenti altrui con cose fuorvianti, ti consiglio la prossima volta o anche ora se vuoi di aprire una discussione anche perché in tal modo molti + utenti possono vedere la tua richiesta di aiuto e puoi ricevere una mano maggiore.

    Comunque,

    Il form del login rimanda alla pagina log_db.php


    Ora, dalla pagina log_db.php, ti crei la sessione e memorizzi le var.li passate tramite il form nella sessione, in questo modo:


    <SCRIPT LANGUAGE="php">
    session_start();

    $_SESSION['nick_user'] = stripslashes($_POST['nick']);
    $_SESSION['pass_user'] = stripslashes($_POST['password']);


    if ($_SESSION['nick_user'] && $_SESSION['pass_user'])
    {
    //Se si è qui vuol dire che sia il nick che la password sono stati forniti.
    /* Non so tu, ma in genere a questo punto io apro la connessione al DB e verifico che il
    nick e la password fornite, appartengano ad un utente presente nel DB */

    include('controllo.inc');

    /* In controllo.inc, se non sono presenti nel DB, fai eseguire l'istruzione:
    header("location: http://www.../PAGINA_DA_DOVE_FAI_IL_LOGIN.php");
    exit; */

    header("location: http://www..../benvenuto.php");
    exit;
    }
    else
    {
    //Se si è qui vuol dire che il nick e/o la password forniti sono vuoti
    header("location: http://www.../PAGINA_DA_DOVE_FAI_IL_LOGIN.php");
    exit;
    }
    </SCRIPT>


    Una volta che il controllo è stato superato positivamente l'utente entra in un'area riservata, dove solo lui può navigare. Inizialmente va nella pagina di benvenuto (benvenuto.php), da qui poi puoi creargli dei link ad altre pagine che implementino delle funzionalità che occorrono all'utente.
    E' importante sottolineare che ogni pagina dell'area riservata deve iniziare con il comando session_start();

    In tal modo non perdi i dati della sessione, in cui ci sono nick e password dell'utente.
    Ad ogni pagina (sempre dell'area riservata), poi, devi fare il controllo che nick e password siano presenti nel DB, altrimenti basterebbe digitare semplicemente la pagina interna sulla barra dell'indirizzo del browser per poter scavalcare il controllo del log-in.

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.