Www.hope.ac.uk Faculty of Sciences and Social Sciences HOPE PHP – Working with Input Stewart...

26
www.hope.ac.uk Faculty of Sciences and Social Sciences HOPE PHP – Working with Input Stewart Blakeway FML 213 [email protected]
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    217
  • download

    2

Transcript of Www.hope.ac.uk Faculty of Sciences and Social Sciences HOPE PHP – Working with Input Stewart...

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

PHP – Working with Input

Stewart Blakeway

FML 213

[email protected]

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

What will we cover

• To review how to create HTML input forms• How to access user input• How to handle multiple selections• Form submission• Reading in Files and Interpreting• To learn how to pass data from HTML forms

to PHP scripts– Externally– Internally

Each lecture we cover, you should be thinking how this will apply to your

assessment

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

Forms

• User input is more often than not obtained using forms and form elements

• What happens to the data from the form is dictated by the action attribute in the form tag

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

A Simple HTML Form<form action="form_listing.php" method="post">

<p>Name:

<input type="text" name="user" id="user" /></p>

Address: <br />

<textarea name="address" id="address" rows="5" cols="30"></textarea><br />

<input type="submit" value="send" />

</form>

Address of Envelope: form_listings.php

Contents of Envelope: information for user information for address

user

Stewart

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

What happens if you click send?

• In this case the form will attempt to send the data to a PHP page called form_listing

• What happens if the page does not exist?

Not FoundThe requested URL /form_listing.php was not found on this server.

Apache/2.0.47 (Win32) PHP/4.3.3 Server at localhost Port 80

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

form_listings.php

<?php

echo "Hello ".$_POST[‘user’]."<br>";

echo "Your Address is:".$_POST[‘address’];

?>user

Stewart

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

Let’s break it down

<form action="form_listing.php" method="post">

<p>Name:<input type="text"

name="user" id="user" /></p>

Address: <br /><textarea

name="address" id="address" rows="5" cols="30"></textarea><br />

<input type="submit" value="send" />

</form>

<?php

echo "Hello ".$_POST[‘user’]."<br>";

echo "Your Address is:".$_POST[‘address’];

?>

Two Separate FilesCreates a single global variable – an array!The array has two elements

NORMALLY you would move to a local variable

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

Radio Buttons

<input name="radiobutton" type="radio" value="brady" />

<input name="radiobutton" type="radio" value="learmond" />

<?php

$myLocalVariable = $_POST[‘radiobutton’];

echo (“selected was:” . $myLocalVariable);

?>

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

The values passed

• The values passed so far have been one value per control.

• The same principles apply to all form elements that pass one value

• What if we wanted to pass more than a single value from a predefined list. For example a select control list or check boxes?

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

The Code<form action="form_listing.php" method="post"><p>Name:<input type="text" name=“user” id="user" /></p>Address: <br /><textarea name="address" id="address" rows="5"

cols="30"></textarea><br /><select name="course[]" multiple><option value="NOS">Networks and Operating

Systems</option><option value="WebDev">Web Site Development</option><option value="ITBA">IT Business Applications</option><option value="DBTECH">Database Technology</option></select><input type="submit" value="send" /></form>

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

This producesname=“user”

Stewart

name="address"

Somewhere in Liverpool

name=“course[]”

Networks and Operating Systems

Website Development

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

<?phpecho "Hello ".$_POST[‘user’]."<br>";echo "Your Address is: ".$_POST[‘address’];if (!empty($_POST[‘course’])) { echo "<ul>";

foreach ($_POST[‘course’] as $value)

{ echo "<li>".$value."</li>"; }

echo “</ul>”; }?>

Form Listing

What will be echoed out?

Try to remember, the value stored is not necessarily what the user sees!

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

Form Listing<?phpecho "Hello ".$_POST[‘user’]."<br>";echo "Your Address is: ".$_POST[‘address’];if (!empty($_POST[‘course’])) {

echo "<ul>"; foreach ($_POST[‘course’] as $value)

{ echo "<li>".$value."</li>"; } echo “</ul>”;

}?>

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

Form Listing<?phpecho "Hello ".$_POST[user]."<br>";echo "Your Address is: ".$_POST[address];if (!empty($_POST[course])) { echo "<ul>";

foreach ($_POST[course] as $value)

{ echo "<li>".$value."</li>"; }

echo “</ul>”; }

?>

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

PHP File Handling

• Part of your assessment requires you to read input from a file– List of Students to automatically enrol on a course– Questions in a Quiz

• Outputting to a file is also useful– Students enrolled on a course (for registers?)– Student Marks

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

PHP File Handling - Opening a File

<?php

$file=fopen(“list.txt","r");

?>

Modes Description

r Read only. Starts at the beginning of the file

r+ Read/Write. Starts at the beginning of the file

w Write only. Opens and clears the contents of file; or creates a new file if it doesn't exist

w+ Read/Write. Opens and clears the contents of file; or creates a new file if it doesn't exist

a Append. Opens and writes to the end of the file or creates a new file if it doesn't exist

a+ Read/Append. Preserves file content by writing to the end of the file

x Write only. Creates a new file. Returns FALSE and an error if file already exists

x+ Read/Write. Creates a new file. Returns FALSE and an error if file already exists

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

PHP File Handling - Opening a File

<?php

$file=fopen("list.txt","r") or exit("Unable to open file!");

?>Modes Description

r Read only. Starts at the beginning of the file

r+ Read/Write. Starts at the beginning of the file

w Write only. Opens and clears the contents of file; or creates a new file if it doesn't exist

w+ Read/Write. Opens and clears the contents of file; or creates a new file if it doesn't exist

a Append. Opens and writes to the end of the file or creates a new file if it doesn't exist

a+ Read/Append. Preserves file content by writing to the end of the file

x Write only. Creates a new file. Returns FALSE and an error if file already exists

x+ Read/Write. Creates a new file. Returns FALSE and an error if file already exists

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

PHP File Handling – Reading from the file

<?php

$file = fopen("list.txt","r");

fgets($file);

?>

fgetc($file);

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

PHP File Handling – Reading from the file

<?php

$file = fopen("list.txt","r");

echo (fgets($file));

$line = fgets($file);

?>

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

PHP File Handling – Closing a File

<?php

$file = fopen("test.txt","r");

$line = fgets($file);

fclose($file);

?>

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

PHP File Handling – End of File?

• PHP can check to determine if it is the end of file.

feof($file);if (feof($file)) { echo (“End of File Reached”); }

while (!feof($file)) { $line = fgets($file); } echo (“End of File Reached”);

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

Passing Data to the Same Page• Sometimes you may want to pass data to the

same page• Consider the following example

– If submit not clicked display form– Else do something with data (typically you will add

to the database)

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

The Structure

if ($_POST[viewed] != "yes") {// display form for input

}else {// process data

}

if (isset ($_POST[‘formElementName’])){// process data}

else{// display the form for input}

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

Requirements

• action in the form needs to be set to $_SERVER[‘PHP_SELF’]

• the form needs a hidden field called viewed– or if using isset an existing form element

• viewed must be set to yes once the form has been displayed– or a value associated with the form element

Works better once you begin using functions!

This will be revisited

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

What have we covered?

• Forms Recap• Passing data as a global variable• Accessing the data from the global variable• Radio Buttons• Multiple Selections• File Input

We also touched on Flow Control and Arrays. These are covered in much more detail over the next few weeks.

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE

Any Questions?