+ Rispondi alla Discussione
Risultati da 1 a 35 di 35

[Script] Newsletter senza DATABASE 1.1

Ultimo Messaggio di gerico1980 il:
  1. #1
    Esperto L'avatar di scwd
    Data Registrazione
    Jan 2008
    Località
    Ciampino, Roma, Italia, Europa, Mondo, Sistema Solare
    Messaggi
    631

    [Script] Newsletter senza DATABASE 1.1

    Newsletter senza utilizzo di database (1.1).
    Questo script è rivolto a tutti coloro che non hanno un dominio con un database Mysql e che
    vogliono però implementare una funzione di newsletter nel proprio sito web.
    File dello script:
    · config.php
    · cancella.php
    · gestione.php
    · invio_newsletter.php
    · newsletter.php
    · utenti.php
    · login.php
    Per prima cosa, la teoria sulla sicurezza.
    Molti di voi potranno pensare, ma quanto mi conviene utilizzare uno script senza database?
    Non è poco sicuro utilizzare dei file come database?
    La risposta a queste domande è indubbiamente SI ma ho lavorato per far si che questo
    problema diventi minimo, il nostro file dati si reggerà su una pagina con estensione “.php” e
    non su un file di testo qualunque. Chiaramente il file non viene modificato come un file di testo
    ma bensì con un’operazione più complessa per garantire più sicurezza. Passiamo ai fatti per
    spiegare la situazione più semplicemente.
    Ecco il nostro file di dati chiamato utenti.php:
    Codice PHP:
    <?PHP
    $users
    []="[email protected]";
    $users[]="[email protected]";
    ?>
    Il file nell’esempio è riempito da due indirizzi di posta elettronica, come potete vedere gli
    indirizzi sono inseriti in un array, quindi se viene richiamato tramite browser il file utenti.php
    non visualizzerà nulla dato che non ci sono stampe a video. Purtroppo per avere questo pizzico
    di sicurezza in più perdiamo un po’ in velocità nella modifica del file.
    Il file delle configurazioni (config.php):
    Codice PHP:
    <?PHP
    /***************
    *  config.php  *
    *     SCWD     *
    ***************/

    //Per prima cosa avvio la sessione così non ripeto dove serve questo comando
    session_start();

    $nome_sito="SCWD"//Nome del sito

    $admin_nick="admin"//Nickname amministratore (di default admin)
    $admin_passw="21232f297a57a5a743894a0e4a801fc3"//Password amministratore in MD5! (di default admin in md5)

    $home_page="http://www.xxx.xx";//Indirizzo dell'home-page del tuo sito (http://www.xxxxxxx.xxx) 
    $url_cancellati="http://www.xxx.it/newsletter/cancella.php";//Url completa di dove si trova la pagina (di default cancellati.php) che cancella gli utenti registrati (es. http://www.xxxxxxxxx.xxx/xxxxxx/cancellati.php)
    $torna_home="Torna all'<a href=\"$home_page\">home page</a>."//Testo da visualizzare per tornare all'home del tuo sito
    $db_utenti="utenti.php"//nome o url completa di dove si trova il file contenente tutti gli utenti registrati

    $err_mail="Attenzione e-mail inserita non valida."//Errore dell'inserimento dell'e-mail
    $err_mail_esistente="Attenzione e-mail inserita già presente."//Errore che indica che l'e-mail già è presente nell'array
    $err_mail_inesistente="Attenzione e-mail non presente nei nostri archivi"//Indica che l'e-mail che si vuoi cancellare non è presente
    $delete_mail="Attenzione per cancellarti dalla newsletter devi inserire il tuo indirizzo di posta elettronica:"//Testo per cancellarsi dalla newsletter
    $delete_mail_confermato="$del_mail correttamente cancellata. Spiacenti di non averti più qui con noi."//E-mail cancellata dalla newsletter correttamente
    $inserire_nick="Inserisci il nickname"//Login (nick) amministratore
    $inserire_passw="Inserisci la password"//Login (password) amministratore
    $registrato_ok="$mail - correttamente registrata.";
    $testa_news="<h1>SCWD</h1><hr>"//La testa dell'e-mail
    $coda_news="______________________________________________________________________________________<br />
                Ti è arrivata questa e-mail perchè registrato alla newsletter di 
    $nome_sito.<br />
                Per non ricevere più newsletter <a href=\"
    $url_cancellati\">clicca qui</a><br /><br /><br />"//La fine dell'e-mail
                
    $HTML_text_transform=1//Nel testo dell'e-mail, se settato, trasforma automaticamente gli "a capo" con <br />. Di default è settato.

    $email_notify="[email protected]"//Indirizzo e-mail dove verranno inviati i backup degli utenti registrati alla newsletter
    $notify_deleted=1//Abilita la notifica tramite mail quando un utente si cancella dalla newsletter, inoltre fa un backup di tutti gli utenti presenti e lo invia tramite e-mail all'indirizzo della riga precedente.
    $notify_subscribed=1//Abilita la notifica tramite mail quando un utente si iscrive alla newsletter, inoltre fa un backup di tutti gli utenti presenti e lo invia tramite e-mail all'indirizzo specificato due righe sopra.
    ?>
    Questo è un normale file di configurazione, le variabili più importanti da cambiare sono:
    · $nome_sito;
    · $admin_nick;
    · $admin_passw;
    · $home_page;
    · $url_cancellati;
    · $db_utenti;
    Nel codice in alto è già tutto commentato comunque velocemente vediamo i più importanti:
    · $nome_sito è il nome del vostro sito (es. SCWD);
    · $admin_nick è il nick dell'amministratore per accedere alla gestione della newsletter;
    · $admin_passw è la password dell'amministratore per accedere alla gestione della
    newsletter criptata in MD5 (quindi inserire la vostra passworda già criptata);
    · $home_page è l'indirizzo dell'home page del vostro sito, l'importante è specificare
    http://www.xxxx.xxx;
    · $url_cancellati è l'indirizzo di dove si trova il file cancellati.php (che vedremo più avanti)
    anche qui si DEVE specificare l’url completo
    http://www.xxx.xxx/newsletter/cancellati.php;
    · $db_utenti è il nome del file dove vengono memorizzate le e-mail (di default è
    utenti.php);
    Nuove funzioni implementate in questa versione dello script rispetto la vecchia 1.0:
    Codice PHP:
    $HTML_text_transform=1//Nel testo dell'e-mail, se settato, trasforma automaticamente gli "a capo" con <br />. Di default è settato.
    $email_notify="[email protected]"//Indirizzo e-mail dove verranno inviati i backup degli utenti registrati alla newsletter
    $notify_deleted=1//Abilita la notifica tramite mail quando un utente si cancella dalla newsletter, inoltre fa un backup di tutti gli utenti presenti e lo invia tramite e-mail all'indirizzo della riga precedente.
    $notify_subscribed=1//Abilita la notifica tramite mail quando un utente si iscrive alla newsletter, inoltre fa un backup di tutti gli utenti presenti e lo invia tramite e-mail all'indirizzo specificato due righe sopra. 
    I commenti specificano tutto come sempre nel dettaglio, si potranno scegliere comunque tre
    opzioni, la prima è se trasformare il testo in HTML ($HTML_text_transform) e serve per il testo
    della newsletter da inviare (per far leggere correttamente i caratteri speciali). La seconda e la
    terza sono le notifiche di iscrizione cancellazione dal servizio, ogni qual volta un utente si
    iscriva o cancelli dalla newsletter verrà inviata una e-mail all’amministratore all’indirizzo
    $email_notify. Tutte e tre le funzioni possono essere disalbilitate, di default però sono attive.
    Per disabilitare una funzione assegnare valore 0 anziché 1.
    IMPORTANTE: Se volete rinominare il file config.php dovete stare attenti a cambiare in tutte le
    pagine il vecchio config.php con il nuovo_nome.php!
    Accesso all’amministrazione tramite il file login.php:
    Codice PHP:
    <?PHP
    /***************
    * login.php *
    *     SCWD     *
    ***************/
    require ('config.php');

    if(isset(
    $_POST['login'])) //Se il login è stato effettuato controlla...
    {
        if((!isset (
    $_POST['nick']))||(!isset ($_POST['passw']))) // Controlla se i valori passati dal form siano nulli.
        
    {    
            
    //VALORI NULLI\\
            
    echo "Errore: i campi nickname e password non possono contenere un valore nullo.
            <!-- EFFETTUO UN REDIRECT A QUESTA PAGINA -->
            <script type=\"text/javascript\">
            <!--
            function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
            location.href = \"login.php\";
            }
            window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi
            //-->
            </script>
            <br />Se entro 4 secondi non vieni reindirizzato al form <a href=\"login.php\">clicca qui</a>.<br />
            "
    ;
            exit();
        }
        else{ 
    //I valori passati tramite il form non sono nulli
            
    $nick=$_POST['nick'];
            
    $passw=$_POST['passw'];
            
    $passw=md5($passw);
            
    //Controllo che i dati inseriti siano corretti
            
    if(($nick==$admin_nick)&&($passw==$admin_passw)) //Se i dati coincidono
            
    {
                
    //LOGIN EFFETTUATO CORRETTAMENTE\\
                
                //Creo la sessione
                
    $_SESSION['nickname']=$nick;
                
    $_SESSION['password']=$passw;
                
                
                echo 
    "Login effettuato correttamente.
                <!-- EFFETTUO UN REDIRECT ALLA PAGINA DI GESTIONE -->
                <script type=\"text/javascript\">
                <!--
                function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
                location.href = \"gestione.php\";
                }
                window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi
                //-->
                </script>
                <br />Se entro 4 secondi non vieni reindirizzato alla gestione newsletter <a href=\"gestione.php\">clicca qui</a>.<br />
                "
    ;
                exit();
            }
            else
            {
                echo 
    "Login errato.
                <!-- EFFETTUO UN REDIRECT A QUESTA PAGINA -->
                <script type=\"text/javascript\">
                <!--
                function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
                location.href = \"login.php\";
                }
                window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi
                //-->
                </script>
                <br />Se entro 4 secondi non vieni reindirizzato al form <a href=\"login.php\">clicca qui</a>.<br />
                "
    ;
                exit();
            }
            
        }
    }
    else
    {
        echo 
    "    <form name=\"login\" action=\"\" method=\"post\">
                <table align=\"center\">
        
                <tr>
                    <td>
                        
    $inserire_nick :
                    </td>
                    <td>
                        <input type=\"text\" size=\"30\" name=\"nick\">
                    </td>
                </tr>
                
                <tr>
                    <td>
                        
    $inserire_passw :
                    </td>
                    <td>
                        <input type=\"password\" size=\"30\" name=\"passw\">
                    </td>
                </tr>
        
                <tr>
                    <td colspan=\"2\">
                        <input type=\"submit\" value=\"Invia\" name=\"login\">
                    </td>
                </tr>
        
                </table>
                </form>"
    ;
    }
    ?>
    Questo è un semplice login con le sessioni.
    Le pagine che ora vedremo verranno commentate ora eppoi postate.
    Non sto qui a dilungarmi if per if ma bensì a spiegare in maniera molto breve cosa succede,
    una volta loggati verremo rimandati alla pagina gestione.php la quale controllerà se siamo
    effettivamente loggati o meno. Se il controllo va a buon fine verrà visualizzato un piccolo menu
    in alto dove si può scegliere di:
    · inviare una nuova newsletter;
    · aggiungere un indirizzo e-mail;
    · cancellare un indirizzo e-mail;
    · visualizzare tutti gli indirizzi e-mail;
    · effettuare il logout.
    L’invio di una nuova newsletter avviene tramite il file invia_newsletter.php che controllerà i
    campi inseriti ed invierà la newsletter (consiglio di mettere anche il vostro indirizzo e-mail tra
    gli utenti che riceveranno l’e-mail).
    L’eliminazione e l’aggiunta di un indirizzo è il cuore di questo script per il fatto che bisogna
    andare a modificare un file “.php” aggiungendo e cancellando una stringa (esempio della
    stringa da trovare nel file e cancellare):
    $cancellare_mail="$"."users[]=\"$users[$posizione_array]\";"; //Stringa mail da cancellare.
    La visualizzazione degli indirizzi e-mail non è altro che un semplice for che scorre l’array
    users[].
    Il logout distrugge la sessione creata dal login.
    I file.
    gestione.php:
    Codice PHP:
    <?PHP
    /***************
    * gestione.php *
    *     SCWD     *
    ***************/
    require('config.php');
    include(
    "$db_utenti");

        if((!isset (
    $_SESSION['nickname']))&&(!isset ($_SESSION['password'])))// Se non si è loggati rimanda alla pagina di login
        
    {
            echo 
    "Login non effettuato.
                <!-- EFFETTUO UN REDIRECT ALLA PAGINA DI LOGIN -->
                <script type=\"text/javascript\">
                <!--
                function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
                location.href = \"login.php\";
                }
                window.setTimeout(\"doRedirect()\", 3000); //Fa partire il redirect dopo tot. secondi
                //-->
                </script>
                <br />Se entro 3 secondi non vieni reindirizzato al form <a href=\"login.php\">clicca qui</a>.<br />
                "
    ;
            exit();
        }

        else 
    //Se si è loggati...
        
    {            
            
    //Qui sotto un piccolo menù
            
    echo "<center>
            |<a href=gestione.php?operazione=1>Invia newsletter</a>| 
            |<a href=gestione.php?operazione=2>Aggiungi un'e-mail</a>| 
            |<a href=gestione.php?operazione=3>Elimina un'e-mail</a>| 
            |<a href=gestione.php?operazione=5>Visualizza e-mail registrate</a>| 
            |<a href=gestione.php?operazione=4>Logout</a>| 
            </center><br /><br />"
    ;
            
    //switch per controllare cosa far visualizzare
            
    switch($_GET['operazione'])
            {
                case 
    1
                        
    //INVIARE NEWSLETTER
                        
    include("invio_newsletter.php");
                break;
                
                case 
    2:
                        
    //AGGIUNGERE E-MAIL
                        
    echo "
                        <form name=\"aggiungi_email\" action=\"newsletter.php?ctrl=1&amministratore=1\" method=\"post\">
                        <table align=\"center\">
                        <tr>
                         <td>
                          *e-mail
                         </td>
                         <td>
                          <input type=\"text\" size=\"30\" name=\"mail\">
                         </td>
                        </tr>
         
                        <tr>
                         <td colspan=\"2\">
                          <input type=\"submit\" value=\"Invia\" name=\"submit\">
                         </td>
                        </tr>
         
                        </table>
                        </form>
                        "
    ;
                break;
                
                case 
    3:
                        
    //ELIMINARE E-MAIL
                        
    echo "<form name=\"cancellati\" action=\"cancella.php?del=1&amministratore=1\" method=\"post\">
                                <table align=\"center\">
         
                                <tr>
                                 <td>
                                  *e-mail
                                 </td>
                                 <td>
                                  <input type=\"text\" size=\"30\" name=\"del_mail\">
                                 </td>
                                </tr>
         
                                <tr>
                                 <td colspan=\"2\">
                                  <input type=\"submit\" value=\"Invia\" name=\"submit\">
                                 </td>
                                </tr>
         
                            </table>
                            </form>"
    ;
                break;
                
                case 
    4:
                       
    //LOGOUT
                               
    session_destroy();
                            echo 
    "Ti sei disconnesso correttamente<br />
                                Se entro 4 secondi non vieni rimandato all'home page
                                <a href=\"
    $home_page\">clicca qui</a><br />
                                    <script type=\"text/javascript\">
                                    <!--
                                    function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
                                    location.href = \"
    $home_page\";
                                    }
                                    window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi
                                    //-->
                                    </script>"
    ;
                break;
                
                case 
    5:
                        
    //VISUALIZZARE E-MAIL REGISTRATE
                        
    echo "
                        <table align=\"center\">
         
                            <tr>
                                <td>
                                    <b>Indirizzo e-mail</b>
                                </td>
                            </tr>"
    ;
                        
    $numero_utenti=count($users);
                        for(
    $i=0;$i<$numero_utenti;$i++)
                        {
                            echo 
    "
                            <tr>
                                <td>
                                    
    $users[$i] - <a href=cancella.php?del=1&amministratore=1&del_mail=$users[$i]>Elimina</a>
                                </td>
                            </tr>
                            "
    ;
                        }
                echo
    "</table>";
                break;
            }

        }



    ?>
    Ultima modifica di scwd; 24-01-09 alle 17:49

  2. #2
    Esperto L'avatar di scwd
    Data Registrazione
    Jan 2008
    Località
    Ciampino, Roma, Italia, Europa, Mondo, Sistema Solare
    Messaggi
    631
    newsletter.php:
    Codice PHP:
    <?PHP
    /*****************
    * newsletter.php *
    *      SCWD      *
    *****************/

    require('config.php');

    //Passaggio variabili
    if(isset ($_POST['mail']))
        {
    $mail=$_POST['mail'];}
    if(isset (
    $_GET['ctrl']))
        {
    $ctrl=$_GET['ctrl'];}
    if(isset (
    $_GET['amministratore']))
        {
    $amministratore=$_GET['amministratore'];}

        
    if(
    $ctrl==1)
    {
        
    //Verifica forma e-mail
        
    $verifica_mail ereg("^[^@ ][email protected][^@ ]+\.[^@ \.]+$"$mail);
        if(!
    $verifica_mail)
        {echo 
    "$err_mail";
            if(
    $amministratore==1)
            {
                echo 
    "    <br />
                <script type=\"text/javascript\">
                <!--
                function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
                location.href = \"gestione.php?operazione=3\";
                }
                window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi
                //-->
                </script>
                Se entro 4 sencondi non vieni reindirizzato <a href=\"gestione.php?operazione=3\">clicca qui</a>.<br />"
    ;
            }
            else 
            {    echo 
    "    <br />
                <script type=\"text/javascript\">
                <!--
                function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
                location.href = \"newsletter.php?ctrl=0\";
                }
                window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi
                //-->
                </script>
                Se entro 4 secondi non vieni reindirizzato <a href=\"newsletter.php?ctrl=0\">clicca qui</a>."
    ;
            }
            exit();
        }
        
        
    //Verifica se esiste l'e-mail inserita dall'utente
        
    include("$db_utenti"); //Includo utenti.php (o il nuovo nome del file di dati) perchè essendo una pagina contenente un array con tutte le e-mail scorro lo stesso per controllare se l'e-mail inserita non esiste.
        
    $lunghezza_array=count($users); //Conto il numero delle e-mail presenti nell'array
        
    $esiste=0;
        
    $mail_utente_iscritto=$mail;

        for(
    $i=0$i<$lunghezza_array$i++) 
        {
            
    $controllo=strcmp($mail,$users[$i]);
            if(
    $controllo==0)
            {
                
    $esiste=1//Se esiste assegno 1 alla variabile $esiste
            
    }
        }
        
        if(
    $esiste==1//E-mail già esistente
        
    {
            echo 
    "$err_mail_esistente";
            if(
    $amministratore==1)
            {
                echo 
    "    <br />
                <script type=\"text/javascript\">
                <!--
                function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
                location.href = \"gestione.php?operazione=3\";
                }
                window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi
                //-->
                </script>
                Se entro 4 sencondi non vieni reindirizzato <a href=\"gestione.php?operazione=3\">clicca qui</a>.<br />"
    ;
            }
            else 
            {    echo 
    "    <br />
                <script type=\"text/javascript\">
                <!--
                function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
                location.href = \"newsletter.php?ctrl=0\";
                }
                window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi
                //-->
                </script>
                Se entro 4 secondi non vieni reindirizzato <a href=\"newsletter.php?ctrl=0\">clicca qui</a>."
    ;
            }
        }
        else 
    //E-mail non esistente nel file, procediamo alla registrazione dell'e-mail
        
    {
            
    //L'e-mail è salvata nella variabile $mail
            
    $fp fopen($db_utenti,"r+");
            
    fseek($fp, -3,SEEK_END);
            
    $stampa_completa="
        $"
    ."users[]=\"$mail\";
    ?>"
    ;
            
    fputs($fp$stampa_completa);
            
    fclose($fp);
            
            echo
    "$registrato_ok<br />";
            
            if(isset (
    $notify_subscribed)) //Se la notifica è abilitata invia una mail con gli utenti registrati e l'ultimo utente registrato al servizio
            
    {
                
    //Invio notifica all'amministratore della newsletter con gli utenti attualmente registrati al servizio
                
    $numero_utenti=count($users);
                
    $oggetto="Utente iscritto dal servizio";
                
    $header "From: UPDATE: Newsletter $nome_sito <$home_page>\n";
                
    // costruiamo le intestazioni specifiche per il formato HTML
                
    $header .= "MIME-Version: 1.0\n";
                
    $header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
                
    $header .= "Content-Transfer-Encoding: 7bit\n\n";
                
    $messaggio="";
                for(
    $i=0$i<$numero_utenti$i++) //Inserisco dentro al testo del messaggio la lista degli utenti
                
    {
                            
    $messaggio=$messaggio."<br />- $users[$i]";
                }
                
    $messaggio=$messaggio."<br />- $mail_utente_iscritto";
                
    $messaggio=$messaggio."<br /><br />Utente iscritto dal servizio: $mail_utente_iscritto"//Scrivo l'ultimo utente che si è cancellato dal servizio
                
    @mail($email_notify,$oggetto,$messaggio,$header); //Invio il messaggio all'amministratore
            
    }
            
    if(
    $amministratore==1//Se è l'amministratore che cancella l'e-mail deve essere rimandato alla sua pagina di amministrazione
    {
        echo 
    "<br />
                Se entro 4 secondi non vieni rimandato alla gestione newsletter
                <a href=\"gestione.php\">clicca qui</a><br />
                <script type=\"text/javascript\">
                <!--
                function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
                location.href = \"gestione.php\";
                }
                window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi
                //-->
                </script>"
    ;
    }
    else 
    //Se è l'utente che si cancella ritorna all'home page
    {
    echo 
    "    <br />
            <script type=\"text/javascript\">
            <!--
            function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
            location.href = \"
    $home_page\";
            }
            window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi
            //-->
            </script>
            Se entro 4 secondi non vieni reindirizzato alla home page <a href=\"
    $home_page\">clicca qui</a>.<br />";
    }

    }
    }
    else if((!
    $ctrl)||($ctrl==0)) //Form di iscrizione
    {
    echo 
    "    <form name=\"new_email\" action=\"newsletter.php?ctrl=1\" method=\"post\">
        <table align=\"center\">
         
         <tr>
          <td>
            *e-mail
          </td>
          <td>
            <input type=\"text\" size=\"30\" name=\"mail\">
          </td>
         </tr>
         
         <tr>
          <td colspan=\"2\">
            <input type=\"submit\" value=\"Invia\" name=\"submit\">
          </td>
         </tr>
         
        </table>
        </form>"
    ;
    }
    ?>
    cancella.php:
    Codice PHP:
    <?PHP
    /***************
    * cancella.php *
    *     SCWD     *
    ***************/
    require('config.php');
    include(
    "$db_utenti");


    //Passaggio variabili
    if(isset ($_GET['del']))
        {
    $del=$_GET['del'];}
    if(isset (
    $_GET['amministratore']))
        {
    $amministratore=$_GET['amministratore'];}
    //A seconda di chi cancella c'è un metodo di trasmissione dell'e-mail.
    if(isset ($_POST['del_mail']))
        {
    $del_mail=$_POST['del_mail'];}
    else if(isset (
    $_GET['del_mail']))
        {
    $del_mail=$_GET['del_mail'];}

    if(
    $del==1)
    {
        
    $lunghezza_array=count($users); //Conto il numero delle e-mail presenti nell'array
        
    $esiste=0;
        for(
    $i=0$i<$lunghezza_array$i++) 
        {
            
    $controllo=strcmp($del_mail,$users[$i]);
            
            if(
    $controllo==0)
            {
                
    $esiste=1;
                
    $posizione_array=$i//La posizione dell'array da cancellare
            
    }
        }
        if(
    $esiste==0//Se non esiste l'e-mail nel nostro file
        
    {
            echo
    "<br />$err_mail_inesistente<br />";

            if(
    $amministratore==1)
            {
                echo 
    "
                <script type=\"text/javascript\">
                <!--
                function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
                location.href = \"gestione.php?operazione=3\";
                }
                window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi
                //-->
                </script>
                Se non vieni reindirizzato alla gestione entro 4 secondi <a href=\"gestione.php?operazione=3\">clicca qui</a>.<br />"
    ;
            }
            else
            {    echo 
    "
                <script type=\"text/javascript\">
                <!--
                function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
                location.href = \"cancella.php\";
                }
                window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi
                //-->
                </script>
                Se non vieni reindirizzato al form di cancellazione entro 4 secondi <a href=\"cancella.php\">clicca qui.</a>.<br />"
    ;
            }
        }
        else 
    //Se esiste cancella le due righe dell'e-mail dell'utente
    {
        
    $cancellare_mail="$"."users[]=\"$users[$posizione_array]\";"//Stringa mail da cancellare
        
    $mail_utente_cancellato="$users[$posizione_array]";
        
    $str="";
        
    //Copio tutto il file dentro una variabile stringa
        
    $fp=fopen($db_utenti"r");

        while (
    false !== ($c fgetc($fp))) {
        
    $str=$str."$c"//Se si stampa $str non stampa nulla perchè il browser non legge i tag php
        
    }
        
    fclose($fp); //Chiudo il file
        
        
    $str_aggiornato=str_replace("$cancellare_mail"""$str); //Tolgo dalla stringa (che contiene l'intero file) l'e-mail da cancellare
        
        
    $fp=fopen($db_utenti,"w"); //Riapro il file con gli utenti
            
    fputs($fp$str_aggiornato); //Riscrivo il nuovo file senza l'utente cancellato
        
    fclose($fp); //Chiudo nuovamente il file
        
        
    echo"<br />$delete_mail_confermato<br />";
        
        if(isset (
    $notify_deleted)) //Se la notifica è abilitata invia una mail con gli utenti registrati e l'ultimo utente cancellato al servizio
        
    {
            
    //Invio notifica all'amministratore della newsletter con gli utenti attualmente registrati al servizio
            
    $numero_utenti=count($users);
            
    $oggetto="Utente cancellato dal servizio";
            
    $header "From: UPDATE: Newsletter $nome_sito <$home_page>\n";
            
    // costruiamo le intestazioni specifiche per il formato HTML
            
    $header .= "MIME-Version: 1.0\n";
            
    $header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
            
    $header .= "Content-Transfer-Encoding: 7bit\n\n";
            
    $messaggio="";
            for(
    $i=0$i<$numero_utenti$i++) //Inserisco dentro al testo del messaggio la lista degli utenti
            
    {
                    if((
    strcmp($users[$i],$mail_utente_cancellato))!=0// Se sono diverse ritorna un numero diverso da zero quindi copia tutti gli utenti tranne l'ultimo cancellato
                    
    {
                        
    $messaggio=$messaggio."<br />- $users[$i]";
                    }
            }
            
    $messaggio=$messaggio."<br /><br />Ultimo utente cancellato dal servizio: $mail_utente_cancellato"//Scrivo l'ultimo utente che si è cancellato dal servizio
            
    @mail($email_notify,$oggetto,$messaggio,$header); //Invio il messaggio all'amministratore
        
    }
        
        if(
    $amministratore==1//Se è l'amministratore che cancella l'e-mail deve essere rimandato alla pagina di amministrazione
        
    {
                echo 
    "<br />
                    Se entro 4 secondi non vieni rimandato alla gestione newsletter
                    <a href=\"gestione.php\">clicca qui</a><br />
                    <script type=\"text/javascript\">
                    <!--
                    function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
                    location.href = \"gestione.php\";
                    }
                    window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi
                    //-->
                    </script>"
    ;
        }
        else 
    //Se è l'utente che si cancella ritorna alla home page
        
    {
            echo 
    "    <br />Se entro 4 secondi non vieni rimandato all'home page
                    <a href=\"
    $home_page\">clicca qui</a><br />
                    <script type=\"text/javascript\">
                    <!--
                    function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
                    location.href = \"
    $home_page\";
                    }
                    window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi
                    //-->
                    </script>"
    ;
        }
    }

    }
    else
    {
    echo
    "<br /><p align=center>$delete_mail<br /></p>";
    echo 
    "<form name=\"cancellati\" action=\"cancella.php?del=1\" method=\"post\">
        <table align=\"center\">
         
         <tr>
          <td>
            *e-mail
          </td>
          <td>
            <input type=\"text\" size=\"30\" name=\"del_mail\">
          </td>
         </tr>
         
         <tr>
          <td colspan=\"2\">
            <input type=\"submit\" value=\"Invia\" name=\"submit\">
          </td>
         </tr>
         
        </table>
        </form>"
    ;
    }

    ?>
    invio_newsletter.php:
    Codice PHP:
    <?PHP
    /***********************
    * invio_newsletter.php *
    *         SCWD         *
    ************************/

    require('config.php');
    include(
    "$db_utenti");

    if((!isset (
    $_SESSION['nickname']))&&(!isset ($_SESSION['password'])))// Se non si è loggati rimanda alla pagina di login
        
    {
            echo 
    "Login non effettuato.
                <!-- EFFETTUO UN REDIRECT ALLA PAGINA DI LOGIN -->
                <script type=\"text/javascript\">
                <!--
                function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
                location.href = \"login.php\";
                }
                window.setTimeout(\"doRedirect()\", 3000); //Fa partire il redirect dopo tot. secondi
                //-->
                </script>
                <br />Se entro 3 secondi non vieni reindirizzato al form di login <a href=\"login.php\">clicca qui</a>.<br />
                "
    ;
            exit();
        }
        
    //Passaggio variabili
    if(isset ($_GET['step']))
        {
    $step=$_GET['step'];}
        
    if(isset (
    $_POST['testo']))
        {
            
    $testo=$_POST['testo'];
            
    $_SESSION['testo']=$testo;
        }    
    if(isset (
    $_POST['oggetto']))
        {
            
    $oggetto=$_POST['oggetto'];
            
    $_SESSION['oggetto']=$oggetto;
        }
                if(isset (
    $_SESSION['testo']))
                    {
    $testo=$_SESSION['testo'];}
                if(isset (
    $_SESSION['oggetto']))
                    {
    $oggetto=$_SESSION['oggetto'];}
        
    if((
    $step==1)||(!$step))
    {
    echo 
    "<br /><form name=\"invia_newsletter\" action=\"invio_newsletter.php?step=2\" method=\"post\">
        <table align=\"center\">
         
         <tr>
          <td>
            *Oggetto newsletter
          </td>
          <td>
            <input type=\"text\" size=\"30\" name=\"oggetto\">
          </td>
         </tr>
         
         <tr>
          <td>
            *Testo della newsletter<br />(Puoi utilizzare anche tag HTML)<br /><p align=justify><font size=2>Attenzione una volta premuto
            INVIA<br /> ci vorrà del tempo per inviare tutte le e-mail.</font></p>
          </td>
          <td>
            <textarea name=\"testo\" style=\"width: 400px; height: 200px\"></textarea>
          </td>
         </tr>
         
         <tr>
          <td colspan=\"2\">
            <input type=\"submit\" value=\"Invia\" name=\"submit\">
          </td>
         </tr>
         
        </table>
        </form><br />"
    ;
    }
    //Verifica dei dati inseriti
    else if($step==2)
    {
        if((
    $oggetto=="")||($testo==""))
        {
            echo
    "Si sono verificati i seguenti errori:<br />";
            
            if(
    $oggetto=="")
            {
                echo
    "<br />- Oggetto newsletter non inserito;";
            }
            
            if(
    $testo=="")
            {
                echo
    "<br />- Testo newsletter non inserito;";
            }
            
            echo 
    "    <br />
            <script type=\"text/javascript\">
            <!--
            function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
            location.href = \"gestione.php\";
            }
            window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi
            //-->
            </script>
            Se entro 4 secondi non vieni rimandato alla gestione <a href=\"gestione.php\">clicca qui</a>.<br />
            "
    ;
        }
        else 
    //Tutto ok
        
    {
            
    $numero_utenti=count($users); //Numero di utenti registrati alla newsletter
            
            //Modifico il testo:
            
            
    if(isset ($HTML_text_transform)) //Se settato sostuisce alcuni tra i più importanti caratteri speciali
            
    {    
                
    $a_capo="\n";
                
    $testo=str_replace($a_capo,'<br/>',$testo); /*Sostituisce gli "a capo" dati dall'invio della tastiera con <br /> nella stringa del testo;
                                                        per eseguire tale funzione bisogna settare $HTML_text_transform nel file di configurazione.
                                                        La funzione esiste ma non essendo sicuri che sostituisca anzichè con <br />, <br> meglio
                                                        auto-implementarla.*/
                
    $testo=str_replace("\'",''',$testo); //Se trova un'apice la sostituisce con codice html
                
    $testo=str_replace('\"','"',$testo); //Se trova le virgolette le sostituisce con codice html
                
    $testo=str_replace('\\\\','\',$testo); //Se trova un backslash lo sostituisce con codice html
            
    }
            
                        
            
    $header "From: Newsletter $nome_sito <$email_notify>\n";
            
    // costruiamo le intestazioni specifiche per il formato HTML
            
    $header .= "MIME-Version: 1.0\n";
            
    $header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
            
    $header .= "Content-Transfer-Encoding: 7bit\n\n";
            
    $corpo="<br />
                
    $testa_news
                <br />
                
    $testo<br />
                <br />
                <br />
                
    $coda_news";
            
            if(isset (
    $_GET['i_attuale']))
            {
                
    $i_attuale=$_GET['i_attuale'];
                if(
    $i_attuale>0)
                {    
                    if(!isset (
    $_GET['attesa']))
                    {
                            echo 
    "    <br />
                            <script type=\"text/javascript\">
                            <!--
                            function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
                            location.href = \"invio_newsletter.php?i_attuale=
    $i_attuale&step=2&attesa=1\";
                            }
                            window.setTimeout(\"doRedirect()\", 10000); //Fa partire il redirect dopo tot. secondi
                            //-->
                            </script>
                            Per evitare di mandare in blocco il sistema lo script è stato interrotto e riprenderà
                            tra 10 secondi. NON chiudere/aggiornare la pagina.<br /> Se non vieni reindirizzato entro 10 secondi
                            <a href=\"invio_newsletter.php?i_attuale=
    $i_attuale&step=2&attesa=1\">clicca qui</a>.<br />
                            "
    ;
                        exit();
                    }
                }    
                else
                {
    $i_attuale=0;}
            }
            else
                {
    $i_attuale=0;}
                
            
    $controllo_contatore=0;
            for(
    $i=$i_attuale$i<$numero_utenti$i++)
            {
                 if( @
    mail($users[$i],$oggetto,$corpo,$header))
                    {
                        echo 
    "<br /><font face=verdana size=2 color=blue><center>INVIATA - $users[$i].</center></font>";
                    }
                else
                    {
                        echo 
    "<br /><font face=verdana size=3 color=red><center>NON INVIATA -  $users[$i]</center></font>";
                    }
                
    $controllo_contatore++;
                if(
    $controllo_contatore>49)
                {
                    
    $i_attuale=$i+1;
                    echo 
    "    <br />
                        <script type=\"text/javascript\">
                        <!--
                        function doRedirect() { //funzione con il  link alla pagina che si desidera raggiungere
                        location.href = \"invio_newsletter.php?i_attuale=
    $i_attuale&step=2\";
                        }
                        window.setTimeout(\"doRedirect()\", 2000); //Fa partire il redirect dopo tot. secondi
                        //-->
                        </script>
                        Per evitare di mandare in blocco il sistema lo script verrà interrotto e riprenderà
                        tra qualche secondo. NON chiudere/aggiornare la pagina. Se non vieni reindirizzato entro 2 secondi alla pagina di attesa 
                        <a href=\"invio_newsletter.php?i_attuale=
    $i_attuale&step=2\">clicca qui</a>.<br />
                        "
    ;
                    exit();
                }
            }
            echo
    "<br /><br /><a href=\"gestione.php\">Torna alla gestione</a><br /><br />";
            
    $_SESSION['testo']="";
            
    $_SESSION['oggetto']="";
        }
    }

    ?>
    Lo script è impostato per trasmettere le mail a gruppi di 50 per volta attendendo tra un gruppo di invio ed un altro 10 secondi, questo per evitare che il server che lo ospita possa bloccare l'esecuzione dello script.
    Ovviamente è importante non chiudere la pagina fino ad esecuzione terminata.

    Spendo due parole sul perché dell’utilizzo di un redirect in Javascript anziché un header in php:
    semplicemente perché alcuni host non supportano la funzione header, per essere sicuri lo
    faccio in Javascript.
    Ovviamente il tutto non è graficamente composto, quindi può essere adattato nel modo in cui
    pensate sia meglio farlo.
    SCWD


    Quì trovate il pacchetto zippato contenente i file.

    E quì troverete una demo online per testare lo script.
    Buon divertimento.
    Ultima modifica di Samyorn; 31-01-09 alle 16:59 Motivo: Inserito link al pacchetto file, alla demo e aggiornato file d'invio.

  3. #3
    User Newbie
    Data Registrazione
    Jun 2009
    Messaggi
    8
    Non so se si può rispondere qui..visto che nessuno ha risposto...

    Comunque io ho provato ad installare il tuo newsletter, ma mi da alcuni errori.

    Uno è quello che ti appare anche a te nel demo messo a disposizione, e cioè una cosa tipo:

    Warning: include() [function.include]: URL file-access is disabled in the server configuration in D:\Inetpub\webs\lilithstasopracom\public\newslette rs\gestione.php on line 7

    Warning: include(utenti.php) [function.include]: failed to open stream: no suitable wrapper could be found in D:\Inetpub\webs\lilithstasopracom\public\newslette rs\gestione.php on line 7

    Warning: include() [function.include]: Failed opening 'utenti.php' for inclusion (include_path='.;c:\php\includes') in D:\Inetpub\webs\lilithstasopracom\public\newslette rs\gestione.php on line 7

    Nella linea 7 ho: include("$db_utenti");

    nel login anche, se aggiungo una mail nell'opzione aggiungi email, quando clicco su invia mi da un errore:

    Warning: include(utenti.php) [function.include]: failed to open stream: no suitable wrapper could be found in D:\Inetpub\webs\lilithstasopracom\public\newslette rs\newsletter.php on line 53

    in cui ho: include("$db_utenti");

    Insomma da sempre errore riguardo a db_utenti, forse non mi fa scrivere.
    I permessi non sono visto che addirittura ho messo il tutto nella cartella public, e poi ho controllato e sono su 666.

    ----------------------------

    Altro problema nel form del sito in cui la gente immette la mail per iscriversi, al momento di cliccare su invia, mi dice pagina non trovata..
    Dove posso andare a guardare per farlo funzionare?


    Premetto che ho seguito le tue istruzioni, quale modificare il file config.php.

    Spero in una risposta e grazie.
    Ultima modifica di Samyorn; 25-06-09 alle 15:34 Motivo: Maiuscole e punteggiatura.

  4. #4
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,268
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    I permessi non dovrebbero essere a 666, ma a 777.

  5. #5
    User Newbie
    Data Registrazione
    Jun 2009
    Messaggi
    8
    Lo so, ma non me li fa mettere, nonostante sia pure in public.

    Uso aruba con hosting windows.
    Ultima modifica di Samyorn; 25-06-09 alle 15:32 Motivo: Maiuscole e punteggiatura.

  6. #6
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,268
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Su aruba hosting dal pannello admin, puoi avviare la procedura di ripristino dei permessi. Se devi farci girare script php è comunque preferibile che passi ad un hosting linux.

  7. #7
    User Newbie
    Data Registrazione
    Jun 2009
    Messaggi
    8
    Si ho gia fatto il ripristina, ma me li mette sempre a 666, che razza di senso ha.

    Lo so che sarebbe meglio linux ma chi lo sapeva che dava tutti sti problemi..e tutti gli altri come fanno?
    E poi ora devo aspettare che finisce l'anno del contratto per cambiare, non c'è un modo per aggirare la cosa? Non riesco proprio a far funzionare tante cose, sempre per via dei permessi.

    Provo a scrivere ad aruba magari.
    Ultima modifica di Samyorn; 25-06-09 alle 15:32 Motivo: Maiuscole e punteggiatura.

  8. #8
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,268
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Il ripristino dei permessi che io sappia finoa poco tempo fa diceva che poteva impiegare alcune ore.
    Gli altri usano linux, chi compra un hosting windows solitamente usa asp invece di php.

    Hai comunque verificato di aver messo nel config.php il percorso corretto del file?

  9. #9
    User Newbie
    Data Registrazione
    Jun 2009
    Messaggi
    8
    Il ripristino me l'ha fatto in 2 secondi e non ore...non so perchè...

    Il percorso comunque è giusto...figurati sono due sere che sto impazzendoci dietro.
    Ultima modifica di Samyorn; 25-06-09 alle 15:31 Motivo: Maiuscole e punteggiatura.

  10. #10
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,268
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Guardando bene l'errore, a me non sembra un problema di permessi ma piuttosto di un percorso non valido.
    A sto punto ti chiedo, cosa hai messo come valore di $db_utenti?

  11. #11
    User Newbie
    Data Registrazione
    Jun 2009
    Messaggi
    8
    Non mi fa mettere l'url... comunque è giusto anzi provo a metterlo senza il http e www

    $db_utenti=".lilithstasopra.com/public/newsletters/utenti.php";

    Ok l'ha messo..
    Ultima modifica di Samyorn; 25-06-09 alle 15:30 Motivo: Maiuscole.

  12. #12
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,268
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Infatti è sbagliato.

    In che cartella hai messo lo script?

  13. #13
    User Newbie
    Data Registrazione
    Jun 2009
    Messaggi
    8
    Intendi lo script di config.php?

    Sempre nella stessa cartella in public/newsletters

    Si..dimmi che ho sbagliato ti prego.
    Ultima modifica di Samyorn; 25-06-09 alle 15:29 Motivo: Maiuscole.

  14. #14
    User Newbie
    Data Registrazione
    Jun 2009
    Messaggi
    8
    Ok ho scritto solo il nome del file ed ha funzionato...eppure li c'era scritto di mettere anche l'indirizzo completo..

    Ora ho un altro problema per cancellare una mail..
    Li ho messo sempre l'indirizzo completo cioè http:www ecc ecc fino alla cartella cancella.php e mi da il solito errore a questa riga:

    $fp=fopen($db_utenti,"w"); //Riapro il file con gli utenti
    fputs($fp, $str_aggiornato); //Riscrivo il nuovo file senza l'utente cancellato
    fclose($fp); //Chiudo nuovamente il file

    Dice argomento non valido stream...qualcosa del genere.

    E lo fa anche quando invio una mail nuova...li mi sa che sono sempre i maledetti permessi...

    Su che aspetti dimmi che ho sbagliato ancora?
    Ultima modifica di Samyorn; 25-06-09 alle 15:29 Motivo: Curare l'uso delle maiuscole.

  15. #15
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,268
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Dovresti incollare l'errore altrimenti non posso aiutarti.

  16. #16
    User Newbie
    Data Registrazione
    Jun 2009
    Messaggi
    8
    Warning: fopen(utenti.php) [function.fopen]: failed to open stream: Permission denied in D:\Inetpub\webs\lilithstasopracom\public\newslette rs\cancella.php on line 80

    Warning: fputs(): supplied argument is not a valid stream resource in D:\Inetpub\webs\lilithstasopracom\public\newslette rs\cancella.php on line 81

    Warning: fclose(): supplied argument is not a valid stream resource in D:\Inetpub\webs\lilithstasopracom\public\newslette rs\cancella.php on line 82

  17. #17
    Esperto L'avatar di scwd
    Data Registrazione
    Jan 2008
    Località
    Ciampino, Roma, Italia, Europa, Mondo, Sistema Solare
    Messaggi
    631
    Scusate l'assenza, controllo la procedura domani vedo se per caso è errata e faccio aggiornare
    Grazie Thedarkita

  18. #18
    User
    Data Registrazione
    Aug 2009
    Messaggi
    12
    Fantastico!

    Questo scritp è semplicemnte fantastico!

    Grazie a tutti voi

  19. #19
    Esperto L'avatar di scwd
    Data Registrazione
    Jan 2008
    Località
    Ciampino, Roma, Italia, Europa, Mondo, Sistema Solare
    Messaggi
    631
    Prego,
    facci sapere come và, e se ci sono cose che secondo te vanno migliorate.
    Grazie a te.

  20. #20
    User
    Data Registrazione
    Aug 2009
    Messaggi
    12
    Ciao,

    tutto è migliorabile, anche questo script fantastico!

    Allora per prima cosa farei una semplice modifica; la frase "[email protected] correttamente cancellata." la colorerei di rosso e magari gli darei un carattere grassetto. Come formattazione non c'è niente (colori, testi, etc etc) e va bene così, ma questa frase la colorerei di "default".

    edit: "Se entro 4 secondi non vieni rimandato alla gestione newsletter clicca qui" Toglierei il redirect dopo 4 secondi quando elimino una e-mail! Se sbaglio a cancellare, ho pochi secondi per capire che e-mail è! (anche se arriva l'indirizzo cancellato sulla mail dell'amministratore )

    Sempre per quanto riguarda la formattazione forse inserirei delle classi nei vari elementi in modo da poter formattare con i css senza dover mettere le mani al codice. Di default potresti lasciare tutto bianco e nero come adesso

    Sarebbe interessante avere una copia di ogni newsletter inviata (con scritta la data di invio...)

    Domanda: Il codice html lo posso copiare e incollare da un altro editor?

    Potrebbe essere utile l'integrazione di un editor come TinyMCE.

    Questi sono un po' di suggerimenti in ordine sparso che mi sono venuti in mente, spero che vi possano essere utili.



    A presto!
    Ultima modifica di fabio079; 25-09-09 alle 11:51

  21. #21
    Esperto L'avatar di scwd
    Data Registrazione
    Jan 2008
    Località
    Ciampino, Roma, Italia, Europa, Mondo, Sistema Solare
    Messaggi
    631
    Chiaramente puoi modificarlo come più ti sembrerà opportuno, certo che ognuno deve vedersi come gli interessa... Se non sbaglio invia una e-mail sull'account dell'amministratore con la newsletter inviata..ma non mi ricordo.
    Vedremo più avanti.
    Grazie 1000.

  22. #22
    User
    Data Registrazione
    Aug 2009
    Messaggi
    12
    Serve il double opt-in

    La doppia conferma o double opt-in (iscrizione sul sito e conferma con clic su email ricevuta) è necessaria perchè solo in questo modo si è certi che l'indirizzo sia effettivamente attivo ma soprattutto che sia stata fatta dall'effettivo proprietario. La normativa italiana sulla privacy attualmente in vigore, obbliga tale procedura;
    Si può integrare in questo script?

    Ciao

  23. #23
    Esperto L'avatar di scwd
    Data Registrazione
    Jan 2008
    Località
    Ciampino, Roma, Italia, Europa, Mondo, Sistema Solare
    Messaggi
    631
    Puoi provvedere tu ad inserirla?

  24. #24
    User
    Data Registrazione
    Aug 2009
    Messaggi
    12
    Non ho le conoscenze per farlo, ahime!

    Ci tento a precisare che il mia era soltanto un consiglio e non pretendevo la pappa pronta (anche se ammetto che è buona! )

    Potrei cercare qualcosa, ma dubito di essere in grado.

    Se comunque dovessi riuscire a far qualcosa, posterò qui sicuramente..

    Grazie 1000 per la risposta

    a presto

  25. #25
    User L'avatar di angelo85ct
    Data Registrazione
    Sep 2008
    Messaggi
    174
    Ciao ragazzi e complimenti con lo script, avrei solo bisogno di un aiuto, se volessi integrare un database contenete delle email, come dovrei fare?? ci ho provato, ma ho avuto qualche difficolta, ho un db contenete email, la tabella si chiama email, e ha un solo campm di nome email.
    HELP MEE!!!

  26. #26
    User Newbie L'avatar di plata
    Data Registrazione
    Jan 2011
    Località
    Messina
    Messaggi
    3

    Newsletter senza database 1.1, errori quando trasferisco su host.

    Buongiorno a tutti,
    mi sono iscritto da poco ed è il mio primo post.
    Come da titolo, quest'ottima guida (molto interessante per chi non possiede un DB), che ho testato in locale funziona tranquillamente senza problemi, al momento di trasferirlo in rete, mi crea questo problema.

    ----------------------------------------
    Se entro 4 secondi non vieni reindirizzato al form clicca qui.
    "; exit(); } else{ //I valori passati tramite il form non sono nulli $nick=$_POST['nick']; $passw=$_POST['passw']; $passw=md5($passw); //Controllo che i dati inseriti siano corretti if(($nick==$admin_nick)&&($passw==$admin_passw)) //Se i dati coincidono { //LOGIN EFFETTUATO CORRETTAMENTE\\ //Creo la sessione $_SESSION['nickname']=$nick; $_SESSION['password']=$passw; echo "Login effettuato correttamente.
    Se entro 4 secondi non vieni reindirizzato alla gestione newsletter clicca qui.
    "; exit(); } else { echo "Login errato.
    Se entro 4 secondi non vieni reindirizzato al form clicca qui.
    "; exit(); } } } else { echo "
    $inserire_nick :
    $inserire_passw :
    "; } ?>

    -----------------------------------------
    è già capitato a qualcuno che lo ha già testato? e se si
    quale potrebbe essere il problema?
    grazie anticipatamente a chi mi darà una risposta e buona giornata a tutti.

  27. #27
    Consiglio Direttivo L'avatar di Samyorn
    Data Registrazione
    Dec 2007
    Località
    Catania
    Messaggi
    6,000
    Segui Samyorn su Twitter Aggiungi Samyorn su Google+ Aggiungi Samyorn su Facebook Aggiungi Samyorn su Linkedin
    Ciao plata,
    certo di non aver effettuato alcuna modifica?
    Controlla il file login.php, if della riga 10.
    MODFunzioni di PHP Qui, Quo, Qua
    Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?

  28. #28
    User Newbie L'avatar di plata
    Data Registrazione
    Jan 2011
    Località
    Messina
    Messaggi
    3

    Newsletter senza database 1.1, errori quando trasferisco su host

    Ciao Samyorn e scusami per il ritardo,
    io ho lasciato user e pass uguali non ho toccato nulla nel file login.php, sta di fatto che in locale mi funziona, è quando lo metto in rete che mi compare tutto disordinato e ovviamente non funziona nulla.
    Grazie ancora, buona serata

  29. #29
    Consiglio Direttivo L'avatar di Samyorn
    Data Registrazione
    Dec 2007
    Località
    Catania
    Messaggi
    6,000
    Segui Samyorn su Twitter Aggiungi Samyorn su Google+ Aggiungi Samyorn su Facebook Aggiungi Samyorn su Linkedin
    Sinceramente non so spiegarmi il motivo. Prova a riscaricare lo script ed a riupparlo.
    MODFunzioni di PHP Qui, Quo, Qua
    Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?

  30. #30
    User Newbie L'avatar di plata
    Data Registrazione
    Jan 2011
    Località
    Messina
    Messaggi
    3

    Newsletter senza database 1.1, errori quando trasferisco su host.

    No non credo sia questo, quello che ho funziona bene anche quello zippato non mi da errori. Boh! vediamo se smanettando un pò risolvo, grazie ancora

  31. #31
    User Newbie
    Data Registrazione
    Mar 2009
    Messaggi
    6
    Citazione Originariamente Scritto da fabio079 Visualizza Messaggio
    Serve il double opt-in



    Si può integrare in questo script?

    Ciao
    Ciao a tutti,
    e scusate se entro nel post ma volevo fare i miei complimenti per questa newsletter..
    concordo con fabio079 che sarebbe il top poter ricevere mail con link di conferma...(ma pure io non sono uno smanettone di php)...ho uno script newsletter che lo fa..magari per chi volesse dare uno sguardo..
    Altro spunto, visto che sono stati chieste impressioni, poter inserire due opzioni direttamente nella pagina di inserimento mail con; iscrivimi, cancellami.
    Ripeto, è già un gran lavoro questo.
    Vuole essere solo uno spunto...
    chiedo una cosa: è normale che non riesca ad effettuare il login al pannello?
    mi da sempre errore...usa i dati configurati nel file config.php..
    ciao e grazie

  32. #32
    User
    Data Registrazione
    Dec 2007
    Messaggi
    23

    domanda

    ciao, ma se voglio cambiare il nome al file utenti.php cosa devo fare?

  33. #33
    Consiglio Direttivo L'avatar di Samyorn
    Data Registrazione
    Dec 2007
    Località
    Catania
    Messaggi
    6,000
    Segui Samyorn su Twitter Aggiungi Samyorn su Google+ Aggiungi Samyorn su Facebook Aggiungi Samyorn su Linkedin
    Ciao vincenzo287,
    Dovrai cambiare il valore di $db_utenti nel file config.php

    Postato via Mobile

  34. #34
    User
    Data Registrazione
    Dec 2007
    Messaggi
    23
    Grazie, l'ho cambiato ed è tutto ok.
    Questa e-mail è molto carina, complimenti. Qualche piccolo aggiusto potrebbe rendarla ancora più carina. Ad esempio la possibilita di salvare in archivio l'email che si mandano per poterle riutilizzare e modifificarle. Gli indirizzi poi sono a disposizione di tutti, basta riconoscere il programma e formulare gli url giusti. Di bello ha la sua semplicità.
    ciao e complimenti.

  35. #35
    User Newbie
    Data Registrazione
    Sep 2011
    Località
    castellabate
    Messaggi
    2
    Ciao a tutti, a me ha dato questo errore Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING public\newsletter\invio_newsletter.php on line 121

+ Rispondi alla Discussione

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.