Jump to content

Undefined variable and Undefined index error


hass1980

Recommended Posts

Hi

 

I am getting these two errors Undefined variable and Undefined index displaying on the web page.

 

Notice: Undefined variable: HTTP_GET_VARS in C:\wamp\www\chapter25\show_cat.php on line 6

 

Notice: Undefined index: total_price in C:\wamp\www\chapter25\output_fns.php on line 11

 

Show_cat.php

 

<?php
  include ('book_sc_fns.php');
  // The shopping cart needs sessions, so start one
  session_start();

  $catid = $HTTP_GET_VARS['catid'];
  $name = get_category_name($catid);

  do_html_header($name);

  // get the book info out from db
  $book_array = get_books($catid);

  display_books($book_array);


  // if logged in as admin, show add, delete book links
  if(isset($HTTP_SESSION_VARS['admin_user']))
  {
    display_button('index.php', 'continue', 'Continue Shopping');
    display_button('admin.php', 'admin-menu', 'Admin Menu');
    display_button("edit_category_form.php?catid=$catid", 
     'edit-category', 'Edit Category');
  }
  else
    display_button('index.php', 'continue-shopping', 'Continue Shopping');
  
  do_html_footer();
?>

 

output_fns.php

 


<?php

function do_html_header($title = '')
{
  // print an HTML header

  // declare the session variables we want access to inside the function 
  global $HTTP_SESSION_VARS;
  
  if(!$HTTP_SESSION_VARS['items']) $HTTP_SESSION_VARS['items'] = '0';
  if(!$HTTP_SESSION_VARS['total_price']) $HTTP_SESSION_VARS['total_price'] = '0.00';
?>
  <html>
  <head>
    <title><?php echo $title; ?></title>
    <style>
      h2 { font-family: Arial, Helvetica, sans-serif; font-size: 22px; color = red; margin = 6px }
      body { font-family: Arial, Helvetica, sans-serif; font-size: 13px }
      li, td { font-family: Arial, Helvetica, sans-serif; font-size: 13px }
      hr { color: #FF0000; width=70%; text-align=center}
      a { color: #000000 }
    </style>
  </head>
  <body>
  <table width=100% border=0 cellspacing = 0 bgcolor=#cccccc>
  <tr>
  <td rowspan = 2>
  <a href = "index.php"><img src="images/Book-O-Rama.gif" alt="Bookorama" border=0
       align=left valign=bottom height = 55 width = 325></a>
  </td>
  <td align = right valign = bottom>
  <?php if(isset($HTTP_SESSION_VARS['admin_user']))
       echo ' ';
     else
       echo 'Total Items = '.$HTTP_SESSION_VARS['items']; 
  ?>
  </td>
  <td align = right rowspan = 2 width = 135>
  <?php if(isset($HTTP_SESSION_VARS['admin_user']))
       display_button('logout.php', 'log-out', 'Log Out');
     else
       display_button('show_cart.php', 'view-cart', 'View Your Shopping Cart');
  ?>
  </tr>
  <tr>
  <td align = right valign = top>
  <?php if(isset($HTTP_SESSION_VARS['admin_user']))
       echo ' ';
     else
       echo 'Total Price = $'.number_format($HTTP_SESSION_VARS['total_price'],2); 
  ?>
  </td>
  </tr>
  </table>
<?php
  if($title)
    do_html_heading($title);
}

function do_html_footer()
{
  // print an HTML footer
?>
  </body>
  </html>
<?php
}

function do_html_heading($heading)
{
  // print heading
?>
  <h2><?php echo $heading; ?></h2>
<?php
}

function do_html_URL($url, $name)
{
  // output URL as link and br
?>
  <a href="<?php echo $url; ?>"><?php echo $name; ?></a><br />
<?php
}

function display_categories($cat_array)
{
  if (!is_array($cat_array))
  {
     echo 'No categories currently available<br />';
     return;
  }
  echo '<ul>';
  foreach ($cat_array as $row)
  {
    $url = 'show_cat.php?catid='.($row['catid']);
    $title = $row['catname']; 
    echo '<li>';
    do_html_url($url, $title); 
  }    
  echo '</ul>';
  echo '<hr />';
}

function display_books($book_array)
{
  //display all books in the array passed in
  if (!is_array($book_array))
  {
     echo '<br />No books currently available in this category<br />';
  }
  else
  {
    //create table
    echo '<table width = \"100%\" border = 0>';
    
    //create a table row for each book    
    foreach ($book_array as $row)
    {
      $url = 'show_book.php?isbn='.($row['isbn']);
      echo '<tr><td>';
      if (@file_exists('images/'.$row['isbn'].'.jpg'))
      {
        $title = '<img src=\'images/'.($row['isbn']).'.jpg\' border=0>';
        do_html_url($url, $title);
      }
      else
      {
        echo ' ';
      }
      echo '</td><td>';
      $title =  $row['title'].' by '.$row['author'];
      do_html_url($url, $title);
      echo '</td></tr>';
    }
    echo '</table>';
  }
  echo '<hr />';
}

function display_book_details($book)
{
  // display all details about this book
  if (is_array($book))
  {
    echo '<table><tr>'; 
    //display the picture if there is one 
    if (@file_exists('images/'.($book['isbn']).'.jpg'))
    {
      $size = GetImageSize('images/'.$book['isbn'].'.jpg');
      if($size[0]>0 && $size[1]>0)
        echo '<td><img src=\'images/'.$book['isbn'].'.jpg\' border=0 '.$size[3].'></td>';
    }
    echo '<td><ul>';
    echo '<li><b>Author:</b> ';
    echo $book['author'];
    echo '<li><b>ISBN:</b> ';
    echo $book['isbn'];
    echo '<li><b>Our Price:</b> ';
    echo number_format($book['price'], 2);
    echo '<li><b>Description:</b> ';
    echo $book['description'];
    echo '</ul></td></tr></table>'; 
  }
  else
    echo 'The details of this book cannot be displayed at this time.';
  echo '<hr />';
}

function display_checkout_form()
{
  //display the form that asks for name and address
?>
  <br />
  <table border = 0 width = 100% cellspacing = 0>
  <form action = purchase.php method = post>
  <tr><th colspan = 2 bgcolor="#cccccc">Your Details</th></tr>
  <tr>
    <td>Name</td>
    <td><input type = text name = name value = "" maxlength = 40 size = 40></td>
  </tr>
  <tr>
    <td>Address</td>
    <td><input type = text name = address value = "" maxlength = 40 size = 40></td>
  </tr>
  <tr>
    <td>City/Suburb</td>
    <td><input type = text name = city value = "" maxlength = 20 size = 40></td>
  </tr>
  <tr>
    <td>State/Province</td>
    <td><input type = text name = state value = "" maxlength = 20 size = 40></td>
  </tr>
  <tr>
    <td>Postal Code or Zip Code</td>
    <td><input type = text name = zip value = "" maxlength = 10 size = 40></td>
  </tr>
  <tr>
    <td>Country</td>
    <td><input type = text name = country value = "" maxlength = 20 size = 40></td>
  </tr>
  <tr><th colspan = 2 bgcolor="#cccccc">Shipping Address (leave blank if as above)</th></tr>
  <tr>
    <td>Name</td>
    <td><input type = text name = ship_name value = "" maxlength = 40 size = 40></td>
  </tr>
  <tr>
    <td>Address</td>
    <td><input type = text name = ship_address value = "" maxlength = 40 size = 40></td>
  </tr>
  <tr>
    <td>City/Suburb</td>
    <td><input type = text name = ship_city value = "" maxlength = 20 size = 40></td>
  </tr>
  <tr>
    <td>State/Province</td>
    <td><input type = text name = ship_state value = "" maxlength = 20 size = 40></td>
  </tr>
  <tr>
    <td>Postal Code or Zip Code</td>
    <td><input type = text name = ship_zip value = "" maxlength = 10 size = 40></td>
  </tr>
  <tr>
    <td>Country</td>
    <td><input type = text name = ship_country value = "" maxlength = 20 size = 40></td>
  </tr>
  <tr>
    <td colspan = 2 align = center>
      <b>Please press Purchase to confirm your purchase,
         or Continue Shopping to add or remove items</b> 
     <?php display_form_button('purchase', 'Purchase These Items'); ?>
    </td>
  </tr>
  </form>
  </table><hr />
<?php
}

function display_shipping($shipping)
{
  // display table row with shipping cost and total price including shipping
  global $HTTP_SESSION_VARS;
?>
  <table border = 0 width = 100% cellspacing = 0>
  <tr><td align = left>Shipping</td>
      <td align = right> <?php echo number_format($shipping, 2); ?></td></tr>
  <tr><th bgcolor="#cccccc" align = left>TOTAL INCLUDING SHIPPING</th>
      <th bgcolor="#cccccc" align = right>$<?php echo number_format($shipping+$$HTTP_SESSION_VARS['total_price'], 2); ?></th>
  </tr>
  </table><br />
<?php
}

function display_card_form($name)
{
  //display form asking for credit card details
?>
  <table border = 0 width = 100% cellspacing = 0>
  <form action = process.php method = post>
  <tr><th colspan = 2 bgcolor="#cccccc">Credit Card Details</th></tr>
  <tr>
    <td>Type</td>
    <td><select name = card_type><option>VISA<option>MasterCard<option>American Express</select></td>
  </tr>
  <tr>
    <td>Number</td>
    <td><input type = text name = card_number value = "" maxlength = 16 size = 40></td>
  </tr>
  <tr>
    <td>AMEX code (if required)</td>
    <td><input type = text name = amex_code value = "" maxlength = 4 size = 4></td>
  </tr>
  <tr>
    <td>Expiry Date</td>
    <td>Month <select name = card_month><option>01<option>02<option>03<option>04<option>05<option>06<option>07<option>08<option>09<option>10<option>11<option>12</select>
    Year <select name = card_year><option>00<option>01<option>02<option>03<option>04<option>05<option>06<option>07<option>08<option>09<option>10</select></td>
  </tr>
  <tr>
    <td>Name on Card</td>
    <td><input type = text name = card_name value = "<?php echo $name; ?>" maxlength = 40 size = 40></td>
  </tr>
  <tr>
    <td colspan = 2 align = center>
      <b>Please press Purchase to confirm your purchase,
         or Continue Shopping to add or remove items</b>
     <?php display_form_button('purchase', 'Purchase These Items'); ?>
    </td>
  </tr>
  </table>
<?php
}



function display_cart($cart, $change = true, $images = 1)
{
  // display items in shopping cart
  // optionally allow changes (true or false)
  // optionally include images (1 - yes, 0 - no)

  global $HTTP_SESSION_VARS;

  echo '<table border = 0 width = 100% cellspacing = 0>
        <form action = show_cart.php method = post>
        <tr><th colspan = '. (1+$images) .' bgcolor="#cccccc">Item</th>
        <th bgcolor="#cccccc">Price</th><th bgcolor="#cccccc">Quantity</th>
        <th bgcolor="#cccccc">Total</th></tr>';

  //display each item as a table row
  foreach ($cart as $isbn => $qty)
  {
    $book = get_book_details($isbn);
    echo '<tr>';
    if($images ==true)
    {
      echo '<td align = left>';
      if (file_exists("images/$isbn.jpg"))
      {
         $size = GetImageSize('images/'.$isbn.'.jpg');  
         if($size[0]>0 && $size[1]>0)
         {
           echo '<img src="images/'.$isbn.'.jpg" border=0 ';
           echo 'width = '. $size[0]/3 .' height = ' .$size[1]/3 . '>';
         }
      }
      else
         echo ' ';
      echo '</td>';
    }
    echo '<td align = left>';
    echo '<a href = "show_book.php?isbn='.$isbn.'">'.$book['title'].'</a> by '.$book['author'];
    echo '</td><td align = center>$'.number_format($book['price'], 2);
    echo '</td><td align = center>';
    // if we allow changes, quantities are in text boxes
    if ($change == true)
      echo "<input type = text name = \"$isbn\" value = \"$qty\" size = 3>";
    else
      echo $qty;
    echo '</td><td align = center>$'.number_format($book['price']*$qty,2)."</td></tr>\n";
  }
  // display total row
  echo '<tr>
          <th colspan = '. (2+$images) ." bgcolor=\"#cccccc\"> </td>
          <th align = center bgcolor=\"#cccccc\"> 
              ".$HTTP_SESSION_VARS['items']."
          </th>
          <th align = center bgcolor=\"#cccccc\">
              \$".number_format($HTTP_SESSION_VARS['total_price'], 2).
          '</th>
        </tr>';
  // display save change button
  if($change == true)
  {
    echo '<tr>
            <td colspan = '. (2+$images) .'> </td>
            <td align = center>
              <input type = hidden name = save value = true>  
              <input type = image src = "images/save-changes.gif" 
                     border = 0 alt = "Save Changes">
            </td>
            <td> </td>
        </tr>';
  }
  echo '</form></table>';
}

function display_login_form()
{
  // dispaly form asking for name and password
?>
  <form method=post action="admin.php">
  <table bgcolor=#cccccc>
   <tr>
     <td>Username:</td>
     <td><input type=text name=username></td></tr>
   <tr>
     <td>Password:</td>
     <td><input type=password name=passwd></td></tr>
   <tr>
     <td colspan=2 align=center>
     <input type=submit value="Log in"></td></tr>
   <tr>
</table></form>
<?php
}

function display_admin_menu()
{
?>
<br />
<a href="index.php">Go to main site</a><br />
<a href="insert_category_form.php">Add a new category</a><br />
<a href="insert_book_form.php">Add a new book</a><br />
<a href="change_password_form.php">Change admin password</a><br />
<?php

}

function display_button($target, $image, $alt)
{
  echo "<center><a href=\"$target\"><img src=\"images/$image".".gif\" 
           alt=\"$alt\" border=0 height = 50 width = 135></a></center>";
}

function display_form_button($image, $alt)
{
  echo "<center><input type = image src=\"images/$image".".gif\" 
           alt=\"$alt\" border=0 height = 50 width = 135></center>";
}

?>

Yes thanks, have done that.. now got another problem now with the index.php. Showing me this error now.

 

Fatal error: Call to undefined function do_html_header() in C:\wamp\www\chapter25\index.php on line 5

 


<?php
include ('book_sc_fns.php');
// The shopping cart needs sessions, so start one
session_start();
do_html_header("Welcome to Book-O-Rama");
echo "<p>Please choose a category:</p>";
// get categories out of database
$cat_array = get_categories();
// display as links to cat pages
display_categories($cat_array);
// if logged in as admin, show add, delete, edit cat links
if(isset($_SESSION['admin_user'])) {
display_button("admin.php", "admin-menu", "Admin Menu");
}
do_html_footer();
?>

Looking at your original post do_html_header() is defined in output_fns.php. With the code you posted above I do not see a like

include 'output_fns.php';

 

If you do not include that file PHP wont be able to call your function. Or is that line in book_sc_fns.php?

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.