I want an e-mail signup form that stores user data in a database and then exports it to a CSV-file. Also including a simple admin backend to administrate the users. (Please note, this will not be a complete e-mail system, it's only to store e-mail account data such as username, first and last names and password.)
I will run this script on a Wordpress based website so it must be compatible with Wordpress.
## Deliverables
I want an e-mail signup form that stores user data in a database and then exports it to a CSV-file. Also including a simple admin backend to administrate the users. (Please note, this will not be a complete e-mail system, it's only to store e-mail account data such as username, first and last names and password.) I will run this script on a Wordpress based website so it must be compatible with Wordpress. The CSV-file should be formatted as a table and must have a title or first row to define the fields in the table. The titles should be username, first name, last name, password. What I need is a signup script that collects this information from the user, store it in a local database (to handle duplicates) and at my request create a CSV-file with all the new users. Then I will manually upload this file to Google Apps. The script needs to get the following information from the user: Username of choice (the part left of @ in the e-mail address he wants to register). Firstname Lastname Current e-mail address two times (repeat) Next to the Username field it should be a "check availability" button that will check if the username is available, without reloading the page (Ajax?). Check username for illegal (for e-mail) characters and length, at least 3 characters. Check username for duplicates. Check first name for length, at least 2. a-z, A-Z and regional special characters such as öåäüé and so on are allowed. Check last name for length, at least 2. Same rules for characters as first name. Check current e-mail address to see it if is a valid e-mail address and if the two entered values are the same. Make sure sql-injections and similiar is impossible to do. Everything should be stored in a local mysql database. The user's IP and time of registration should also be stored. A password should be created and stored together with the user data. Password should be 6 characters long and a random combination of numbers (0-9) and letters (a-z, no capitals). The password does not need to be encrypted in the database, it can be in clear text. (That is ok, the password will be used one time only) After each registration, a simple e-mail should be sent out (to me) to inform that a new user has registered. I, as an admin, should be able to login to manage all the registered users. Show about 50 users per page, newest on top of page 1. In the list of users, all info should be shown as follows: Firstname Lastname Username Password Current e-mail New users should also be marked as "new" in some way. I can select any number of users and choose to either delete them, to create a CSV-file containing one or multiple users of my choice, mark them as "done", or mark them as "blocked". Explanation of choices: Delete Just delete the selected user(s) info from the database. Create CSV Export the user(s) info to a csv-file as specified earlier. Provide the csv-file as a download for me. No need to save the csv-file after that. Mark as done After clicking "done", an e-mail will be sent out to each of the selected users current e-mail address (not the new one that he signed up for) with a text such as this one: "Hi Firstname Lastname, Thanks for signing up with our email service! Your username is: Username Your new e-mail address is: Username@[login to view URL] Your password is: Password Kind regards, ..." And then the selected users will be marked "done" instead of "new". (This could be done again if necessary, even if it's already marked as done) Mark as Blocked If I does not approve of a username, instead of deleting it, I could choose to "block" it. In that way, it will still be in the database (and therefor not available for others to register) and it will not be exported to a csv-file and thus not marked as done. To click "block" on a user that is already marked block should unblock it and make it into "new". The submitted picture gives an idea of how the visible part of this script could look like. The picture is just an example to help visualize it. Only simple web design is necessary. I will integrate it with my website's design myself. Use php and mysql. And remember, must work in Wordpress.