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

    Creare un sistema di gestione newsletter

    Ciao a tutti vorrei creare un sistema per la gestione delle newsletter con iscrizione utenti. Un sistema dove poter inviare mail in html e tutto il resto.

    La newsletter è per un giornale online. Vorrei sapere c'è un modo per far pescare alla newsletter le ultime notizie presenti sul DB? O non si fa?

    grazie a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    fare si può fare, la domanda è quanto saranno felici gli utenti iscritti di riceverla :P

    scherzi a parte è abbastanza semplice, metti il codice php in un file a parte, non accessibile da browser (mettilo fuori dalla webroot).

    nel file fai fare la query alle tabelle che ti interessano per costruire il messaggio, e un altra query per ricercare nella tabella utenti l'elenco delle mail degli utenti.

    a quel punto usa la funzione mail per inviare il testo.

    per far partire lo script imposta un cron sul server in maniera tale che lo esegua ogni tot giorni.

    premetto che non ho mai dovuto gestire ML quindi non so dirti a livello di "non finire blacklistato per spam" cosa fare o non fare.

  3. #3
    Ok grazie mille per l'aiuto.
    Prima domanda! Come faccio ad inserire un file non accessibile da browser (mettilo fuori dalla webroot).? Sono su server Linux Aruba. E sempre su Aruba posso implementare un cron sul server in maniera tale che lo esegua ogni tot giorni?

    Dovessi partire da zero. Nel senso, siccome non ho ancora realizzato l'applicazione. Nickcv o qualcun altro saprebbe darmi qualche link o qualche dritta, consiglio per realizzare un'applicazione per la gestione di newsletter efficiente.

    Ecco come vorre procedere :
    1) Form di iscrizione
    2) Db utenti registrati
    3) Applicativo per l'invio di email in formato testo e HTML
    4) Possibilià dell'utente di cancellarsi
    5) Il server è su Aruba Linux base, quindi fino a quante email è possibile inviare? E' possibile suddividere in pacchetti di email?
    6) Metodo per non finire nelle black list.
    7) Qualsiasi altro consiglio è ben accetto

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    non uso aruba dal paleolittico quindi non so dirti se hanno permesso di schedulare dei cron, nè se finalmente ti permettono di caricare file fuori dalla webroot.

    alcuni servizi di hosting quando ti colleghi in ftp ti danno accesso ad una prima directory, che ne contiene un altra (che per praticità di esempio chiameremo http)

    quello che metti dentro http è quello che visualizzi andando all'indirizzo:

    ipotizziamo quindi la seguente struttura:

    /www.example.com
    /www.example.com/http

    quando vai nel browser all'indirizzo www.example.com il server pubblica il contenuto a partire dalla cartella http (che è la webroot)
    quindi qualunque file posizioni fuori dalla cartella http non è raggiungibile tramite una chiamata verso il server, ma il server stesso è in grado di raggiungerla, così come un tuo eventuale script php situato all'interno della webroot è in grado di richiamare un file al di fuori della stessa (impostazioni di apache e php permettendo)

    questa pratica viene normalmente adottata per file che contengono informazioni vitali all'applicazione ma che l'utente non deve in alcun modo poter accedere direttamente, vedi ad esempio i dati di connessione al database.

    in questo modo lo script php che l'utente può chiamare quando naviga nel sito può richiamare i dati di connessione al db ed usarli per connettersi allo stesso ma è impossibile per tramite browser arrivare alla pagina.
    Questo aggiunge un notevole livello di sicurezza.

    Se aruba comunque non ti permette di impostare dei cron dovrai gestirli tu in maniera diversa da php, ad esempio impostando una tabella sul db che riporti l'ultima esecuzione del cron e far sì, ad esempio, che quando un utente accede ad una determinata pagina del sito viene effettuato un controllo sull'ultima data. se almeno tot giorni sono passati lancia lo script che invia la mail ed aggiorna la data sul db.

    comunque visto che dovresti costruire tutto da zero ti conviene affidarti ad un framework (se hai qualche skill di programmazione) visto che molti hanno integrato un modulo auth per gestire riconoscimento degli utenti, o ad un CMS, che probabilmente ha già tutto montato compresa la gestione della ML

  5. #5
    Ok ma se volessi intrapendere la via dello svuluppo dell'applicazione? C'è qualche tutorial che mi può dare un ottimo spunto?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    la gestione di utenti, gruppi e permessi se la vuoi fatta bene (da un punto di vista di codice, pulizia, mantenibilità e sicurezza) è più complicata di quello che credi...

    io sto sviluppando un modulo per un framework per fare quello in questi giorni e sono a 61 file :P

    dovresti iniziare da qualche tutorial base di php che ti insegni per bene le basi, ne trovi su questo sito come su w3schools

  7. #7
    Grazie nickcv.

    Qualcuno sa darmi qualche link più preciso o comunque qualche consiglio un pò più dettagliato?

  8. #8

    Ciao

    Ciao

    se per esempio devi fare una newsletter,

    puoi fare cosi' dopo la connessione:


    --------------------- nella pag. index.php ------------


    <body>

    <div1>
    <div2>

    <form action="iscrizione.php" method="post" name="form1">



    Nome:
    <input type="text" name="nome" id="nome"/>
    </p>



    Mail:
    <input type="text" name="mail" id="mail"/>
    </p>




    <input type="submit" name="submit" value="iscrivimi" />
    </p>

    </form>

    </div>
    </div>




    ------------------ nella pag. iscrizione.php ------------

    prima della zona newsletter


    $nome=$_POST['nome'];
    $mail=$_POST['mail'];
    $sql= "INSERT INTO nometuodatabase .`iscritti` (`isc_id`, `isc_mail`) VALUES (NULL, '$mail')";


    function check_mail($m){

    // verificare la @ in $m

    $pos=strpos ($m,'@');
    if ($pos<2) return false;

    $dominio=substr ($m, $pos+1);
    $pos_punto=strpos($dominio,'.');
    if ($pos_punto<3) return false;

    $top_domain=substr ($dominio,$pos_punto+1);
    if (strlen($dominio)<2) return false;

    return true;
    }



    <body>

    <div id="newsletter">



    Ciao

    <?php echo "$nome";?>,


    grazie per esserti iscritto alla Newsletter.



    </p> La tua mail e' <?php echo "$mail";?>

    <?php
    if(!check_mail($mail)){
    echo ",ed e' sbagliata!!!";
    }else{
    $eseguo=mysql_query($sql);
    }
    ?>


    home</p>

    </div>

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    1

    ciaooo

    ciao,

    interessante questo forum, prendo spunto per farti vedere come potresti creare una

    una zona notizie :




    in entrambe all'inizio ci vanno sempre le connessioni al mysql e al database, con le relative chiusure, se ti mancano posso postartele, ma qui sui forum ce ne sono tantissime :



    nella prima pagina in questo modo usando il php :

    <?php
    // x vedere la data non in stile paesi anglofoni (anno/mese/giorno)
    function format_date ($d) {
    $a=explode("-",$d);
    $t=mktime (0,0,0,$a[1],$a[2],$a[0]);
    return date ("d/m/Y",$t);

    ?>

    poi nel body

    <div id="notizie">

    <?php
    $sql= "SELECT * FROM `news` ORDER BY `news`.`new_id` ASC LIMIT 0, 3 ";
    $risultato=mysql_query ($sql);
    while ($riga=mysql_fetch_array($risultato)) {
    $new_id=$riga['new_id'];
    ?>

    <div id="interno">

    <?php echo format_date ($riga['new_data']) ?>


    <?php echo $riga ['new_titolo'] ?>

    <a href="news.php?id=<?php echo $new_id ?>">

    [img]immagini/pulsante.jpg[/img]</a>

    </div>

    <?php
    }
    ?>

    </div>



    e nella pagina news.php

    </head>
    <body>


    <div id="notizie">

    <?php

    //con Get si passano tutte le informazioni nella pagina successiva
    $id= $_GET['id'];
    $sql = "SELECT * FROM `news` WHERE `new_id` = $id ORDER BY new_data LIMIT 0, 3 ";
    $risultato=mysql_query ($sql);
    while ($riga=mysql_fetch_array($risultato)) {
    $new_id=$riga['new_id'];

    ?>

    <div id="interno">


    <?php echo $riga['new_titolo']?>


    <?php echo $riga['new_testo']?></p>
    </div>

    <?php
    }
    ?>

    </div>


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.