Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    forum: stop mail risposta finche non guarda il post

    Ciao a tutti, il mio non è un vero e proprio forum, ma più semplicemente dei commenti ad articoli che possono esser fatti solo da utenti registrati; quando un utente commenta e mette la spunta su "mandami una mail quando c'è una risposta" gli arriva una mail che lo avverte della risposta (ancora da implementare l'avvertimento via mail ma ho chiaro come fare). Quello che mi sfugge è come far in modo che non gli arrivino più mail di avvertimento delle risposte finche non visualizza la pagina... per intenderci su questo forum quando qualcuno risponde e arriva la mail sul fondo c'è la scritta "Potrebbero esserci altre risposte ma non ti verranno segnalate sino a quando non andrai a visualizzare questa discussione".
    quando l'utente dalla mail schiaccia il link che lo manda alla discussione come fa il sito a rilevare che l'utente ha visualizzato la discussione? magari lo fa da un pc dove non ci sono cookie che lo loggano automaticamente... il sito come fa a verificare che è lui e non un altro?
    L'unica soluzione che mi è venuta in mente è personalizzare il link che riceve via mail con una variabile get che mi segnala che è stato proprio lui a visualizzare e non un altro del tipo
    sito.it/visualizzacommenti.php?idarticolo=x&idutente=y
    dove x= è l'articolo (e cè già nel mio codice) e y è l'id dell'utente.
    E' corretta una soluzione del genere o di solito ci si comporta in modo diverso?
    Spero di esser stato abbastanza chiaro

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Se non usi i cookie e non richiedi un'autenticazione (*) si fa proprio con un link personalizzato.

    (*) se per vedere i contenuti bisogna "loggarsi" ovviamente è sufficiente tener traccia del fatto che si è mandato l'avviso e questo "flag" si resetta quando l'utente si logga nuovamente.

  3. #3
    non uso cookie e i contenuti sono visibili a tutti, allora inizio a lavorarci con il link personalizzato
    sono contento di averci azzeccato
    grazie!

  4. #4
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Tralasciando la questione tecnica... credi ti convenga fare ciò? Probabilmente avrai le tue ragioni (una delle quali potrebbe essere non intasare la mail dell'utente) ma personalmente se nella mail mi ritrovo 3 email di notifica sono più tentato a correre sul sito a visualizzare i commenti di risposta... non credi?
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  5. #5
    io se mi vedessi arrivare 10 mail quando faccio la domanda stai certo che sarebbe la prima e ultima no a parte gli scherzi preferisco mandare una sola mail, il sito è per un associazione, e questi sarebbero i commenti alle attività che svolgono, le informazioni su ogni attività ci sono quindi le domande saranno poche, prevedo per la maggior parte commenti di apprezzamento o comunque che non necessitano di una risposta, una mail per avvisare mi sembra più che sufficiente

  6. #6
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Ma sono io a voler essere avvisato... se vedo 10 email per me è motivo di orgoglio... vuol dire che il mio commento ha suscitato interesse ahaha

    Effettivamente vista la natura del sito forse è meglio cosi, hai ragione... buon lavoro
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    potresti anche inserire un flag di "invio notifica mandato" accanto agli utenti con l'indicazione di "fin dove" è mandata la notifica (es. un id del post) e poi mandarla ogni volta che l'ultimo post è - per es. - dopo altri 10 o roba del genere...

  8. #8
    grazie ma ormai sto già scrivendo il codice xD

    codice:
    function commenta($id){
                session_start();
                $mail=$_SESSION['mailutentelog'];
                $data_attuale=date('Y-m-d H:i:s');
                $commento=$_POST[commento];
                $aggiornami=1;
                if(isset ($_POST[mail])== false){
                    $aggiornami=0;
                }
                $query="INSERT Commenti (IDprogetto,mailutente,testo,data,ID,aggiornami) VALUES ('".$id."', '".$mail."', '".$commento."', '".$data_attuale."', NULL,'".$aggiornami."');";
                require_once("../gestione/config.php");
                $db= new connessione();
                $db->connetti();
                $q=mysql_query($query);
                if($q==false){
                    echo "ERRORE NELLA QUERY 
    ".$query;
                }
                aggiorna_utenti($mail,$id);
                $db->disconnetti();
                //header("Location: ".$_SERVER['HTTP_REFERER']);
            }
            
            function aggiorna_utenti($mail,$idprogetto){
                $query="SELECT DISTINCT mailutente, id FROM Commenti WHERE idprogetto=".$idprogetto." AND aggiornami=1 AND mailletta=1";
                echo $query;
                require_once("../gestione/config.php");
                $db= new connessione();
                $db->connetti();
                $q=mysql_query($query);
                if($q==false){
                    echo "ERRORE NELLA QUERY 
    ".$query;
                }
                else{
                    require_once('../phpmailer/class.phpmailer.php');
                    while($riga=mysql_fetch_array($q)){
                        if($mail!=$riga[mail]){
                            $messaggio = new PHPmailer();
                            $messaggio->IsHTML(true);
                            $messaggio->From='aggiornamento@latanadelletradizioni.it';
                            $messaggio->FromName='La Tana Delle Tradizioni';
                            $messaggio->AddAddress($riga[mailutente]);
                            $messaggio->AddReplyTo('aggiornamento@latanadelletradizioni.it');
                            $messaggio->Sender='raggiornamento@latanadelletradizioni.it';
                            $messaggio->Subject='Risposta al tuo commento';
                            $messaggio->Body = '<html><body><head><style></style></head>';
                            $messaggio->Body .= 'Qualcuno ha risposto al tuo commento
    ';
                            $messaggio->Body .='Per vedere la risposta clicca qui';
                            //non rispondere a questa mail(altra mail), per non ricevere più aggiornamenti clicca qui
                            $messaggio->Body .= '</body></html>';
                            $messaggio->AltBody="testo mancante";
                            $messaggio->Send();
                            echo $riga[mailutente].'
    ';
                            $messaggio->SmtpClose();
                            $query2="UPDATE Commenti SET mailletta=0 WHERE id=".$riga[id].";";
                            mysql_query($query2);
                            echo '
    '.$query2;
                        }
                    }
                }
            }

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.