Visualizzazione risultati 1 fino 15 di 15

Discussione: Creare lista delle possibili sottoscrzioni

  1. #1
    Guest

    Predefinito Creare lista delle possibili sottoscrzioni

    ciao gente.
    sto creando un sito che ha argomenti che possono essere inseriti liberamente dall'amministratore.
    esempio
    ARGOMENTO A
    ARGOMENTO B
    ARGOMENTO C

    nel pannello di controllo per gli utenti, vorrei creare una lista per le sottoscrizioni tipo:

    caro utente pippo, questi sono gli argomenti presenti, seleziona le checkbox degli che ti interessano per avere un'email di notifica ogni volta che ci sono nuovi messaggi...

    come si può fare?

    e poi, come mando un'email agli interessati?
    (non mi interessa il comando mail(), bensì un eventuale algoritmo che implementerei poi io, che dica:
    "ok, questi utenti hanno la sottoscrizione attiva, per cui gli mando la mail")

    grazie.

  2. #2
    Guest

    Predefinito

    - crei una tabella dove inserisci tutti gli argomenti
    - crei una tabella dove inserisci i messaggi di ogni argomento. Ricordati un campo dove inserisci l'id della categoria dell'argomento.
    - nel pannello di amministrazione inserisci 2 pagine: una per inserire nuovi argomenti, l'altra per inserire dei messaggi nei vari argomenti.
    - nel pannello dell'utente fai un ciclo degli argomenti con una checkbox per selezionare gli argomenti da scegliere. Dovrai fare anche un controllo che se la checkbox non è selezionata, deve eliminare la sottoscrizione
    - ora crei una nuova tabella con tutte le sottoscrizioni degli utenti, inserendo 3 campi: id, id_argomento, id_utente
    - quando inserisci un nuovo messaggio fai una query dove prendi dalla tabella delle sottoscrizioni gli utenti con l'id dell'argomento inserito e invii l'email.
    ----------------------------------------------------------------

    Questa è la "teoria" del lavoro che devi fare.

  3. #3
    Guest

    Predefinito

    ok grazie.
    proverò.
    se possibile non chiudete subito il topic.

    ciao ciao.
    grazie.

  4. #4
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Ti ricordo che puoi mandare al massimo tre e-mail ogni due secondi. Quindi se la lista è lunga l'e-mail verrà spedita solo ai primi dell'elenco.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da funcool
    Ti ricordo che puoi mandare al massimo tre e-mail ogni due secondi. Quindi se la lista è lunga l'e-mail verrà spedita solo ai primi dell'elenco.
    questo blocco si può "aggirare" utilizzando o usleep() oppure aggiungendo i vari indirizzi come bbc

  6. #6
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da jostock
    questo blocco si può "aggirare" utilizzando o usleep() oppure aggiungendo i vari indirizzi come bbc
    Consiglio il secondo metodo perché con il primo rischi di superare i secondi limite per processare una pagina PHP.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  7. #7
    Guest

    Predefinito

    che intendete con "aggiugnere indirizzi come BBC"?

  8. #8
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Quando scrivi un'e-mail di solito per gli indirizzi hai i seguenti campi: A, CC e BCC.
    A sarebbe l'indirizzo principale a cui mandi l'e-mail.
    CC sono tutti gli indirizzi secondari a cui mandi l'e-mail.
    BCC funziona come CC solo che quando leggono l'e-mail non vedono a chi hai mandato l'e-mail oltre a loro.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  9. #9
    Guest

    Predefinito

    ah ok, quindi invece di amndare un'email singola, ne mando una sola in blocco, usando il Bcc, per nascondere gli altri?

    come si inseriscono i destinatari in Bcc?

  10. #10
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Guarda questa guida.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  11. #11
    Guest

    Predefinito

    ok apposto, fatto e capito.
    grazie.
    ora sto cercando di capire come mi convenga fare per creare le sottoscrizioni...

    le tabelle erano già presenti per cui l'idea che avevo era giusta...

    solo che sono in empasse...

    nel pannello di controllo con una cosa così:
    Codice PHP:
    $q = mysql_query("SELECT * FROM bloggati") or die(mysql_error());
    while(
    $row = mysql_fetch_array($q)){

    echo
    "<tr><td>$row[nome] $row[cognome]</td><td align=center><input type=checkbox name='c".$z."' value='$row[id_bloggato]'></td></tr>";
    $z++;
    }
    riesco a visualizzare la lista dei blog che possono essere sottoscritti...
    creo pure la checkbox con l'id del blog di interesse...
    processerei i valori con uno scan dei box selezionati, li metto in una listaid e faccio un insert nelle sottoscrizioni...

    la cosa che non so fare è:
    far apaprire i checkbox selezionati/deselezionati a seconda che la sottoscrizione sia o meno attiva...

  12. #12
    Guest

    Predefinito

    Codice PHP:
    $bloggati = array();
    $q1 = mysql_query("SELECT * FROM nometabella_blog");
    while(
    $row1 = mysql_fetch_array($q1) )
    {
    $bloggati[] = $row1['id'];
    }

    $query = mysql_query("SELECT * FROM bloggati");
    while(
    $row = mysql_fetch_array($query) )
    {
    if(
    in_array($row['blog_id'], $bloggati) )
    {
    //checkbox selezionata
    }
    else
    {
    //checkbox non selezionata
    }
    }
    prova cosi.

  13. #13
    Guest

    Predefinito

    grazie, così sembra andare.

    ora, ho fatto uno script che elabora le checkbox SELEZIONATE dall'utente, e, se manca l'informazione, inserisce nella tabella "sottoscrizioni" l'id_utente con il relativo id del blog cui è sottoscritto.

    non ho la minima idea di come poter fare l'altra cosa: cioè annullare le sottoscrzioni corrispondenti ai check non selezionati... :(

    Codice PHP:

    $id_utente
    = $_GET['id_u'];

    foreach (
    $_POST['check'] as $key => $id_bloggato){
    $check = mysql_query("SELECT * FROM sottoscrizioni WHERE id_bloggato='$id_bloggato' AND id_utente='$id_utente'");
    if(
    mysql_num_rows($check)<=0){
    $query = "INSERT INTO sottoscrizioni (id_sub, id_bloggato, id_utente) VALUE ('', '$id_bloggato','$id_utente')";
    mysql_query($query);
    }
    }

  14. #14
    Guest

    Predefinito

    Codice PHP:
    $id_utente = $_GET['id_u'];

    foreach (
    $_POST['check'] as $key => $id_bloggato){
    $check = mysql_query("SELECT * FROM sottoscrizioni WHERE id_bloggato='$id_bloggato' AND id_utente='$id_utente'");
    if(
    mysql_num_rows($check)<=0){
    $query = "INSERT INTO sottoscrizioni (id_sub, id_bloggato, id_utente) VALUE ('', '$id_bloggato','$id_utente')";
    mysql_query($query);
    }
    else
    {
    $query = mysql_query("DELETE FROM sottoscrizioni WHERE id_bloggato = '$id_bloggato' AND id_utente = '$id_utente'");
    }
    }
    prova cosi.

  15. #15
    Guest

    Predefinito

    io l'ho implementato molto piu alla porcona.
    ho fatto un'altra colonna con un tasto "cancella".
    l'utente seleziona quelle che vuole cancellare e preme invio.
    una query elimina le righe dalla tabella...

    il tuo poi, non so se funziona, scusa se te lo chiedo, ma sono una pippa in php :) ,
    quel ciclo foreach non dovrebbe agire SOLO sui checkbox selezionati?


    EDIT: NOTE:
    il codice sopra era sbagliato, non funzionava bene, lasciava sempre una casella di spunta attiva.
    l'ho rifatto così:
    Codice PHP:
    $q1 = mysql_query("SELECT * FROM bloggati");
    while(
    $row1 = mysql_fetch_array($q1)){
    echo
    "<tr><td>$row1[nome] $row1[cognome]</td><td align=center>";
    $sub = mysql_query("SELECT * FROM sottoscrizioni WHERE id_utente='$id' AND id_bloggato='".$row1['id_bloggato']."' ");
    if(
    mysql_num_rows($sub) <= 0){
    echo
    "<input type=checkbox name=check[] value='$row1[id_bloggato]'></td>";
    }
    else{
    echo
    "<input type=checkbox name=check[] value='$row1[id_bloggato]' checked></td>";
    echo
    "<td align=center><input type=checkbox name=checkD[] value='$row1[id_bloggato]'></td>";
    }
    }

    FunCool: Non fare UP, usa il tasto Edita.
    Ultima modifica di funcool : 04-06-2006 alle ore 17.07.09

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •