PHP unit3



Q) What is the Form?
Forms are used to get input from the user and submit it to the web server for processing.  The diagram below illustrates the form handling process.
A form is an HTML tag that contains graphical user interface items such as input box, check boxes radio buttons etc. The form is defined using the <form>...</form> tags and GUI items are defined using form elements such as input.

PHP Form Methods:

1.   PHP POST method:  This is the built in PHP super global array variable that is used to get values submitted via HTTP POST method.
Syntax:
<?php
 $_POST['variable_name'];
?>

2.    PHP GET method: This is the built in PHP super global array variable that is used to get values submitted via HTTP GET method.
Syntax:
<?php
$_GET['variable_name'];
?>
Example:
<html>
<head>
<title>A simple HTML form</title>
</head>
<body>
<form method=”post” action=”send_simpleform.php”>
<p><label for=”user”>Name:</label><br/>
<input type=”text” id=”user” name=”user”></p>
<p><label for=”message”>Message:</label><br/>
<textarea id=”message” name=”message” rows=”5” cols=”40”> </textarea></p>
<button type=”submit” name=”submit” value=”send”>Send Message</button>
</form>
</body>
</html>
NOTE: Save this file as simpleform.html

Reading Input from a Form
<html>
<head>
<title>A simple response</title>
</head>
<body>
<p>Welcome, <strong><?php echo $_POST[‘user’]; ?></strong>!</p>
<p>Your message is: <strong><?php echo $_POST[‘message’]; ?></strong></p>
</body>
</html>
NOTE: Save this file as send_simpleform.php
Q) How to Accessing Form Input with User-Defined Arrays

Text fields, text areas, and radio buttons elements can submit a single value per element name, but when working with elements such as checkboxes where the user can choose one or more items. This behavior can change using user-defined arrays.

<select name="products" multiple>
 
These elements make it possible for the user to choose multiple items. If we name the SELECT element with a plain name the script that receives this data will only have access to a single value corresponding to this name.

We can change this behavior by renaming any elements of this kind so that its name ends with an empty set of square brackets

<select name="products[]" multiple>
 
Example:
<html>
<head>
<title> An HTML form including a SELECT element</title>
</head>
<body>
<form action="list.php" method="POST">
<input type="text" name="user">
 <br>
 <textarea name="address" rows="5" cols="40">
</textarea>
<br>
<select name="products[]" multiple>
<option>Sonic Screwdriver
<option>Tricorder
<option>ORAC AI
<option>HAL 2000
</select>
<br>
<input type="submit" value="hit it!">
</form>
</body></html> 

Q) How to Combined HTML and PHP Code on a Single Page


To include the form-parsing PHP code on the same page, as a hard-coded HTML form. Such a combination can prove useful if you need to present the same form to the user more than once.

The more standard HTML you can include in your pages, the easier they are for designers and page builders to amend without asking, the programmer, for help.

