Signed in as:    
            Sign out
    
Links
        Advanced Websites
           Layout and design
           Backgrounds
           Page framing
           Server Side Includes
           Introduction to CGI
           Introduction to php
           php: 'if', emails
           php: string handling and date / time
           php: file handling
           Responsive Web Design
           Processing images
           php: databases
           php: logins and passwords
           Tracking hits
           Navigation I
           Navigation II
        
      
For our first look at file handling using php, we use the example of logging access to your pages. Topics include:
Note: I strongly suggest you view all our videos in full screen mode: click the icon in the lower right corner of the video area (it shows four arrows pointing to the corners of the screen). When you are done, the Esc ("escape") key returns you to regular mode.
Lesson 9: File handling
Part 1: Creating log files
      Hands on exercise
      This exercise is focused on setting up to log access to your pages.
      We'll add logging capabilty to both your AddTraveler.php and Feedback.php
    
         First, create a Logs directory on your personal computer and on your server. (If you
         need it, here's a brief 
         video demonstrating this process.)
         Now add code to your Feedback.php to log users submitting suggestions:
        
Now, add code to your AddTraveler.php, to log users submitting applications to join your trip:
Upload your updated Feedback.php and AddTraveler.php files to your cgis directory
         Test your updated Feedback.php by entering some suggestions 
         and test your updated AddTraveler.php by entering info for 
         new fictious travelers.
         Download your Travelers and Suggestions log files to your PC
         and open the files to spot errors; fix any problems you may find.
        
       Session 2
      
How to read files on your server. Topics include:
Lesson 9: File handling in php 
           
Part 2: reading files on your server
    Hands on exercise
    This exercise is focused on reading data from a file on your server, similar 
    to the work in the lab.
However, here we will add a new field in your trip application form (signUpForm.shtml) that asks the traveler to specify what country's passport they will be using for the trip.
Then in your addTraveler.php CGI, you will search a server-side file, Countries, to ensure the passport is for a country that Wales will allow in. If so, simply continue; if not, issue a message that the passport country is not allowed, so do one of: check for spelling error; discontinue their application; or if they have another passport, try that.
Details:
       First, add a new input control in your signUpForm.shtml: 
       location: after the picture file request, before the "how did
           you hear about this" control 
       descriptive text: "What country passport are you traveling on?"
       then the input control: type=text, name=passport,
       size=20, maxlength=40 
       save the updated file and upload it to your server.
 
      
Next add code to your AddTraveler.php to look up the passport value in the Countries file:
The logic for this process is very similar to that in the lecture, and I'm confident you can figure this out yourself. Choose any one of the five general logic structures from the lecture; try all five if you're comfortable with that.
Note: I found it's very important to trim the value returned from fgets() here
After each CGI code update, save and upload the revised code to your cgis directory, and test.
Your tests should try some deliberately mis-spelled names. Note the list does not necessarily reflect any current geo-political situation; in a real world application it would be updated based on changing alliances, sanctions, and / or other political considerations.
Entries in the Countries list are all lower case and in ascending alphabetical sequence.
Challenge / exercise stretch:
I thought it might be helpful to the user to provide a little more information if the passport country was not successful. So this option will display the country before and after the submitted country, alphabetically. This way the user can possibly spot their error. So you'll modify cgis/AddTraveler.php.
So the idea is to save the previous and current values from Countries, and if the submitted passport country ($passport) < current value ($work), then display the previous and current entries as part of the routine where the passport test fails.
         One possible approach: create a variable, $previous, initialized to 'before_start_of_list'; then in your
         checking loop, first test for equality of $work and $passport - if equal, go to your passport 
         match routine; 
         but if $passport < $work, go to the routine for handling passport test failure;
         if you fall through both of these if's, then you have $passport > $work, so save 
         $work into $previous in preparation for the next iteration.
 
         In your passport failed routine create a small reply page and, echo something like: 
    
 
          "<p>The nearest countries to yours are $previous and $current</p>";
          then give the user the option to use the back button and retry or to close their window and
          stop their trip application.
     
          In your passport match routine, simply continue the work of the CGI (that is, fall through 
          to your routine creating the user file name and supplying defaults for missing values).
        
As before, save your updated code, upload it to your server, and test that this works.
       Session 3
      
How to use form data to build a personal web page. Topics include:
Lesson 9: File handling in php 
           
Part 3: creating web pages from form data
    Hands on exercise
    This exercise is a complex project, with the goal of creating a model file and getting your
    AddTraveler.php to create a new file for a trip applicant. The pieces:
  
Details:
       Create a sample result file
       First, copy img_0598.jpg from AdvancedWebFiles/images into your website's /images directory, 
       and rename it to "PatriciaAragon.jpg".
      
Next, create a page that looks like you want your final applicant pages to look like. Use your tripsite.shtml file as a model: open tripsite.shtml and do a "Save as" using PatriciaAragon.shtml for the name. Now, make the following changes ...
Upload your PatriciaAragon.shtml file to your website, and check that it looks good to you when you display it. Feel free to tweak it so you're happy with the effect.
       Create your model traveler file
       Next, use your sample page as the starting point for creating your ModelTraveler.txt file. Include special 
       text where you intend to use form values. (You can use my approach of "**" followed by some text or devise 
       your own methodology.)
      
Finally, modify your AddTraveler.php to build the new travelers page from form info. Be sure to include tests for duplicate existing files (both the picture and the applicant page). Your resulting code might have these pieces:
Test like crazy!
       Session 4
      
Loose ends and miscellaneous points
    Hands on exercise
    This exercise focuses on the travelers page. The pieces:
  
    Supplemental materials
        A cumulative summary of the contents of the course so far:
   Click here for the cumulative technical summary
  
back list forward
Email us if you would like additional information. We would love to see your comments and recommendations for our site.
Our privacy policy: we use cookies to keep track of where you are on the site, but we do not leave cookies on your site; we do not track your visits; we do not disseminate any information about you because we do not gather any information about you.
