|Week #1||Basic||Tags, comments, functions, strings, & variables.||Print a variable.|
|Week #2||Basic||Date(), Time(), & conditionals.
concantenation, switch case & escaping php to html output.
|Print URL each day of the week using switch/case & comparing to numeric day of the week.|
|Week #3||Basic & Advanced||Using Array's.
Adding/subtracting numbers in $strings.
Images path to a different directory.
|Print a different url every day of the month using an array.
ADVANCED: Print a different url every day of the month with a different category of url for each day of the week using a multi-dimensional array.
|Week #4||Basic & Advanced||Randomness.
Getting the size of an array $count.
mt_srand: sets random seed (source).
and mt_rand(time()); function.
include() & require().
|Rotate banners kept inside an array stored using a separate
file and using require to bring into the main script which does the rotation.
ADVANCED: Rotate banners kept inside a multi-dimensional array in at least 3 different categories stored using a separate file and using require to bring into the main script which does the rotation and weighting the results of one banner category over the other two.
|Week #5||Basic Advanced||Forms, methods.
Submitting form data, Form processing.
GET, POST, ENCTYPE
|Submit a username and password to enter a page. If the username
and password does not match the variable hardcoded in the script show the login form
again with an error message.
ADVANCED: Upon correct login display a list of banners in an array from a select box to display (you can use either a single or multi-dimensional array). Upon choosing a banner and pressing submit, then have the script print the banner to the browser. This will allow for an account of banners that only a person with the correct username/password can get in and view by image path. Use either a for() or while() loop to create the dropdown SELECT box with the available banners in the array and hidden form tags to transfer the validated password.
|Week #6||Basic Advanced||Sending mail()
|Accept form input and send the comments to and from someone that is input via form, do not hardcode the recipient or the from address.
Add in security to make sure that the "to" and "from" look like legitimate email addresses.
ADVANCED: Write a "Share these urls with your friends" script which will send a series of at least 3 different urls that the user must enter into the form to at least 3 different email addresses. Add in security to make sure that the "to" and "from" look like legitimate email addresses and use the $PHP_SELF variable.
|Week #7||Basic Advanced||Regular Expressions
|Print the IP address if a surfer comes from a bookmark or type-in and
show their browser type, and if the person comes from YOUR domain then print a clickable url.
ADVANCED: Go back to your advanced "send a url to a friend" mail script from week #6 and add security so that only direct links from your domain (so that we can check it out from the forum without the error popping up) can access the form and provide an error routine for those that try to come in from bookmark or type-in or illegal domain
|Week #8||Basic Advanced||Headers & Redirection.
|Randomly choose a URL and redirect the surfer when clicked. Make
the result in the browser status window.
|Week #9||Basic Advanced||cookies||A script to enter urls using a form and save the unique urls in a
cookie for the current browser session, and then display the urls that are saved using
the same script as active hyperlinks opening in a target window.
|Week #10||Basic Advanced||.htaccess & .htpasswd
explode() & delimeters
file() fopen() feof() fgets()
fclose() crypt() fputs()
"r" "w" "a" (read,write,append)
|Add sorted email addresses and names to a file and with the
same script how to retrieve all the information and print to browser the name and
email address in a table to the browser.
ADVANCED: Add and delete sorted email addresses and names to a file and with the same script how to retrieve all the information and print to browser the name and email address in a table to the browser.
|Week #11||Basic Advanced||flock()
|Search through the contents of a file CASE iNsensiTiveLy, match all entries
and change from the information submitted on a form and print the entire contents of the file to
the browser. All should be self enclosed in one script with find and replace text boxes and use filelocking.
|Week #12||Basic Advanced||
CHMOD on a directory
|A script to allow you to create and delete directories from the browser. Make this
script password protected using a hardcoded user/pass combination.
|Week #13||Basic Advanced||File UploadsExample||Basic: A script which will accept only .jpg and .gif file uploads of less than 50k and then display the uploaded file along with a button to delete the picture beneath it. Password protect the script so that unless a correct login/pass is used the user will not be able to view or upload the files. Use hidden form fields, not query strings to transfer the user/pass info between fields.
|Week #14||Basic Advanced||Connecting to mySQL database
CREATEing a TABLE via php
|Basic: Create a mySQL table using a php script with 4 fields: user, pass, ip, datetime. Don't forget the primary key.
|Week #15||Basic Advanced||Basic: Create a mySQL a table structure to enter musical artists into a table(s) for: artist_name, genre, votes.
Allow a form to choose an existing artist and "vote for it" or add a new artist to the table. Display the results by most number of votes.
ADVANCED: Create a mySQL a table structure to enter musical artists into a table(s) for: artist_name, genre, votes. Allow a form to choose an existing artist and "vote for it" or add a new artist to the table. Display the results by most number of votes. Create a separate admin script to be able to modify the surfer entered information in the table from the browser and to be able to delete any record by artist_name.