Example:
<html>
<head>
<title>An HTML form that calls itself</title>
</head>
<body>
<form action=”<?php echo $_SERVER[‘PHP_SELF’]; ?>” method=”POST”>
<p><label for=”guess”>Type your guess here:</label> <br/>
<input type=”text” id=”guess” name=”guess” /></p>
<button type=”submit” name=”submit” value=”submit”>Submit</button>
</form>
</body>
</html>
The above script doesn't produce any output.
 <?php
  $num_to_guess = 42;
  $message = "";
  if (!isset($_POST[guess])) {
     $message = "Welcome to the guessing machine!";
  } elseif ($_POST[guess] > $num_to_guess) {
  $message = "$_POST[guess] is too big! Try a smaller number";
  } elseif ($_POST[guess] < $num_to_guess) {
  $message = "$_POST[guess] is too small! Try a larger number";
 } else { // must be equivalent
  $message = "Well done!";
 `}
 ?>
 <html>
 <head>
<title>A PHP number guessing script</title>
</head>
<body>
 <h1>
 <?php print $message ?>
 </h1>
<form action="<?php print $_SERVER[PHP_SELF] ?>" method="POST">
 Type your guess here: <input type="text" name="guess">
 </form>
 </body>
 </html>

Q) How to Use Hidden Fields to Save State

A hidden field behaves the same as a text field, except that the user cannot see it unless he views the HTML source of the document that contains it.

Finally, before the HTML code for the form submission button, add the hidden field. This field saves the incremented value of $num_tries:


<input type=”hidden” name=”num_tries” value=”<?php echo $num_tries; ?>”/>

Example:
<?php
 $num_to_guess = 42;
$num_tries = (isset($_POST[‘num_tries’])) ? $num_tries + 1 : 1;
 if (!isset($_POST[‘guess’])) {
 $message = “Welcome to the guessing machine!”;
 } elseif (!is_numeric($_POST[‘guess’])) { // is not numeric
 $message = “I don’t understand that response.”;
 } elseif ($_POST[‘guess’] == $num_to_guess) { // matches!
 $message = “Well done!”;
 } elseif ($_POST[‘guess’] > $num_to_guess) {
 $message = $_POST[‘guess’].” is too big! Try a smaller number.”;
 } elseif ($_POST[‘guess’] < $num_to_guess) {
 $message = $_POST[‘guess’].” is too small! Try a larger number.”;
 } else { // some other condition
 $message = “I am terribly confused.”;
 }
 ?>
<html>
 <head>
<title>A PHP number guessing script</title>
</head>
<body>
 <h1><?php echo $message; ?></h1>
 <p><strong>Guess number:</strong> <?php echo $num_tries; ?></p>
<form action=”<?php echo $_SERVER[‘PHP_SELF’]; ?>” method=”POST”>
<p><label for=”guess”>Type your guess here:</label><br/>
<input type=”text” id=”guess” name=”guess” /></p>
<input type=”hidden” name=”num_tries” value=”<?php echo $num_tries; ?>”/>
<button type=”submit” name=”submit” value=”submit”>Submit</button>
</form>
</body>
</html>



Q) How to Redirecting the User

When a server script communicates with a client, it must first send some headers that provide information about the document to follow. PHP usually handles this for you automatically, but you can choose to send your own header lines with PHP’s header() function.

To call the header() function, you must be absolutely sure that no output has been sent to the browser. The first time content is sent to the browser, PHP sends out headers of its own, and it’s too late for you to send any more. Any output from your document, even a line break or a space outside your script tags, causes headers to be sent. If you intend to use the header() function in a script, you must make certain that nothing precedes the PHP code that contains the function call. You should also check any libraries that you might be using.

The below code shows typical headers sent to the browser by PHP, beginning with line 3, in response to the request in line 1.

1: HTTP/1.1 200 OK
2: Date: Sun, 29 Jan 2012 15:50:28 PST
3: Server: Apache/2.2.21 (Win32) PHP/5.4.0
4: X-Powered-By: PHP/5.4.0
5: Connection: close
6: Content-Type: text/html

By sending a Location header rather than PHP’s default header, you can cause the browser to be redirected to a new page, such as the following:

header(“Location: http://www.samspublishing.com”);

Example that Using header() to Redirect User
<?php
$num_to_guess = 42;
$num_tries = (isset($_POST[‘num_tries’])) ? $num_tries + 1 : 1;
if (!isset($_POST[‘guess’])) {
$message = “Welcome to the guessing machine!”;
} elseif (!is_numeric($_POST[‘guess’])) { // is not numeric
$message = “I don’t understand that response.”;
} elseif ($_POST[‘guess’] == $num_to_guess) { // matches!
header(“Location: congrats.html”);
exit;
} elseif ($_POST[‘guess’] > $num_to_guess) {
$message = $_POST[‘guess’].” is too big! Try a smaller number.”;
} elseif ($_POST[‘guess’] < $num_to_guess) {
 $message = $_POST[‘guess’].” is too small! Try a larger number.”;
} else { // some other condition
$message = “I am terribly confused.”;
}
?>
<html>
 <head>
<title>A PHP number guessing script</title>
</head>
<body>
<h1><?php echo $message; ?></h1>
<p><strong>Guess number:</strong> <?php echo $num_tries; ?></p>
<form action=”<?php echo $_SERVER[‘PHP_SELF’]; ?>” method=”POST”>
<p><label for=”guess”>Type your guess here:</label><br/>
 <input type=”text” id=”guess” name=”guess” /></p>
<input type=”hidden” name=”num_tries” value=”<?php echo $num_tries; ?>”/>
<button type=”submit” name=”submit” value=”submit”>Submit</button>
</form>
</body>
</html>
Q)How to Sending Mail on Form Submission.

Before sending mail, the system is should properly configured. This can be done using mail( ) function. Before the use of mail() function to send mail, it need to set up a few directives in the php.ini file so that the function works properly. Open php.ini with a text editor and look for these lines:

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = me@example.com

; For Unix only. You may supply arguments as well (default: “sendmail -t -i”).
; http://php.net/sendmail-path
;sendmail_path =

If you’re using Windows as your web server platform, the first two directives apply to it. For the mail() function to send mail, it must be able to access a valid outgoing mail server. If you plan to use the outgoing mail server of your choosing, the entry in php.ini could look like this:

SMTP = smtp.yourisp.net

The second configuration directive is sendmail_from, which is the email address used in the From header of the outgoing email. It can be overwritten in the mail script itself but normally operates as the default value, as in this example:

A good rule of thumb for Windows users is that whatever outgoing mail server you’ve set up in your email client on that machine, you should also use as the value of SMTP in php.ini.

If your web server is running on a Linux/UNIX platform, you use the sendmail functionality of that particular machine. In this case, only the last directive applies to you: sendmail_path. The default is sendmail -t -i, but if sendmail is in an odd place or if you need to specify different arguments, feel free to do so, as in the following example, which does not use real values:

sendmail_path = /opt/sendmail -odd -arguments

After making any changes to php.ini on any platform, you must restart the web server process for the changes to take effect.

Example: Creating a Simple Feedback Form

1: <!DOCTYPE html>
2: <html>
3: <head>
4: <title>E-Mail Form</title>
5: </head>
6: <body>
7: <form action=”sendmail.php” method=”POST”>
8: <p><label for=”name”>Name:</label><br/>
9: <input type=”text” size=”25” id=”name” name=”name”/></p>
10: <p><label for=”email”>E-Mail Address:</label><br/>
11: <input type=”text” size=”25” id=”email” name=”email”/></p>
12: <p><label for=”msg”>Message:</label><br/>
13: <textarea id=”msg” name=”msg” cols=”30” rows=”5”></textarea></p>
14: <button type=”submit” name=”submit” value=”send”>Send Message</button>
15: </form>
16: </body>
17: </html>

Creating the Script to Send the Mail
1:<?php
2: //start building the mail string
3: $msg = “Name: “.$_POST[‘name’].”\n”;
4: $msg .= “E-Mail: “.$_POST[‘email’].”\n”;
5: $msg .= “Message: “.$_POST[‘message’].”\n”;
6:
7: //set up the mail
8: $recipient = “you@yourdomain.com”;
9: $subject = “Form Submission Results”;
10: $mailheaders = “From: My Web Site <defaultaddress@yourdomain.com> \n”;
11: $mailheaders .= “Reply-To: “.$_POST[‘email’];
12:
13: //send the mail
14: mail($recipient, $subject, $msg, $mailheaders);
15: ?>
16: <!DOCTYPE html>
17: <html>
18: <head>
19: <title>Sending mail from the form in Listing 11.10</title>
20: </head>
21: <body>
22: <p>Thanks, <strong><?php echo $_POST[‘name’]; ?></strong>,
23: for your message.</p>
24: <p>Your e-mail address:
25: <strong><?php echo $_POST[‘email’]; ?></strong></p>
26: <p>Your message: <br/> <?php echo $_POST[‘message’]; ?> </p>
27: </body>
28: </html>


Q) Explain the Working with File Uploads
PHP makes available to deal with web browsers support file uploads of input.

Information about the uploaded file becomes available in the $_FILES superglobal, which is indexed by the name of the upload field (or fields) in the form. The corresponding value for each of these keys is an associative array. These fields are described in Table, using fileupload as the name of the form field used for the upload.


A Simple File Upload Form
1: <!DOCTYPE html>
2: <html>
3: <head>
4: <title>A simple file upload form</title>
5: </head>
6: <body>
7: <form action=”do_upload.php” enctype=”multipart/form-data” method=”POST”>
8: <input type=”hidden” name=”MAX_FILE_SIZE” value=”1048576” />
9: <p><label for=”fileupload”>File to Upload:</label>
10: <input type=”file” id=”fileupload” name=”fileupload” /></p>
11: <button type=”submit” name=”submit” value=”send”>Upload File</button>
12: </form>
13: </body>
14: </html>

A File Upload Script
1: <?php
2: $file_dir = “/path/to/upload/directory”;
3:
4: foreach($_FILES as $file_name => $file_array) {
5: echo “path: “.$file_array[‘tmp_name’].”<br/>\n”;
6: echo “name: “.$file_array[‘name’].”<br/>\n”;
7: echo “type: “.$file_array[‘type’].”<br/>\n”;
8: echo “size: “.$file_array[‘size’].”<br/>\n”;
9:
10: if (is_uploaded_file($file_array[‘tmp_name’])) {
11: move_uploaded_file($file_array[‘tmp_name’],
12: “$file_dir/”.$file_array[‘name’])
13: or die (“Couldn’t move file”);
14: echo “File was moved!”;
15: } else {
16: echo “No file found.”;
17: }
18: }
19: ?>


Q) Explain briefly about cookies in PHP.
Cookies are text files stored on the client computer and they are kept of use tracking purpose. A single host can request that up to 20 cookies be stored by a user’s browser. Each cookie consists of a name, value, and expiration date, as well as host and path information. The size of an individual cookie is limited to 4KB.
There are three steps involved in identifying returning users −
·         Server script sends a set of cookies to the browser. For example name, age, or identification number etc.
·         Browser stores this information on local machine for future use.
·         When next time browser sends any request to web server then it sends those cookies information to the server and server uses that information to identify the user.

Q) How to Set a Cookie with PHP.
A cookie is created with the setcookie() function. This function requires upto six arguments and should be called before <html> tag. For each cookie this function has to be called separately.

Syntax

<?php
setcookie(cookie_name, cookie_value, [expiry_time], [cookie_path], [domain], [secure], [httponly]);
?>
HERE,
  • “setcookie” is the PHP function used to create the cookie.
  • “cookie_name” is the name of the cookie that the server will use when retrieving its value from the $_COOKIE array variable. It’s mandatory.
  • “cookie_value” is the value of the cookie and its mandatory
  • “[expiry_time]” is optional; it can be used to set the expiry time for the cookie such as 1 hour. The time is set using the PHP time() functions plus or minus a number of seconds greater than 0 i.e. time() + 3600 for 1 hour.
  • “[cookie_path]” is optional; it can be used to set the cookie path on the server. The forward slash “/” means that the cookie will be made available on the entire domain. Sub directories limit the cookie access to the subdomain.
  • “[domain]” is optional, it can be used to define the cookie access hierarchy i.e. www.cookiedomain.com means entire domain while www.sub.cookiedomain.com limits the cookie access to www.sub.cookiedomain.com and its sub domains.
  • “[secure]” is optional, the default is false. It is used to determine whether the cookie is sent via https if it is set to true or http if it is set to false.
  •  “[Httponly]” is optional. If it is set to true, then only client side scripting languages i.e. JavaScript cannot access them.
Note: the php set cookie function must be executed before the HTML opening tag.
Following example will create two cookies name and age these cookies will be expired after one hour.
<?php
   setcookie("name", "John Watkin", time()+3600, "/","", 0);
   setcookie("age", "36", time()+3600, "/", "",  0);
?>
<html>
   
   <head>
      <title>Setting Cookies with PHP</title>
   </head>
   
   <body>
      <?php echo "Set Cookies"?>
   </body>
   
</html>

Accessing Cookies with PHP

PHP provides many ways to access cookies. Simplest way is to use either $_COOKIE or $HTTP_COOKIE_VARS variables.
Following example will access all the cookies set in above example.
<html>
   
   <head>
      <title>Accessing Cookies with PHP</title>
   </head>
   
   <body>
      
      <?php
         echo $_COOKIE["name"]. "<br />";
         
         /* is equivalent to */
         echo $HTTP_COOKIE_VARS["name"]. "<br />";
         
         echo $_COOKIE["age"] . "<br />";
         
         /* is equivalent to */
         echo $HTTP_COOKIE_VARS["age"] . "<br />";
      ?>
      
   </body>
</html>
You can use isset() function to check if a cookie is set or not.
<html>
   
   <head>
      <title>Accessing Cookies with PHP</title>
   </head>
   
   <body>
      
      <?php
         if( isset($_COOKIE["name"]))
            echo "Welcome " . $_COOKIE["name"] . "<br />";
         
         else
            echo "Sorry... Not recognized" . "<br />";
      ?>
      
   </body>
</html>

Deleting Cookie with PHP

To delete a cookie you should call setcookie() with the name argument only .
<?php
   setcookie( "name", "", time()- 60, "/","", 0);
   setcookie( "age", "", time()- 60, "/","", 0);
?>
<html>
   
   <head>
      <title>Deleting Cookies with PHP</title>
   </head>
   
   <body>
      <?php echo "Deleted Cookies" ?>
   </body>
   </html>
Q) Write a note on session.
PHP session is a way of storing information in session variables, which could be used across multiple web pages for authentication. Unlike a cookie, the information is not stored on the user’s computer instead a session creates a file on the server, in a temporary directory, where it stores information in session variables. This stored information for a session will be available to all the web pages on the site during navigation. On the server, the location of a temporary file is determined by a setting in the php.ini file called session.save_path.
PHP session when created, it involves the following three steps.
  • When a session is created, PHP generates a unique session identifier, which is a random string of 32 hexadecimal numbers. A session id resembles somethinglike this 9c8foj87c3jj973actop1re472e8774.
  • Server sends a cookie known as PHPSESSID to the user’s machine to store unique session identification string.
  • The Server will generate a file in a designated temporary directory that has the name of the unique session identifier prefixed by sess _g.  sess_9c8foj87c3jj973actop1re472e8774.

Q) How to Starting a PHP Session.

A PHP session is started or created with the session_start () function and is destroyed with the session_destroy () function. A PHP global variable, known as $_SESSION, is used to set values to session variables. We can unset all values set to session variables using the session_unset () function.
SYNTAX
DESCRIPTION
session_start();
It is an in-built function used to create a PHP session.
session_destroy();
It is an in-built function used to destroy a PHP session.
session_unset();
It is an in-built function used to unset all session variables. It is triggered before the session_destroy () function.
isset ();
It is an in-built function to check if session variable is already set or not.
$_SESSION
It is a PHP global variable that is used to set values to Session variables. E.g. $_SESSION[“userID”] = “php_user”;
print_r($_SESSION)
It will print the complete array of the session variables and their values.

Q) Explain the working with Session variables.
 
We are be going to do the following operations using PHP session variables.
  • Start a PHP Session and set Session Variables: A new PHP session starts with the session_start () function. Once a session is created, then we can set values for the session variables using the PHP global variable: $_SESSION as shown below. Here, we have set the values for the session variables “userID” as “php_user” and “password” as “tutorials”
<?php
session_start();
?>
<html>
   <head>
      <title>PHP Session - Create</title>
   </head>
<body>
<?php
$_SESSION["userID"] = "php_user";
$_SESSION["password"] = "tutorials";
echo "<br>PHP Session is established and session variables are set successfully!";
?>
</body>
</html>

·         Retrieve PHP Session Variables values: We can retrieve the values of the session variables that we set last time after creating PHP session. When we open PHP session at the beginning of each page (session_start ()) should be written as shown below. Here, we are retrieving and echoing those values using the global $_SESSION variable.

<?php
// Start the PHP session
session_start();
?>
<!DOCTYPE html>
<html>
   <head>
      <title>PHP Session - Retrieve</title>
   </head>
<body>
<?php
// Echo PHP session variables that were set before on previous page
echo "User ID is " . $_SESSION["userID"] . ".<br><br>";
echo "Password is " . $_SESSION["password"] . ".";
?>
</body>
</html>

·         Update PHP Session Variables values: We can update the values of the session variables in the same session by overwriting the existing values of those variables as shown below. As explained earlier, before we start updating the values of the session variables, we need to open a PHP session at the beginning of each page (session_start ()). Here, we have updated the values for the session variables “userID” as “new_php_user” and “password” as “education”.
<?php
// Start the PHP session
session_start();
?>
<!DOCTYPE html>
<html>
   <head>
      <title>PHP Session - Modify</title>
   </head>
<body>
<?php
// Set PHP session variables
$_SESSION["userID"] = "new_php_user";
$_SESSION["password"] = "education";
echo "PHP Session variables are modified successfully!<br><br>";
print_r($_SESSION);
?>
</body>
</html>
Q) How to Destroy a PHP Session and unset all Session Variables values.

1.    session_destroy () function is used to destroy the current session.
2.    session_unset () function is used unset the values for all the PHP session variables.

Example:

<?php
session_start();
?>
<html>
   <head>
      <title>PHP Session - Destroy</title>
   </head>
<body>
<?php
session_unset();
print_r($_SESSION);
session_destroy();
echo "<br><br>PHP Session is destroyed successfully and all session variables are removed!<br><br>";
?>
</body>
</html>

Q) Using Sessions in an Environment with Registered Users
Working with Registered Users
Suppose that you’ve created an online community, or a portal, or some other type of application that users can “join.” The process usually involves a registration form, where the user creates a username and password and completes an identification profile.

From that point forward, each time a registered user logs in to the system, you can grab the user’s identification information and store it in the user’s session.
The items you decide to store in the user’s session should be those items you can imagine using quite a bit—and that would be inefficient to continually extract from the database.

For example, suppose that you have created a portal in which users are assigned a certain level, such as administrator, registered user, anonymous guest, and so forth. Within your display modules, you would always want to check to verify that the user accessing the module has the proper permissions to do so.

Thus, “user level” is an example of a value stored in the user’s session, so that the authentication script used in the display of the requested module only has to check a session variable—there is no need to connect to, select, and query the database.

Comments

Popular posts from this blog

I YEAR - ICT - UNIT 5

C Lab Programs- I B.Com(CA)