![]() |
![]() |
|
| Condividi questo contenuto nei Social Network: |
|
Tweet |
|
|
|
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito. |
||||
|
|||||||||
|
|
LinkBack | Strumenti di discussione |
|
|
#1 (permalink) |
|
Esperto
Data di registrazione: Jan 2008
Ubicazione: Ciampino, Roma, Italia, Europa, Mondo, Sistema Solare
Messaggi: 630
|
[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:
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:
· $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:
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:
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:
|
|
Ultima modifica di scwd : 24-01-09 17:49. |
|
|
|
|
|
|
|
|
#2 (permalink) |
|
Esperto
Data di registrazione: Jan 2008
Ubicazione: Ciampino, Roma, Italia, Europa, Mondo, Sistema Solare
Messaggi: 630
|
newsletter.php:
Codice PHP:
Codice PHP:
Codice PHP:
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 16:59. Motivo: Inserito link al pacchetto file, alla demo e aggiornato file d'invio. |
|
|
|
|
|
|
#3 (permalink) |
|
User Newbie
Data di 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 15:34. Motivo: Maiuscole e punteggiatura. |
|
|
|
|
|
|
#7 (permalink) |
|
User Newbie
Data di 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 15:32. Motivo: Maiuscole e punteggiatura. |
|
|
|
|
|
|
#9 (permalink) |
|
User Newbie
Data di 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 15:31. Motivo: Maiuscole e punteggiatura. |
|
|
|
|
|
|
#11 (permalink) |
|
User Newbie
Data di 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 15:30. Motivo: Maiuscole. |
|
|
|
|
|
|
#14 (permalink) |
|
User Newbie
Data di 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 15:29. Motivo: Curare l'uso delle maiuscole. |
|
|
|
|
| Tags: newsletter senza database, php, script |
| Strumenti di discussione | |
|
|