Bài giảng Web Technologies and e-Services - Bài 11: Maintaining state through multiple forms

PHP Sessions • PHP supports two functions that enable you to retain data between forms • session_start() - either starts a new session or resumes one if a session exists • Run at the start of every script • By default creates a unique session ID stored as a cookie • session_register() - registers one or more variables as session variables $name = 'Matthew'; $preference = 'Soccer Equipment'; session_register('name', 'preference'); Summary • Hidden fields are HTML form fields you can use to set a variable name and variable value without displaying them on a form. • Cookies provide a way for Web server applications to store small pieces of data on the user’s hard disk. • PHP session functions provide a convenient way to retain data between PHP scripts. • Use session_start() and session_register() functions to start sessions and define session variables, respectively

pdf40 trang | Chia sẻ: hachi492 | Ngày: 06/01/2022 | Lượt xem: 334 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Web Technologies and e-Services - Bài 11: Maintaining state through multiple forms, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Maintaining state through multiple forms HTTP – stateless protocol 2 HTTP is a stateless protocol àOnce a web server completes a client's request for a web page, the connection between the two goes away. àThere is no way for a server to recognize that a sequence of requests all originate from the same client. What Are Multiple-Form Web Sessions? • A multiple-form Web session leads the user through a series of HTML forms that work together and pass data from form to form. • E.g. • To build a shopping cart or on-line survey. • To save user authentication information from page to page • To store persistent user preferences on a site 3 Example Multiple Screen Session 4 How to maintain the state through multiform? • Use tricks to keep track of state information between requests (session tracking) • Using hidden form fields • URL rewriting: every local URL on which the user might click is dynamically modified to include extra information • • Using cookies: a bit of information that the server give to a client à depends on the client • Using session 5 Content 1. Hidden fields 2. User browser cookies 3. PHP session 6 1. Hidden fields • Hidden fields are part of HTML forms • Not displayed but value can be accessed in receiving script like any other variable. • Can still be viewed by user’s who view source. 7 A Full Script Example • Consider an example script sets a hidden field • Implements the Order Info form • on submit sends data to order2.php 8 PHP Script – order.html 1. Order Product 2. 3. Hardware Product Order Form 4. 5. We have hammers, handsaws, and wrenches on special today! 6. 7. 8. Enter Item: 9. Enter Quantity: 10. 11. 12. 9 The Output ... The previous code can be executed at 10 Receiving Hidden Fields in Web Sessions • Your scripts can receive data from hidden fields like any other data. • Suppose the following is stored at: order2.php 1. Order Product 2 2. 3. 4. <?php $sample_hidden = $_POST[“sample_hidden”]; 5. $product = $_POST[“product”]; $quantity = $_POST[“quantity”]; 6. print ""; 7. print "Hidden value=$sample_hidden "; 8. print "You selected product=$product and quantity=$quantity"; 11 Receiving PHP Script 9. print " "; 10. print ""; 11. print ""; 12. print 'Please enter your name:'; 13. print ''; 14. print ' and billing code: (5 digits)'; 15. print '<input type="text" size="5" maxlength="5" name="code">'; 16. print ' '; 17. print ''; 18. ?> 12 Sending email from PHP scripts • Sometimes it is useful to send email from a PHP script: • PHP uses mail() that by default sends e-mail via the Simple Mail Transfer Protocol (SMTP). mail(to_address, subject, message, extra_headers); 13 Specify the destination email address. Specify the subject line of the e-mail. Specify the Text of the email Specify additional email headers. Consider the following example 1. $dest='orders@hardwareville.com'; 2. $subject = 'New Hardware Order'; 3. $message = 'Enclosed is a new order for 12 hammers.\n Thanks.'; 4. $extra = 'From: harry@hardwareville.com'; 5. mail( $dest, $subject, $message, $extra ); 14 Consider the following full example • Implements save and notify • Called from order2.php and saved at order3.php • Can access variables $product, $quantity, and $sample_hidden sent as hidden fields from the Billing Info form. 15 The following PHP Script 1. Order Product 3 2. <?php 3. $sample_hidden = $_POST[“sample_hidden”]; quantity=$_POST[“$quantity”]; 4. $product = $_POST[“product”]; $name=$_POST[“name”]; 5. $email='orders@hardwareville.com'; 6. $body = "New Order: Product=$product Number=$quantity Cust=$name Code=$code"; 7. print ''; 8. print "Sending e-mail to order handling department at $email ... "; 9. print "The e-mail body is : $body. "; 10. $from = 'harry@hardwareville.com'; 11. $subject = "New order from $name"; 12. mail($email, $subject, $body, "From: $from"); 13. print ' E-mail sent. Thanks for ordering. '; 14. print "By the way, sample hidden=$sample_hidden"; 15. ?> 16 Would have the following output 17 Would have the following output 18 Content 1. Hidden fields 2. User browser cookies 3. PHP session 19 Using Browser Cookies • Cookies are small pieces of data that a Web application can save when a user visits the Web page. • Stored on the visitor’s hard drive • a Web page script can read the previously stored browser cookie data 20 Understanding Cookie Limitations • Users can easily disable the cookies feature. • People move around. • Users may delete cookies. • PHP sets limit on cookies 21 The disable cookie screen in Netscape 22 Setting and Reading Cookies • Cookies can be set in memory or on hard disk • Set on hard disk are deleted when browser closes • Can use the setcookie() script • setcookie('Customer_name', 'Denise'); 23 Directs browser to create a cookie Specify the cookie’s name Specify the cookie’s value Setting A Cookie on a Hard Drive • You need to use the time() function when want to set a cookie on a hard drive. 24 A full example of setting a cookie. • Suppose a front-end web page asks for some survey information: <input type="text" size="15" maxlength="20" name="custname"> <input type="radio" name="prefers" value="power tools" checked > Power Tools? <input type="radio" name="prefers" value="hand tools"> Hand Tools? <input type="radio" name="prefers” value="air fresheners"> Air Fresheners? 25 The following script runs when submitted – setcookie.php 1. <?php $prefers = $_POST[“prefers”]; $expire=$_POST[“expire”]; $custname=$_POST[“custname”]; 2. $expire = time() + (60 * 60 * 24 * 30); 3. setcookie("name", $custname, $expire); 4. setcookie("preference", $prefers, $expire); 5. ?> 6. 7. Happy Harry's Hardware Catalog 8. 9. <?php 10. print "Thanks $custname! “; 11. print “Let’s now look at $prefers... "; 12.?> 26 Would output: 27 Reading Cookies • You can read a cookie by using a variable name with the same name as a cookie: • print “$cust_name”; 28 Reading Cookies with REGISTER_GLOBALS Off • To read a cookie value use the $_COOKIE[] associative array to get the cookie function • $cust_name= $_COOKIE[“cust_name”]; 29 Example Script that read a cookie – readcookie.php 1. 2.Happy Harry's Hardware Catalog 3. 4.<?php 5. print ''; 6. if (isset($name)){ 7. print "Welcome back to our humble hardware site, $name."; 8. } else { 9. print ''; 10. print 'Welcome to our humble hardware site.'; 11. } 12. if ($preference == 'hand tools'){ 13. print ' We have hammers on sale for 5 dollars!'; 14. } elseif ($preference == 'power tools'){ 15. print ' We have power drills on sale for 25 dollars!'; 16. } elseif ( $preference == 'air fresheners'){ 17. print ' We now carry extra-strength air fresheners!'; 18. } else { 19. print ' '; 20. print 'We have drills and hammers on special today!'; 21. } 22.?> 30 Example Script that read a cookie 1. 2.Happy Harry's Hardware Catalog 3. 4.<?php $name = $_COOKIE[“name”]; $preference = $_COOKIE[“preference”]; 5. print ''; 6. if (isset($name)){ 7. print "Welcome back to our humble hardware site, $name."; 8. } else { 9. print ''; 10. print 'Welcome to our humble hardware site.'; 11. } 12. if ($preference == 'hand tools'){ 13. print ' We have hammers on sale for 5 dollars!'; 14. } elseif ($preference == 'power tools'){ 15. print ' We have power drills on sale for 25 dollars!'; 16. } elseif ( $preference == 'air fresheners'){ 17. print ' We now carry extra-strength air fresheners!'; 18. } else { 19. print ' '; 20. print 'We have drills and hammers on special today!'; 21.} 22. ?> 31 Content 1. Hidden fields 2. User browser cookies 3. PHP session 32 PHP Sessions • PHP supports two functions that enable you to retain data between forms • session_start() - either starts a new session or resumes one if a session exists • Run at the start of every script • By default creates a unique session ID stored as a cookie • session_register() - registers one or more variables as session variables $name = 'Matthew'; $preference = 'Soccer Equipment'; session_register('name', 'preference'); 33 Example PHP Code 1. 2. Order Product 3. 4. 5. Hardware Product Order Form 6. We have hammers, handsaws, and wrenches. 7. Enter Item: 8. Enter Quantity: 9. <?php 10. $sample_hidden='Welcome Again!'; 11. session_register('sample_hidden'); 12. ?> 13. 14. 15. 34 Since PHP 5.4 $_SESSION['sample_hidden ']=$sample_hidden; Use the following script to read the session data - sessions2order.php 1. 2. Order Product 2 3. 4. 5. <?php $sample_hidden = $_SESSION['sample_hidden']; 6. print " Sample hidden= $sample_hidden"; 7. print "You selected product=$product and quantity=$quantity"; 8. session_register('product’); session_register('quantity'); 9. print 'Please enter your name'; 10. print ''; 11. print ' and Billing Code: (5 digits)'; 12. print ''; 13. print ' '; 14. print ''; 15. print ''; 16. ?> 35 Example output 36 This script can be executed at: Some session extras • session_is_registered() - can be used to determine if a variable comes from a session: if (session_is_registered('name')){ print "got name=$name from session"; } else { print "name=$name not set from session"; } 37 PHP 5.4 if(isset($_SESSION[$name])) Session Extras - $_SESSION • Use $_SESSION Associative array when REGISTER_GLOBALS are off in php.ini • Do not need to use session_register() session_start(); $_SESSION['sample_hidden'] = 'Welcome!'; 38 Summary • Hidden fields are HTML form fields you can use to set a variable name and variable value without displaying them on a form. • Cookies provide a way for Web server applications to store small pieces of data on the user’s hard disk. • PHP session functions provide a convenient way to retain data between PHP scripts. • Use session_start() and session_register() functions to start sessions and define session variables, respectively 39 Question? 40

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_web_technologies_and_e_services_bai_11_maintaining.pdf