650 likes | 791 Views
Introduction to PHP development. Daniel Reeves Web Applications Developer ResNET UNC Chapel Hill. My Assumptions. Introductory class Skill Level Programming concepts Topics Covered Future Presentations Mind Numbing Materials. Outline. Introduction PHP Basics Programming and PHP
E N D
Introduction to PHP development Daniel Reeves Web Applications Developer ResNET UNC Chapel Hill
My Assumptions • Introductory class • Skill Level • Programming concepts • Topics Covered • Future Presentations • Mind Numbing • Materials
Outline • Introduction • PHP Basics • Programming and PHP • PHP Topics • Questions
Materials • Location • http://webmasters.unc.edu/presentations/ • ZIP file of all materials (ppt, handout, code) • Handout • Terms, tips, Google search strategies • PowerPoint • Video
To PHP or not to PHP? The Pros • Great Documentation • Allows coding to modern standards • Open Source • Global and Diverse Developer Community • Don’t have to reinvent the wheel • Total Programmer Control • Easy to deploy
To PHP or not to PHP? The Cons • Inconsistent function names • Only Basic scoping • Constantly Evolving • Total Programmer Control • Not most efficient language
Google it !!!!! • When in doubt, search! • Search before you build • Properly formed Searches on Google • Google’s autocomplete is • For PHP searches, start by typing “php” • Suggestions will start to show
Programming Philosophy • Architecture Analogy • Structure: Problem/Constraints/Solution • Materials • Tools (data structures) • 4 general uses: • automation, iteration/reuse, functionality, uniformity • Know Thy Enemy • Pure problem solving
Programming Tips • Process Sequentially • Save often, keep multiple versions • Test incrementally • Reuse code, copy and paste • Start small and build • Solving problems is a mental process • Walk away and come back
Client/Server • Client = User’s Browser • Server = Websites, Online files • PHP server only • Can only process when … • When a page is requested • After a user action has submitted the page
What can one do with PHP? • Database Programming • File Read/Write • Form Processing • Form Validation • Ajax Interaction • PDF Creation • File Search and Archive • Interact with web APIs • Interact with MS Office • Image Processing and • Chart Creation • XML file Read/Write • Sending Email • Writing Code
Topics for Today • Basic PHP/HTML interaction • Creating HTML with PHP • PHP form validation and processing • Server request interaction • Input validation • Basic debugging and error trapping • Methods for finding and correcting errors
What you need • Server space where PHP is enabled • http://help.unc.edu/108 • Editing program to write the code in • Notepad++ good, free editor for coding • HTML Browser for viewing created pages • Firefox is my preference • Second monitor – recommended
Writing Clean Code • Writing Clean Code • Using tabs for code, white space, line breaks • Ex: which looks cleaner, easier to read? <?php echo “test”; $foo++; ?> OR <?php echo “test”; $foo++; ?>
PHP file, <?php tag, & ‘;’ • Files end in .php (ex: contact_form.php) • Server recognizes code within <?php tag • Requires ?> closing tag • When writing opening tag, write closing • Code not in PHP tags displays as HTML • End statements with ;
Example – php_tags <?php ?> testing
Errors and Error Messages • Empty Page • Difficult, frustrating when page is just blank • Turn on Errors • On Handout: ini_set('display_errors',1); • Shows warnings and errors • Dangerous for production code
Example – php_errors <?php ini_set('display_errors',1); ?> testing
PHP Programming – Hello World • How do I know if PHP is turned on? • php_info(); • “Hello World” • Echo statement • Single/Double quotes in PHP • echo “testing”; same as echo ‘testing’; • Use double quotes for variables
Example – Hello World <?php ini_set('display_errors',1); php_info(); echo “Hello World”; ?> testing
What are Variables ? • Basic building block of programming • Stores information/data • 3 basic parts: name, type and value • Variables store different types of data • Numbers, Strings, Boolean (True/False) • PHP Initialization • PHP Types
PHP Variable Syntax • All variables start with “$” • Any combination of letters, numbers, “_” • Variable Type Examples • Ex: $customer = “Daniel Reeves”; • Ex: $cost = 1.25; • Ex: $is_administrator = true; • Will use $foo as default variable • $foo, $foo1, $foo2, etc.
Manipulating Variables • Set Variables • $foo = 1; $foo = “test”; $foo1 = $foo • Display Variables • echo $foo; echo “$foo”; • Change and Combine text • $foo = “testing”.“ is fun”; • $foo1 = “Foo’s Value is: $foo”;
And Arrays? • Collections of variable values • Access various elements from index • Index number or keyword • 1st element starts at 0 • Format: $array_name[‘index’] • Array elements same as variables • Mostly for form processing • $_GET, $_POST
PHP Array Syntax • Create • $numbers = array(1,2,3,4,5); • $names = array(‘fn’=>”Bob”, ‘ln’=>”Smith”); • Numbers • 5 = $numbers[4]; • Strings • “Bob” = $names[‘fn’]; • “Bob” = $names[0];
Conditionals – If/Then/Else • Need to test truth values • If/ Else If/Else • Establish consequences based on test • Allows for options • Example: Contact form • Category for student major • When submitted, choice would be tested • Assign a different action per major
Conditionals – PHP Syntax • Syntax: if( testcondition ){ code } • Syntax for if, else: • if( testcondition ){ code } • else if( testcondition){ code } • else {code} • Test values with: <, <=, >, >=, !, ==, !=
PHP Programming – Functions • Reuse • Separate code • Elements • Name, Parameters, Code, Return • Many system functions available • include(); php_info(); echo “”; • Ex: function strlen($foo); • Returns number of characters in string
Review – PHP Basics • <?php and ?> tags, required “;” • Turn on errors and error messages • Variables • Strings, Numbers, Boolean (T/F) • Arrays • Conditionals • Functions
Adding Dynamic Content • Use variables • 2 Philosophies • 2 ways to display information • Echo • echo “First Name: $first_name”; • In HTML • First Name: <?= $first_name ?>
Example – hello_world2 <?php $first_name = “Bob”; $last_name = “Smith”; echo “<html><body>”; ?> <p> My Name is: <?= $first_name ?> <?= $last_name?> </p> </body></html>
Creating HTML with PHP • HTML Break and new line • To write new line to document, use \n • To add new line to rendered HTML, use <br> • Build then display • HTML put just below php on page • Nice segregation of server, client sides • Much easier to comment and debug • Create JS with PHP too
Display HTML uniformity • Includes • Headers, footers, menus • Widths, heights • Easily keep for element sizes uniform • Naming conventions • Prefix for names or css classes • Other repeated code • Especially if it may ever change
Review – PHP and HTML • Adding dynamic content • Use Variables • Output to screen: echo, <?= ?> • Breaks <br> and New Lines \n • Display Uniformity • Includes, reuse, naming, cohesive form items
PHP and form submission • Process of filling out a form • Where PHP gets access to form • GET and POST • PHP and request information • GET and POST arrays • $_GET[‘form element name’]; • $_POST[‘form element name’];
Getting data from your request • Good first test: use GET • Can see parameters you are sending • Don’t need form • Print entire $_GET array: print_r($_GET); • Set items from GET to variables • Use same name as name you sent • Once variable, can process further
Example - get <?php print_r($_GET); if($_GET){ $foo = $_GET['passed_value']; } else { $foo = "Empty"; } ?> Value is: <?= $foo ?>
EXAMPLE – contact_form <html><body> <form action=“contact_form.php” method=“get”> Input: <input type=“text” name=“passed_value” value=“<?= $foo ?>”> <input type=“submit” value=“Submit”> </form> </body></html>
Validation Options • Cleaning user input discussed later • Multiple validations of data • Client = JavaScript, Server = PHP • JS can be turned off from client, PHP cannot • Test both ends, safer, better use experience • Validation proportional to importance • Separate from security
Using PHP for validation • Test multiple issues for same value • Test with conditionals • Test for empty values • If($foo == “”) { do something } • Flags = Boolean variables (T/F) • Use variable to verify validation • Set to true • If any validation fails, set it to false
EXAMPLE – contact_form (above form) <?php if($_GET){ $foo = $_GET[‘passed_value’]; $form_passes = true; if($foo == “”){ $form_passes = false; } if(strlen($foo) < 5) {$form_passes = false; } if($form_passes){ finish processing } } ?>
Redisplay and Error notification • Good idea to redisplay form • Can redisplay all submitted information • Easy to find & read error messages • DIV at top of page, red and bold text • Tailored message for each issue • Interact with JS if helpful • PHP mark the fields in error
Process for Validation • User Submits page to server • Use PHP to get information • Test information • Not empty, length • Errors and Redisplay • Show messages • Mark errors
Review – PHP and Forms • PHP gets form data at submission • $_GET, $_POST and variables • Validation • Conditionals • Functions • Error notification and Redisplay • Communicate clearly with user