Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777

    [PHP/MYSQL]avvisami via mail della presenza di nuovi commenti

    ciao
    ho una tabella mysql dove deposito tutti i commenti del blog fatta cosi
    id nome_utente comment tipo_pagina id_pagina titolo ecc
    ora vorrei fare un sistema che avvisi l'utente della presenza di nuovi commenti qualora lui abbia selezionato il checkbox del form dei commenti.
    allora faccio la funzione mail ma non sta li il problema..
    come faccio a far capire al php che dopo l'utente ci sono altri utenti ad aver scritto altri commenti?
    avevo pensato a un cookie che memorizzasse l'id e id_pagina e poi operare un confronto con l'ultimo id dei commenti che per forza di cose è maggiore a quello dell'utente....
    idee?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    mi è venuta una mezza idea
    quando l'utente seleziona il checkbox per le notifiche e fa il submit inserisce in un campo notify il valore 1
    poi quando un'altro utente manda il messaggio manda la mail contenente il messaggio a tutte le mail degli utenti che hanno partecipato alla discussione che hanno il valore 1
    ho fatto cosi:
    Codice PHP:
            $send_notifymysql_query("SELECT mail FROM commenti WHERE notify='1' AND page=$pag AND sezione='$sez'");

        while(
    $sendmysql_fetch_array($send_notify)){
            
    $to_notify$send['mail'];
            if(
    $to_notify != $mail){
            
    $object"Notifica della discussione";
            
    $header "From: Atuttascienza<mail di atuttascienza>\r\n";
            
    $messaggio="Un nuovo commento è presente riguardo la discussione alla quale ti sei sottoscritto dal titolo \"bla bla\".\n\nAutore:\"$nome\"\n\nCommento:\n\n$commento";
            
    mail($to_notify ,$object$messaggio$header);

            }
            } 
    vorrei chiedervi se il ragionamento fila
    prelevo mail che hanno valore 1 relative alla discussione
    mando le mail a tutti tranne che a me ($mail)

  3. #3
    Non ho ben capito la tua domanda.

    Ma non ti basta semplicemente inserire, nello script che inserisce un nuovo commento, la funzione mail che invia la notifica via email che è stato aggiunto un nuovo commento?

    Se mai, spero te l'abbia fatto, fai passare, tramite querystring, o in altro modo, il titolo di ciò che si sta commentando, almeno da poter inviare anche quel dato via email.

    Era questo che intendevi?

    EDIT:

    Ma te devi inviare una notifica a te o agli utenti che hanno inserito un commento in quella discussione?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    allora ho il form commenti
    ho una checkbox che permette all'utente che commenti di sottoscriversi alla discussione
    quando lancia il submit del commento nella riga del commento c'è un campo notify che riceverà il valore 1(se non è sottoscritto il valore è 0)
    al lancio del submit
    faccio una query dove prelevo tutte le mail degli utenti sottoscritti alla discussione con notify uguale a 1 per mandare a tutti i sottoscritti il nuovo commento
    nel caso fosse iscritto l'utente che ha lanciato il commento dico al php di escluderlo...
    lo script pare funzionare c'è una piccola falla ancora però.
    nel caso lo stesso utente selezioni per due volte il checkbox di notifica, nel momento della query mi preleva la mail dell'utente due volte...se non sbaglio per non avere doppioni devo usare distinct ma non sono pratico...come si fa?
    i

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    credo di aver capito
    SELECT DISTINCT mail giusto?

  6. #6
    Originariamente inviato da amphioxus
    ...
    nel caso lo stesso utente selezioni per due volte il checkbox di notifica, nel momento della query mi preleva la mail dell'utente due volte...
    Scusa ma questa cosa non la capisco. Cosa importa quante volte l'utente seleziona la checkbox di notifica?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    nel caso lo stesso utente seleziona più volte la checkbox di notifica gli arrivano tante mail quante volte l'ha selezionata...
    facendo il distinct gli arriva una sola volta perchè la query elimina eventualmente i doppioni
    esempio:
    antonio
    anto@ls.it
    se lui manda due commenti selezionando la check box avrò nella tabella due commenti con notify uguale a 1...il codice nel momento di prelevare le mail prende tutte quelle con notify uguale a 1 infischiandosene delle mail doppioni..facendo il distinct lo considera solo una volta

  8. #8
    Beh c'è un problema di fondo allora che non si risolve con una semplice distinct. La distinct potrebbe farti funzionare l'applicativo, ma ciò non toglie che esso è concettualmente errato. Fammi capire...ogni volta che l'utente seleziona la checkbox fai una insert di un nuovo record nel DB? Ti prego dimmi di no!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    il commento non viene mandato se nome mail captcha e commento sono vuoti per cui anche se selezione la checkbox non succede nulla...quindi su questo punto di vista l'eventualità di cui parli viene bloccata....

    scusami
    allora prelevo le mail degli utenti che hanno partecipato alla discussione che hanno notify uguale a 1...tra queste escludo la mail dell'utente che manda l'ultimo messaggio (non avrebbe senso che chi manda il messaggio ricevesse la mail con il suo stesso messaggio).
    un utente che ha sottoscritto e ha più commenti nella discussione avrà in seguito ai suoi commenti notify uguale a 1 se questo per errore seleziona la checkbox sempre..questo comporterebbe l'invio di tante mail doppione ma facendo il distinct ne considera sono una e manda il commento nuovo

  10. #10
    Si la distinct risolve sicuramente il problema dei doppioni, ma io rivedrei la logica dell'applicativo. Evidentemente non è corretto che il campo notifica si trovi nella stessa tabella dei commenti. E' un'informazione ridondante. Dovresti rivedere la struttura del DB. In ogni modo la distinct potrebbe essere una soluzione veloce, ma io la vedrei più come una "pezza"
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.