<?php /* Email list script by phptutorial.info */
// to avoid showning errors (change to 1 to show them). For security error_reporting(0);
// if info is posted, show the form and die // the form is in the bottom of the page if (!$_POST){print_form();die();}
// when info is posted you will be here ?>
<html> <head> <title>My mailing list</title> </head> <body bgcolor=FFFFFF> <?php
// GET EMAIL $email=$_POST["email"]; // To avoid problems, only lower case is used $email=strtolower($email); // Check whether email is correct by using a function // function requires the email address and the error message check_email ($email, "Error: email is not valid.");
// GET VALUE FOR action : subc (subscribe) or unsubc (unsubscribe) $action=$_POST["action"];
// this is the file with the info (emails) // When downloading the source code here, a new name for this file // will be generated (p.e.: emaillist-2ax1fd34rfs.txt), so users will be unable to find it $file = "emaillist-XXXXXXXXXX.txt";
// lets try to get the content of the file if (file_exists($file)){ // If the file is already in the server, its content is pasted to variable $file_content $file_content=file_get_contents($file); }else{ // If the file does not exists, lets try to create it // In case file can not be created (probably due to problems with directory permissions), // the users is informed (the first user will be the webmaster, who must solve the problem). $cf = fopen($file, "w") or die("Error: file does not exits, and it can not be create. <BR>Please check permissions in the directory or create a file with coresponding name."); fputs($cf, "Mailing list subscribers\n"); fclose($cf); }
// IF REQUEST HAS BEEN TO SUBSCRIBE FROM MAILING LIST, ADD EMAIL TO THE FILE if ($action=="subc"){ // check whether the email is already registered if(strpos($file_content,"<$email>")>0){ die("Error: your email is already included in this mailing list"); } // write the email to the list (append it to the file) $cf = fopen($file, "a"); fputs($cf, "\n<$email>"); // new email is written to the file in a new line fclose($cf); // notify subscription print "Your email has been added to our mailing list.<br>Thanks for joining us."; } // IF REQUEST HAS BEEN TO UNSUBSCRIBE FROM MAILING LIST, REMOVE EMAIL FROM THE FILE if ($action=="unsubc"){ // if email is not in the list, display error if(strpos($file_content,"<$email>")==0){ die("Error: your email is not included in this mailing list"); } // remove email from the content of the file $file_content=preg_replace ("/\n<$email>/","",$file_content); // print the new content to the file $cf = fopen($file, "w"); fputs($cf, $file_content); fclose($cf); // notify unsubscription print "Your email has been removed from our mailing list. "; }
?> </body> </html>
|
<?php // THIS FUNCTION WILL CHECK WHETHER AN EMAIL IS CORRECT OR NOT // FIRST, BASIC ARCHITECTURE IS CHECKED // THEM, EXISTANCE OF THE EMAIL SERVER IS CHECKED // If email is not correct, the error message is shown and page dies function check_email ($email, $message){ // check if email exists if ($email==""){die($message);} // check whether email is correct (basic checking) $test1=strpos($email, "@"); //value must be >1 $test2=strpos(substr($email,strpos($email,"@")), "."); //value must be >1 $test3=strlen($email); //value must be >6 $test4=substr_count ($email,"@"); //value must be 1 if ($test1<2 or $test2<2 or $test3<7 or $test4!=1){die($message);} // check whether email is correct (advance checking) // extracts whatever is after "@" to variable $email_server $email_server=substr($email,strpos($email, "@")+1); // Check DNS records (0 => the server exists; 1=> the server does not exist) if (checkdnsrr($email_server)!=1){die ($message);} }
|
// THIS FUNCTION WILL SHOW THE FORM // MODIFY IT AS REQUIRED function print_form(){ ?>
<html> <head> <title>My mailing list</title> </head> <body style="background-color: rgb(255, 255, 255);"> <center> <div style="text-align: center;"></div> <form action="index2.php" method="post"> <div style="text-align: center;"> </div> <table> <tr> <td> <div style="text-align: center;"> <big style="font-weight: bold;">Join my mailing list </big><br> </div> <input name="email" size="30" type="text"> <br> <div style="text-align: center;"> <input name="action" value="subc" checked="checked" type="radio">Subscribe <input name="action" value="unsubc" selected="" type="radio">Unsubscribe <br> </div> <div style="text-align: center;"> <input value="Submit" type="submit"> </div> </td> </tr> </table> </form> <!-- you may remove next line, but consider maintaining it --> <font size="2">Script provided by <a href="http://www.phptutorial.info/">PhpTutorial.info</a>. </font></center> </body> </html>
<? } ?>
|