Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 36

Discussione: Sessioni e click

  1. #1

    Sessioni e click

    Ciao a tutti.
    Ho una pagina con un elenco di immagini.
    cliccando su un'immagine si apre una pagina con l'immagine ingrandita e in questa pagina viene eseguita una query di UPDATE nel campo click della tabella. In pratica un semplicissimo conteggio dei click sulle foto. Ogni foto ha logicamente un id univoco.
    Come faccio a limitare i click sulle foto?
    Cioè vorrei fare in modo che ogni sessione possa votare solo 1 volta per ogni id_foto.
    Non sono molto ferrato sulle sessioni, chi mi indica un 3D o mi da qualche consiglio?
    Ho già inserito il session_start(); nella mia pagina, ma poi??
    Grazie mille.
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  2. #2
    se hai già inserito un session start basta che inserisci nella funzione che esegue la query una istruzione per settare un flag a true una volta che hai votato la foto, il flag sarà ovviamente una var di sessione, es:

    $_SESSION["foto_gia_votata"] = true;

    ovviamente prima di far votare la foto la funzione controllerà questo flag


    Ciao

  3. #3
    Si ma come faccio a dirgli che il flag è relativo solo all'id_foto votato e non a tutti gli id_foto? Non vorrei che una volta votata una foto non si possa più votare le altre...
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  4. #4
    Pensavo di fare una session con un array dove riporto per ogni click il valore TRUE se ho cliccato la foto e l'id della foto cliccata...
    una cosa del genere:

    [id, TRUE/FALSE]

    esempio

    [32, 1]

    è charo che la session dovrà memorizzare tutte le immagini che clicco...

    ma come fare? Chi mi aiuta?? Pleaseee!
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  5. #5
    scusa ma non avevo capito bene che intendevi un click per ogni foto!

    Un metodo molto semplice può essere quello di chiamare la variabile di sessione direttamente con l'id della foto, così la funzione che controlla se puoi votare leggerà direttamente il valore relativo alla foto per sapere se è già stata votata o no.

    $_SESSION["id_foto_1"] = false //non votata
    $_SESSION["id_foto_2"] = true //votata
    $_SESSION["id_foto_3"] = false //non votata

    function controlla_se_puoi_votare () {

    if ($_SESSION["id_foto_1"]){
    non consente il voto
    }
    else {
    consenti il voto
    }
    }


    Ciao

  6. #6
    ok ora mi è chiaro, ma io non ho un numero preciso di foto, naturalemtne dipende da quante foto l'utente clicca, quindi devo fargli creare dinamicamente con un ciclo tutte le varie

    $_SESSION["id_foto_1"] = false //non votata
    $_SESSION["id_foto_2"] = true //votata
    $_SESSION["id_foto_3"] = false //non votata


    oppure la session le memorizza automaticamente?
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  7. #7
    Forse è una cavolata.. ma ho scritto questo:

    Codice PHP:
    <?php
    session_start
    ();
    $_SESSION[$_GET['id_foto']] = "";
    ?>
    e poi:

    Codice PHP:
    if ($_SESSION[$_GET['id_foto']] = TRUE) {
    //non fare nulla
    }elseif ($_SESSION[$_GET['id_foto']] = FALSE){
    //fai l'update del campo click
    $query2 "UPDATE fotospeciali SET click_foto='".($riga_db[click_foto]+1)."' WHERE id_foto='$riga_db[id_foto]'";
    $result3 mysql_query($query2$db);
    $_SESSION[$_GET['id_foto']] = TRUE;

    Ma così non mi fa più l'UPDATE in nessun caso..
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  8. #8
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    codice:
    if (!isset($_SESSION[$_GET['id_foto']])) {
    
    
    $query2 = "UPDATE fotospeciali SET click_foto='".($riga_db[click_foto]+1)."' WHERE id_foto='$riga_db[id_foto]'";
    
    $result3 = mysql_query($query2, $db);
    
    $_SESSION[$_GET['id_foto']] = TRUE;
    
    }
    Prova cosi'
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

  9. #9
    Si così funziona ma solo 1 volta, cioè se clicco su una foto e poi faccio un reload della pagina il voto resta sempre lo stesso e non lo ripete, quindi ok!
    Ma se torno alla pagina precedente e seleziono un'altra immagine oppure clicco sul tastino ">> successiva" pur cambiando l'id_foto il voto non viene registrato, probabilmente perchè

    $_SESSION[$_GET['id_foto'] resta sempre impostato a TRUE

    invece dovrei fare in modo che se cambia id_foto $_SESSION[$_GET['id_foto'] ritorni a FALSE ma se torno su un id_foto già cliccato deve restituirmi TRUE...
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  10. #10
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    Ad ogni foto devi passare il suo id_foto, altrimenti non funzia, per vedere cos'hai nel vettore prova a fare un print_r($_SESSION), in teoria dovrebbe creare una variabile $_SESSION[$_GET['id_foto']] per ogni foto visitata e se la variabile esiste non deve fare niente, comunque prova a fare l'output per vedere cosa scrive nel vettore di sessione e fammi sapere
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

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.