7. 4- Select “I accept the license agreement” and click “Next “.
8. 5- Change your PHP installation path OR just accept the default path - C:rogram FilesHPand click “Next
9. 6- On the Web Server Setup screen, select the Apache 2.2.x Module and click “Next
10. 7-On the Apache Configuration Directory screen, browse for the Apache configuration directory (conf) OR just enter C:rogram Filespache Software Foundationpache2.2onfand click “Next ” to proceed with the installation. select-apache-webserver-configuration-directory
11. 8- For now, accept the default selection and click “Next”.
13. 10- Click “Finish ” once completed. PHP 5 is successfully installed.
14. 11- Start your Apache 2.2 server using the “Monitor Apache Servers” console (Start -> Apache HTTP Servers 2.2.4 -> Monitor Apache Servers ). You can see that PHP was successfully installed by checking the Apache status at the bottom of the console.
16. 1- Open up your Windows Notepad. Type in “<?php phpinfo(); ?>” inside the file. Save this file as “info.php” inside your Apache root directory, C:rogram Filespache Software Foundationpache2.2tdocs .
17. 2- Open up your web browser . In the address bar, type in your web server domain name plus info.php as the file name. Example: http://www.syahid.com/info.php . You should get a PHP configuration page just like the one below.
20. Sample 1: current date in an HTML page <html> <head> <title>Example #1 TDavid's Very First PHP Script ever!</title> </head> <? print(Date("l F d, Y")); ?> <body> </body> </html>
21. 2.current month/day/date format <html> <head> <title>Example #3 TDavid's Very First PHP Script ever!</title> </head> <? print(Date("m/j/y")); ?> <body> </body> </html>
22. 3. current month/day/date with HTML colors & formatting <html> <head> <title>PHP Script examples!</title> </head> <font face="Arial" color="#FF00FF"><strong><? print(Date("m/j/y")); ?> </strong></font> <body> </body> </html>
23. 4. change background color based on day of the week using if else elseif statements <html> <head> <title>Background Colors change based on the day of the week</title> </head> <? $today = date("l"); print("$today"); if($today == "Sunday") { $bgcolor = "#FEF0C5"; }
24. 4. change background color based on day of the week using if else elseif statements elseif($today == "Monday") { $bgcolor = "#FFFFFF"; } elseif($today == "Tuesday") { $bgcolor = "#FBFFC4"; } elseif($today == "Wednesday") { $bgcolor = "#FFE0DD"; } elseif($today == "Thursday"){ $bgcolor = "#E6EDFF";}
25. 4. change background color based on day of the week using if else elseif statements elseif($today == "Friday") { $bgcolor = "#E9FFE6"; } else { // Since it is not any of the days above it must be Saturday $bgcolor = "#F0F4F1"; } print("<body bgcolor=amp;quot;$bgcoloramp;quot;>"); ?> <br>This just changes the color of the screen based on the day of the week </body> </html>
26. 4. change background color based on day of the week using array <html> <head> <title>Background Colors change based on the day of the week</title></head> <?$today = date("w"); $bgcolor = array( "#FEF0C5", "#FFFFFF", "#FBFFC4", "#FFE0DD", "#E6EDFF", "#E9FFE6", "#F0F4F1" ); ?> <body bgcolor="<?print("$bgcolor[$today]");?>"> <br>This just changes the color of the screen based on the day of the week </body> </html>
27. 5. add date time stamp "page last updated on.." using filemtime function using forms, cookies, flat file databases, random number generation <html> <head> <title>Page last updated on month/date/year hour:min PHP Script</title> </head> <? $last_modified = filemtime("example7.php3"); print("Last Modified "); print(date("m/j/y h:i", $last_modified)); ?> </body> </html>
28. 6. setting and retrieving a cookie <? $check = "test"; $check .= $filename; if ($test == $check) {print("<HTML><BODY>You have already voted. Thank you.</BODY></HTML>"); } else{ $rated = "test"; $rated .= $filename; setcookie(test, $rated, time()+86400); print("<HTML><BODY><br>You haven't voted before so I recorded your vote</BODY></HTML>"); } ?>
29. 7. getting an average number using PHP <? $total_ratings = (3+2+3+1+5+2+3); $total_votes = 7; $average = $total_ratings / $total_votes; print("The Average Rating Is: $average"); ?>
30. 8. showing the surfer average vote statistics, using printf function <? $path = "/YOUR/PATH/TO/public_html/php_diary/data"; $filename = "122499.dat"; $x= -1; if($file = fopen("$path/$filename", "r")) { while(!feof($file)) { $therate = fgetss($file, 255); $x++; $count = $count + $therate; } fclose($file); } $average = ($count / $x); print("Surfer Average Rating for 12/24/99: "); printf("%.2f", $average); print("<br>Total Surfer Votes: $x"); ?>
31. 9. generating a rand number from 0 to 9 <? srand(time()); $random = (rand()%9); print("Random number between 0 and 9 is: $random"); ?>
34. 12. random text link advertising using predefined arrays mail, regular expressions, password protection <? $random_url = array("http://www.tdscripts.com/linkorg.html", "http://www.tdscripts.com/keno.html", "http://www.tdscripts.com/ezibill.shtml", "http://www.tdscripts.com/tdforum.shtml", "http://www.tdscripts.com/picofday.html", "http://www.tdscripts.com/gutsorglory.html");
35. random text link advertising using predefined arrays mail, regular expressions, password protection $url_title = array("Link Organizer", "TD Keno", "eziBill *Free Promotion!", "TD Forum", "TD Pic of Day PHP", "Guts or Glory Poker PHP"); $url_desc = array("- A comprehensive link list organizer", "- Offer your site visitors an engaging Keno game without the monetary risk", "- Sell access to and protect your membership area using iBill and our eziBill script", "- An unthreaded messageboard script to exchange ideas with your site visitors", "- Run your own picture of the day script from any site anywhere with this handy script", "- A casino-style card game written entirely in PHP");
36. random text link advertising using predefined arrays mail, regular expressions, password protection srand(time()); $sizeof = count($random_url); $random = (rand()%$sizeof); print("<center><a href=amp;quot;$random_url[$random]amp;quot;>$url_title[$random]</a> $url_desc[$random]</center>"); ?>
37. 13. forcing the text in a string to be all upper or lowercase <? // force all uppercase print(strtoupper("i bet this will show up as all letters capitalized<br>")); // force all lowercase print(strtolower("I BET THIS WILL SHOW UP AS ALL LETTERS IN LOWERCASE<br>")); // force the first letter of a string to be capitalized print(ucfirst("i bet this will show the first letter of the string capitalized<br>")); // force the first letter of each WORD in a string to be capitalized print(ucwords("i bet this will show the first letter of every word capitalized<br>")); ?>
38. 14. searching through meta tags for a search engine <HTML> <BODY> <? $all_meta = get_meta_tags("010600.php3"); print($all_meta["description"]); print("<br>"); print($all_meta["keywords"]); ?> </BODY> </HTML>
39. 15. searching through a directory and picking out files using a regular expression <? $diary_directory = opendir("."); while($filename = readdir($diary_directory)) { $filesplit = explode(".", $filename); $check_filename = $filesplit[0]; if(ereg("[0-9]{6}", $check_filename)) { $check_filename .= ".$filesplit[1]"; $valid_filename[] = $check_filename; } } closedir($diary_directory); for($index = 0; $index < count($valid_filename); $index++) { print("$valid_filename[$index]<br>"); } ?>
47. 18. creating a mySQL table using a PHP script <? $mysql_db = "DATABASE NAME"; $mysql_user = "YOUR MYSQL USERNAME"; $mysql_pass = "YOUR MYSQL PASSWORD"; $mysql_link = mysql_connect("localhost", $mysql_user, $mysql_pass); mysql_select_db($mysql_db, $mysql_link); $create_query = "CREATE TABLE tds_counter ( COUNT_ID INT NOT NULL AUTO_INCREMENT, pagepath VARCHAR(250), impressions INT, reset_counter DATETIME, PRIMARY KEY (COUNT_ID) )";
48. 19. creating a mySQL table using a PHP script mysql_query($create_query, $mysql_link); print("Table Creation for <b>tds_counter</b> successful!<p>"); $insert = "INSERT into tds_counter VALUES ( 0, '/php_diary/021901.php3', 0, SYSDATE() )"; mysql_query($insert, $mysql_link); print("Inserted new counter successfully for this page: http://www.php-scripts.com/php_diary/021901.php3<p>"); ?>
49. 20. mySQL based counter script for multiple pagesAutomating manual tasks, date sorting, mktime() <? $db = "DATABASE NAME"; $admin = "MYSQL USER NAME"; $adpass = "MYSQL PASSWORD"; $mysql_link = mysql_connect("localhost", $admin, $adpass); mysql_select_db($db, $mysql_link); $result = mysql_query("SELECT impressions from tds_counter where COUNT_ID='$cid'", $mysql_link); if(mysql_num_rows($result)) { mysql_query("UPDATE tds_counter set impressions=impressions+1 where COUNT_ID='$cid'", $mysql_link); $row = mysql_fetch_row($result); if($inv != 1) { print("$row[0]"); } }?>
50. 21. Classify Email as Bounce (DSN) or Automated Reply <?php $bounce = new COM("Chilkat.Bounce"); $success = $bounce->UnlockComponent('Anything for 30-day trial'); if ($success == false) { print 'Failed to unlock component' . ""; exit; } $email = new COM("Chilkat.Email");
51. 21. Classify Email as Bounce (DSN) or Automated Reply // Load an email from a .eml file. // (This example loads an Email object from a .eml file, // but the object could have been read // directly from a POP3 or IMAP mail server using // Chilkat's POP3 or IMAP implementations.) $success = $email->LoadEml('sampleBounce.eml'); if ($success == false) { print $email->lastErrorText() . ""; exit; }
52. 21. Classify Email as Bounce (DSN) or Automated Reply $success = $bounce->ExamineMail($email); if ($success == false) { print $bounce->lastErrorText() . ""; exit; } if ($bounce->BounceType == 1) { // Hard bounce, log the email address print 'Hard Bounce: ' . $bounce->bounceAddress() . ""; } if ($bounce->BounceType == 2) { // Soft bounce, log the email address print 'Soft Bounce: ' . $bounce->bounceAddress() . ""; }
53. 21. Classify Email as Bounce (DSN) or Automated Reply if ($bounce->BounceType == 3) { // General bounce, no email address available. print 'General Bounce: No email address' . ""; } if ($bounce->BounceType == 4) { // General bounce, log the email address print 'General Bounce: ' . $bounce->bounceAddress() . ""; } if ($bounce->BounceType == 5) { // Mail blocked, log the email address print 'Mail Blocked: ' . $bounce->bounceAddress() . ""; }
54. 21. Classify Email as Bounce (DSN) or Automated Reply if ($bounce->BounceType == 6) { // Auto-reply, log the email address print 'Auto-Reply: ' . $bounce->bounceAddress() . ""; } if ($bounce->BounceType == 7) { // Transient (recoverable) Failure, log the email address print 'Transient Failure: ' . $bounce->bounceAddress() . ""; } if ($bounce->BounceType == 8) { // Subscribe request, log the email address print 'Subscribe Request: ' . $bounce->bounceAddress() . ""; } if ($bounce->BounceType == 9) { // Unsubscribe Request, log the email address print 'Unsubscribe Request: ' . $bounce->bounceAddress() . ""; }
55. 21. Classify Email as Bounce (DSN) or Automated Reply if ($bounce->BounceType == 10) { // Virus Notification, log the email address print 'Virus Notification: ' . $bounce->bounceAddress() . ""; } if ($bounce->BounceType == 11) { // Suspected bounce. // This should be rare. It indicates that the Bounce // component found strong evidence that this is a bounced // email, but couldn//t quite recognize everything it // needed to be 100% sure. Feel free to notify // support@chilkatsoft.com regarding emails having this // bounce type. print 'Suspected Bounce!' . "";} ?>
56. 22. program to print a message <html> <h3>My first PHP Program</h3> <? echo "Hello world!"; ?> </html>
57. 23. PHP Array <?php $employee_names[0] = "Dana"; $employee_names[1] = "Matt"; $employee_names[2] = "Susan"; echo "The first employee's name is ".$employee_names[0]; echo "<br>"; echo "The second employee's name is ".$employee_names[1]; echo "<br>"; echo "The third employee's name is ".$employee_names[2]; ?>
61. 26.Creating an HTML Form That Accepts Mail-Related Information <html> <head> <title>Simple Send Mail Form</title> </head><body> <h1>Mail Form</h1> <form name="form1" method="post" action="SimpleEmail.php"> <table> <tr><td><b>To</b></td><td><input type="text" name="mailto" size="35"></td></tr> <tr><td><b>Subject</b></td> <td><input type="text" name="mailsubject" size="35"></td></tr> <tr><td><b>Message</b></td> <td><textarea name="mailbody" cols="50" rows="7"></textarea></td> </tr> <tr><td colspan="2"> <input type="submit" name="Submit" value="Send"> </td></tr></table></form></body> </html>
62. 26.Creating an HTML Form That Accepts Mail-Related Information <!-- SimpleEmail.php <?php if (empty ($mailto) ) { die ( "Recipient is blank! ") ; } if (empty ($mailsubject) ){ $mailsubject=" " ; } if (empty ($mailbody) ) { $mailbody=" " ; } $result = mail ($mailto, $mailsubject, $mailbody) ; if ($result) { echo "Email sent successfully!" ; }else{ echo "Email could not be sent." ; } ?>
65. 28. Build query string based on form input <?php if (isset($_POST['submit'])) { $rowID = $_POST['id']; mysql_connect("mysql153.secureserver.net","java2s","password"); mysql_select_db("java2s"); $query = "SELECT * FROM Employee WHERE ID='$id'"; $result = mysql_query($query); list($name,$productid,$price,$description) = mysql_fetch_row($result); }
66. 28. Build query string based on form input ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <select name="id"> <option name="">Choose a employee:</option> <option name="1">1</option> <option name="2">2</option> <option name="3">3</option> </select> <input type="submit" name="submit" value="Submit" /> </form>
67. 29. Checking input from a checkbox or a multiple select <?php $options = array('option 1', 'option 2', 'option 3'); $valid = true; if (is_array($_GET['input'])) { $valid = true; foreach($_GET['input'] as $input) { if (!in_array($input, $options)) { $valid = false; } } if ($valid) { //process input } } ?>
68. 30. Validating a single checkbox <?php $value = 'yes'; echo "<input type='checkbox' name='subscribe' value='yes'/> Subscribe?"; if (isset($_POST['subscribe'])) { if ($_POST['subscribe'] == $value) { $subscribed = true; } else { $subscribed = false;
69. 30. Validating a single checkbox print 'Invalid checkbox value submitted.'; } } else { $subscribed = false; } if ($subscribed) { print 'You are subscribed.'; } else { print 'You are not subscribed'; }
71. 31. Deal with Array Form Data <TR> <TD><INPUT TYPE="TEXT" NAME="children[]"></TD> </TR> <TR> <TD><INPUT TYPE="TEXT" NAME="children[]"></TD> </TR> </TABLE> <BR> <BR> <BR> <INPUT TYPE="SUBMIT" VALUE="Submit"> <BR> <BR> <INPUT TYPE="RESET" VALUE="Clear the Form"> </FORM> </BODY> </HTML>
72. 31. Deal with Array Form Data <!-- DealWithArrayFormData.php <?php foreach ($children as $index => $child){ echo "<BR>child[$index]=$child"; } echo "<BR>"; sort($children); foreach ($children as $index => $child){ echo "<BR>child[$index]=$child"; } ?> -->
73. 32. A process_form() Function <?php function process_form($data) { $msg = "The form at {$_SERVER['PHP_SELF']} was submitted with these values: "; foreach($data as $key=>$val) { $msg .= "$key => $val"; } mail("joeuser@somewhere.com", "form submission", $msg); } ?>
74. 33. Access widget's form value <INPUT TYPE="text" NAME="myform.email"> would be accessed in PHP as the following: <?php echo $_GET['myform_email']; ?>
81. 38. An HTML Form That Calls Itself <html> <head> <title>An HTML Form that Calls Itself</title> </head><body> <div> <?php if ( ! empty( $_POST['guess'] ) ) { print "last guess: ".$_POST['guess']; }?> <form method="post" action="<?php print $_SERVER['PHP_SELF']?>"> <p> Type your guess here: <input type="text" name="guess" /> </p></form></div> </body> </html>
82. 39. Form submitting <?php if (isset($_POST['submit'])){ echo "Hi ".$_POST['name']."!<br />"; echo "The address ".$_POST['email']." will soon be a spam-magnet!<br />"; } ?> <form action="index.php" method="post"> Name:<input type="text" name="name" size="20" maxlength="40" value="" /> Email Address: <input type="text" name="email" size="20" maxlength="40" value="" /> <input type="submit" name = "submit" value="Go!" /> </form>
83. 40. One-script form processing //File: index.php <html> <head> <title></title> </head> <body> <? $form = "<form action=amp;quot;index.phpamp;quot; method=amp;quot;postamp;quot;> <input type=amp;quot;hiddenamp;quot; name=amp;quot;seenformamp;quot; value=amp;quot;yamp;quot;> <b>Give us some information!</b><br> Your Name:<br> <input type=amp;quot;textamp;quot; name=amp;quot;nameamp;quot; size=amp;quot;20amp;quot; maxlength=amp;quot;20amp;quot; value=amp;quot;amp;quot;><br>
84. 40. One-script form processing Your Email:<br> <input type=amp;quot;textamp;quot; name=amp;quot;emailamp;quot; size=amp;quot;20amp;quot; maxlength=amp;quot;40amp;quot; value=amp;quot;amp;quot;><br> <input type=amp;quot;submitamp;quot; value=amp;quot;subscribe!amp;quot;> </form>"; if ($seenform != "y"): print "$form"; else : print "Hi, $name!. Your email address is $email"; endif; ?> </body> </html>
85. 41. Preventing Multiple Submissions on the Client Side <html> <script language="javascript" type="text/javascript"> function checkandsubmit() { document.test.submitbut.disabled = true; document.test.submit(); } </script> <body> <form action="index.php" method="post" name="test" onsubmit="return checkandsubmit ()"> <input type="hidden" name="submitted" value="yes" /> Your Name: <input type="text" name="yourname" maxlength="150" />
87. 42. Preventing Multiple Submissions on the Server Side <html> <body> <form action="index.php" method="post"> <input type="hidden" name="submitted" value="yes" /> Your Name: <input type="text" name="yourname" maxlength="150" /><br /> <input type="submit" value="Submit" style="margin-top: 10px;" /></form> </body> </html> <?php session_start (); if (! isset ( $_SESSION ['processing'] )) { $_SESSION ['processing'] = false;}
88. 42. Preventing Multiple Submissions on the Server Side if ($_SESSION ['processing'] == false) { $_SESSION ['processing'] = true; //validation if ($file = fopen ( "test.txt", "w+" )) { fwrite ( $file, "Processing" ); } else { echo "Error opening file."; } echo $_POST ['yourname']; unset ( $_SESSION ['processing'] ); } ?>
89. 43. Authenticate user: Database based <?php function authenticate_user() { header('WWW-Authenticate: Basic realm="Secret Stash"'); header("HTTP/1.0 401 Unauthorized"); exit; } if (! isset($_SERVER['PHP_AUTH_USER'])) { authenticate_user(); } else { mysql_pconnect("localhost","authenticator","secret") or die("Can't connect to database server!"); mysql_select_db("java2s") or die("Can't select authentication database!");
90. 43. Authenticate user: Database based $query = "SELECT username, pswd FROM user WHERE username='$_SERVER[PHP_AUTH_USER]' AND pswd=MD5('$_SERVER[PHP_AUTH_PW]')"; $result = mysql_query($query); // If nothing was found, reprompt the user for the login information. if (mysql_num_rows($result) == 0) { authenticate_user(); } } ?>
91. 44. Prompt Browser password dialog <?php if (($_SERVER['PHP_AUTH_USER'] != 'specialuser') || ($_SERVER['PHP_AUTH_PW'] != 'secretpassword')) { header('WWW-Authenticate: Basic Realm="Secret Stash"'); header('HTTP/1.0 401 Unauthorized'); print('You must provide the proper credentials!'); exit; } ?>
92. 45. Open browser password dialog and authenticate user based on database <?php function authenticate_user() { header('WWW-Authenticate: Basic realm="Secret Stash"'); header("HTTP/1.0 401 Unauthorized"); exit; } if(! isset($_SERVER['PHP_AUTH_USER'])) { authenticate_user(); }
93. 45. Open browser password dialog and authenticate user based on database else { mysql_connect("localhost","authenticator","secret") or die("Can't connect to database server!"); mysql_select_db("gilmorebook") or die("Can't select authentication database!"); $query = "SELECT username, pswd FROM user WHERE username='$_SERVER[PHP_AUTH_USER]' AND pswd=MD5('$_SERVER[PHP_AUTH_PW]') AND ipAddress='$_SERVER[REMOTE_ADDR]'"; $result = mysql_query($query); if (mysql_num_rows($result) == 0) authenticate_user(); mysql_close(); }?>
94. 46. Login ID Options <HTML> <HEAD> <TITLE>Displaying Login ID Options</TITLE> </HEAD> <BODY> <Hl><CENTER>Generating Login IDs for Dave</CENTER></Hl> <?php $loginfo = array ( FirstName => "Joe", LastName => "Howrod", Sex => "Male", Location => "Arizona", Age => "24", MusicChoice => "Pop", Hobby => "Dance", Occupation => "Author"); echo "<H3>The information entered by JOe:<BR></H3>"; foreach ($loginfo as $key => $val) { echo "<B>$key</B> => $val<BR>"; }
100. 50. A user registration process create table user_info ( user_id char(18), fname char(15), email char(35)); //File: index.php <? $form = " <form action=amp;quot;index.phpamp;quot; method=amp;quot;postamp;quot;> <input type=amp;quot;hiddenamp;quot; name=amp;quot;seenformamp;quot; value=amp;quot;yamp;quot;> Your first name?:<br> <input type=amp;quot;textamp;quot; name=amp;quot;fnameamp;quot; value=amp;quot;amp;quot;><br> Your email?:<br> <input type=amp;quot;textamp;quot; name=amp;quot;emailamp;quot; value=amp;quot;amp;quot;><br> <input type=amp;quot;submitamp;quot; value=amp;quot;Register!amp;quot;> </form> ";
101. 50. A user registration process if ((! isset ($seenform)) && (! isset ($userid))) : print $form; elseif (isset ($seenform) && (! isset ($userid))) : $uniq_id = uniqid(rand()); @mysql_pconnect("localhost", "root", "") or die("Could not connect to MySQL server!"); @mysql_select_db("user") or die("Could not select user database!"); $query = "INSERT INTO user_info VALUES('$uniq_id', '$fname', '$email')"; $result = mysql_query($query) or die("Could not insert user information!"); setcookie ("userid", $uniq_id, time()+2592000); print "Congratulations $fname! You are now registered!.";
102. 50. A user registration process elseif (isset($userid)) : @mysql_pconnect("localhost", "root", "") or die("Could not connect to MySQL server!"); @mysql_select_db("user") or die("Could not select user database!"); $query = "SELECT * FROM user_info WHERE user_id = '$userid'"; $result = mysql_query($query) or die("Could not extract user information!"); $row = mysql_fetch_array($result); print "Hi ".$row["fname"].",<br>"; print "Your email address is ".$row["email"]; endif; ?>