slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
PHP Storing and Retrieving Data PowerPoint Presentation
Download Presentation
PHP Storing and Retrieving Data

Loading in 2 Seconds...

play fullscreen
1 / 18

PHP Storing and Retrieving Data - PowerPoint PPT Presentation


  • 103 Views
  • Uploaded on

PHP Storing and Retrieving Data. Files. Data can be stored in two basic ways: Flat files (meaning text files) Databases → for larger amounts of information PHP programs can read and write files on the server . Some uses:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'PHP Storing and Retrieving Data' - william-burns


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

PHP

Storing and Retrieving Data

files
Files
  • Data can be stored in two basic ways:
    • Flat files (meaning text files)
    • Databases→ for larger amounts of information
  • PHP programs can read and write files on the server.
  • Some uses:
    • Web site data; example: store questions and answers for the quiz in a file, read from file to generate the quiz;
    • Save user input; example: save customer orders to a file;
    • Maintain password data in a file;
    • Maintain hit counter in a file.
files1
Files
  • Objectives – learn how to:
    • Open and close files
    • Write data to files
    • Read data from files
    • Lock files
    • Delete files
    • Obtain file information
accessing files
Accessing Files
  • Reading data from a file and writing data to a file require 3 steps:
    • Open the file
    • Read data from or write data to the file
    • Close the file
opening a file
Opening a File
  • To open a file, use the fopen()function
  • Syntax:
    • $file_handle = fopen(“path/file_name”, “mode”);
    • Two other optional parameters can be used with fopen() – not discussed here.
  • if fopen()succeeds, a resource which is a handle or pointer to the file is returned and should be stored for using when reading from/ writing to the file
  • relative path in the server’s file system – indicate relative to web doc root or current directory;
  • absolute path in the server’s file system – not recommended, loca-tion of the used file might change;
  • if no path is indicated, the file is looked for /created in the same directory as the script itself
  • “file mode” → a string that specifies what you want to do with the file: read, write, read & write, append or overwrite
opening a file1
Opening a File
  • Example – open Bob’s order file to write a customer order:

$fp = fopen($_SERVER[‘DOCUMENT_ROOT’].

“../../csc301_files/campana1.txt”, “w”);

  • Notes:
    • the PHP built-in variable $_SERVER[‘DOCUMENT_ROOT’] points at the base of the document tree on the web server; this is ‘D:/www’ on cscdb.nku.edu.
    • as with the form variables, there are 3 ways to access the predefined server variables: $_SERVER[‘DOCUMENT_ROOT’] (preferred) , $DOCUMENT_ROOT, $HTTP_SERVER_VARS[‘DOCUMENT_ROOT’].
    • the relative path in the example leads to a file outside the web document tree, for security reasons: the file should not be web accessible otherwise than through the interface (=php scripts) we provide; demo
opening a file access types
Opening a File – Access Types
  • Describe what you want to do with the file.
  • Determine:
    • if/how other scripts can manipulate the opened file,
    • the position in the file from where you start to operate on the file content.
  • Are used to check if the script has the right permissions to use the file as requested;

Note that the PHP scripts run under a specific OS user (on Windows, LocalSystem or another user the administrator sets for Apache), that has specific permissions set for using files.

opening a file access types1
Opening a File – Access Types
  • Mode arguments of the fopen() function:

append

read

write

and file is not opened

cautious write

and file is not opened

  • fopen() with a, a+, w, w+ tries to create inexistent files, but not directories in the path
  • Text and binary flags (t ,b) can be combined with mode arguments; b recommended
opening a file access types2
Opening a File – Access Types

$fp = fopen(“orders.txt”, “r+”);

Location of the file pointer when the fopen() function uses a mode argument of “r+”

opening a file access types3
Opening a File – Access Types

$fp = fopen(“orders.txt”, “a+”);

Location of the file pointer when the fopen() function uses a mode argument of “a+”

addressing problems opening files
Addressing Problems Opening Files
  • If the user under which the script runs
    • usually: a web server user such as IUSR for Internet Information Server, LocalSystem that runs by default the Apache service on Win etc.

doesn’t have permission to access the file you are trying to open  errors

See later how to verify whether you have security access to files to which you want to write or read data.

addressing problems opening files1
Addressing Problems Opening Files
  • How to deal with an error generated by an attempt to open a file:
    • Suppress PHP’s error message:

@ $fp = fopen($_SERVER[‘DOCUMENT_ROOT’].

“../../csc301_files/campana1.txt”, “a+”);

The error suppression operator @ can be used in front of any expression (=anything that has/generates a value).

@ will suppress any errors resulting from the fopen() function call.

    • Give your own user-friendly error-message:

if (!$fp) { // fopen() returns false if file cannot be opened!

echo “<p><strong>Your order could not be processed

at this time. Please try again later.

</strong></p></body></html>”;

exit; // as page ends here, close HTML tags to give reasonably valid HTML

}

closing a file
Closing a File
  • Use the fclose() function when finished working with a file to save space in memory (=> memory allocated for the file resource is freed):

fclose($fp);

    • fclose() function returns true if the file was successfully closed or false if it wasn’t.
    • Closing a file is much less likely to go wrong than opening a file  no test.
writing to a file
Writing to a File
  • PHP supports two basic functions for writing data to text files:
  • int file_put_contents(string filename,

string data [, options])

    • This function writes the string contained in data (the second argument) to the file named in filename
    • The file doesn’t have to be explicitly opened and closed using fopen() and fclose()!
    • If the file doesn’t exist, the function attempts to create it (not the directories in the path however!)
    • If the file exists:
      • Without a 3rd argument, its content is overwritten
      • With FILE_APPEND as a 3rd argument, data is appended at the end of the file
    • This function returns the number of bytes written to the file, 0 if no content is written
writing to a file1
Writing to a File
  • PHP supports two basic functions for writing data to text files:
  • int fwrite(resource handle, string data

[, int length])

    • This function writes the string contained in the string data to the file pointed to by handle;
    • The 3rd optional argument is the maximum number of bytes to write → use strlen(data) to indicate that the whole data string is to be written
    • fopen() and fclose() have to be explicitly used with fwrite()
    • The function returns the number of bytes written to the file, 0 if no content is written
bob s auto parts form
Bob's Auto Parts Form
  • http://cscdb.nku.edu/csc301/frank/PHP_IO_Examples/orderform_4.html
  • http://www.nku.edu/~frank/csc301/Examples/PHP_IO_Examples/orderform_4_php.pdf
writing to a file example
Writing to a File - Example
  • A record = one separate line of text is written for each order;

The record separator is \r\n (on Win);

Fields will be separated by \t (the separator character should be something that will certainly not occur in the input!);

The record and field separators allow to subsequently read the data from the file and split it back into separate variables.

A record:

$outputString = $date . "\t" . $tireqty . " tires\t" . $oilqty.

" oil\t" . $sparkqty . " spark plugs\t$" .

$totalamount . "\t" . $address . "\r\n";

writing to a file example1
Writing to a File - Example

@$fp = fopen("$DOCUMENT_ROOT/../../csc301_files/campana1.txt","ab");

if (!$fp) {

echo "<p><strong>Your order could not be processed ...

</strong></p></body></html>";

exit;

}

flock($fp, LOCK_EX);

fwrite($fp, $outputString, strlen($outputString));

flock($fp, LOCK_UN);

fclose($fp);

echo "<p>Order written.</p>";

--------------------------------------------------------------------

if (file_put_contents(“orders.txt”, $outputString, FILE_APPEND) > 0)

echo "<p>Order written.</p>";

else

echo "<p>Your order could not be processed ...</p>";