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
40 trang |
Chia sẻ: hachi492 | Ngày: 06/01/2022 | Lượt xem: 341 | Lượt tải: 0
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:
- bai_giang_web_technologies_and_e_services_bai_11_maintaining.pdf