Site Cloner PHP Script
Bargain Hunter PHP Script
Job Hunter PHP Script
Site Login and Access Control PHP Script


PHPLIST is an open source php script which allows you to send mass email and organize newsletters. Here are some quick tips to set it up and use it.

1) Download php list from
2) Unzip file
3) Open php-list folder and public_html folder
4) FTP list folder to desired location
5) Create a new database
ie) database: mydb_phplist
password: my_passxyz
6) Alter .htaccess if necessary
7) Open both the front end and admin pages to load the database. and
8) Create a newsletter
Subcribe Pages >Add a new one >select Lists >Check Active >Save Changes
9) Test mesage:
Set TEST constant to false
Near line 192:
define (“TEST”,1);
Change to:
define (“TEST”,0);
10) Go to a new browser and open the front end page>Sign up for a newsletter
11) Go to admin >Select Send a message

To create a list,
1) Select ‘Lists’ >Add a List >Add a List Name >Select ‘Check this box to make this list active (listed)’ >Add description if desired >Save
2) Go to Subscribe pages >Edit >Alter text areas, checkboxes and radio buttons as desired >Save Changes
When you add a second list and alter subscribe pages, you have the option to offer various mailing lists when the user decides to subscribe to a list.

With phplist you can custom placeholders into the message. This can help turn a generic message like Dear Sir into a personal message like ‘Dear Tom’. They placeholders can be found at

To add an attribute(such as first name),
1) Manage User >User attributes >Add a name >Save Changes
Note: The attributes will be saved in the table called phplist_user_attribute
Note: When you make an attribute like First Name in the name column of the phplist_user_attribute table, you can use a tag placeholder [FIRST NAME] in the email body to make the users name appear where you want.
Advanced Note: Whe you create a new attribute, it will up show when they sign up. The value for the attribute(ie. First name) goes into the table phplist_user_user_attribute. The userid in this table and id from the phplist_user_user table are matching keys. Whenever a new attribute is made, new people signing up will have the values and existing people on the list will have ‘NULL”. You can update the value if desired.

To enable an attribute at any time,
1) Select Subscribe Pages >Edit >Check the box in the attribute that says ‘Check this box to use this attribute in the page’.

To delete an attribute(such as first name),
1) Manage User >User attributes >Delete

To customize sign up page,
1) Select Subscribe Pages >Edit >Alter text areas, checkboxes and radio buttons as desired >Save Changes

What Happens when a user(with attributes) signs up for the newsletter?
1) The client receives a confirmation email.
2) The user`s id and email goes into the user table.
3) The name goes into the user_attribute table and matches the id from the user table.
Note: These 2 tables can be used to dump a large list. However, the user_attribute table does not have autoincrement for the userid. Therefore, careful dumping must take place for which the userids will match in both tables.

To dump an email list with a first name,
1) Change user_attribute table and make userid a primary key and autoincrement
2) The csv file should have the id from the attribute table in the first column (they will a be the same number), then a blank second column, then the value(i.e.first name) in the 3rd column.
It looks something like this for the entire list.
| 1 |  | Joe |
| 1 |  | Jan |
3) Dump complete list into the table. The table will now have attributeid, userid and value. Now, put the structure back to how it was by removing the autoincrement userid and the primary key.
4) Now go back the original csv file and import the users into the user table. The id will be autoincrement and should matck exactly as the userid from the dump into the user_attribute table. You must set the Excel spreadsheet to match the 16 columns. The first column will be blank since it is for autoincrement id, the second will be email address, the 3rd can be 0 or 1 for the confirmed column…etc.

After the import, check the last records to see that they got updated properly.