ID: 9782
Updated by: torben
Reported By: [EMAIL PROTECTED]
Old-Status: Feedback
Status: Bogus
Bug Type: Strings related
Assigned To: 
Comments:


As it says at the end of the mails you get from the Bug Database:

 ATTENTION! Do NOT reply to this email!
 To reply, use the web interface found at http://bugs.php.net/?id=9782&edit=2

So I'm including your reply here for posterity.

Anyway, your problem appears to be related to scoping. PHP does not
automatically include global variables within local function scope (as
C does, for instance). You need to access it either by using a 'global
$HTTP_POST_VARS;' statement or $GLOBALS['HTTP_POST_VARS'], since you're
attempting to access it from inside a function (save_quote()).

See http://www.php.net/manual/en/language.variables.scope.php for more
information.

John Stoops writes:
> My PHP page:
> 
> <?php
> //
> ****************************************************************************
> **********
> // * Module: startquote.php                                                          
>                                                     *
> // * Author: J D Stoops [[EMAIL PROTECTED]]                                        
>                                         *
> // * Last Updated: 16/03/2001                                                        
>                                         *
> // * Version: 1.0                                                                    
>                                                         *
> //
> ****************************************************************************
> **********
> // * This is an unpublished work the copyright in which vests in Nuera Ltd.
> *
> // * All rights reserved.                                                            
>                                                 *
> // * The information contained herein is the property of Nuera Ltd and is
> supplied              *
> // *  without liability for errors or omissions. No part may be reproduced,
> disclosed     *
> // * or used except as authorised by contract or other written permission.
> *
> // * The copyright and the foregoing restriction on reproduction, disclosure
> and use       *
> // * extend to all media in which the information may be embodied.
> *
> //
> ****************************************************************************
> **********
> ?>
> <html>
> <head>
> <title>Start New Quote</title>
> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
> <meta name="Description" content="Starts and saves a new quote for a client
> company of Nuera Limited"
> </head>
> <body bgcolor="#FFFFFF">
> <?php
> // Show form
> function show_form() {
>       // Setup database connection
>       $conId = odbc_connect ("neuquote", "", "")
>         or die ("An error1 has occured/n");
> ?>
> <h1><font face="Arial, Helvetica, sans-serif">Start New Quote</font></h1>
> <form name="StartQuote" method="post" action="startquote.php">
>   <input type="Hidden" name="Action" value="1">
>   <table width="60%" border="0">
>     <tr>
>       <td width="39%"><font face="Arial, Helvetica, sans-serif"
> size="4">Company
>         Name </font></td>
>       <td width="61%"><font face="Arial, Helvetica, sans-serif" size="4">
> <?php
> 
>       // Select companies to display
>       $result = odbc_exec ($conId, "SELECT CompanyId, CompanyName FROM Company
> ORDER BY CompanyName")
>               or die ("An error1 has occured/n");
> 
>       if (odbc_fetch_row ($result)) {
> ?>
>               <select name="Company">
>                       <option value=0>Please select or enter new company name 
>below</option>
> <?php
>               // Display all companies found
>               echo "<option value=".odbc_result($result,
> "CompanyId").">".odbc_result($result, "CompanyName")."</option>";
>               while ($row = odbc_fetch_row ($result)) {
>                       echo "<option value=".odbc_result($result,
> "CompanyId").">".odbc_result($result, "CompanyName")."</option>";
>               }
> ?>
>               </select>
>               </font></td>
>     </tr>
>     <tr>
>         <td width="39%"><font face="Arial, Helvetica, sans-serif" size="4">New
> Company
>         Name </font></td>
>       <td width="61%"><font face="Arial, Helvetica, sans-serif" size="4">
> <?php
>       }
> ?>
>         <input type="text" name="CompanyName" maxlength="100"></font></td>
>     </tr>
>     <tr>
>       <td width="39%"><font face="Arial, Helvetica, sans-serif"
> size="4">Employee</font></td>
>       <td width="61%"><font face="Arial, Helvetica, sans-serif" size="4">
>         <select name="Employee">
>                       <option value=0>Please select</option>
> <?php
>       // Select employees to display
>       $result = odbc_exec ($conId, "SELECT EmployeeId, EmployeeName FROM Employee
> ORDER BY EmployeeName")
>               or die ("An error2 has occured/n");
> 
>       // Display all employees found
>       while ($row = odbc_fetch_row ($result)) {
>               echo "<option value=".odbc_result($result,
> "EmployeeId").">".odbc_result($result, "EmployeeName")."</option>";
>       }
> ?>
>               </select>
>       </font></td>
>     </tr>
>     <tr>
>       <td width="39%"><font face="Arial, Helvetica, sans-serif"
> size="4">Comment</font></td>
>       <td width="61%"><font face="Arial, Helvetica, sans-serif" size="4">
>         <textarea name="Comment"></textarea>
>         </font></td>
>     </tr>
>     <tr>
>       <td width="39%"><font face="Arial, Helvetica, sans-serif"
> size="4">Start
>         Date </font></td>
>       <td width="61%"><font face="Arial, Helvetica, sans-serif" size="4">
>         <input type="text" name="StartDate" maxlength="10">
>         </font></td>
>     </tr>
>     <tr>
>       <td width="39%"><font face="Arial, Helvetica, sans-serif" size="4">End
> Date</font></td>
>       <td width="61%"><font face="Arial, Helvetica, sans-serif" size="4">
>         <input type="text" name="EndDate" maxlength="10">
>         </font></td>
>     </tr>
>   </table>
>   <p>
>     <input type="submit" name="Submit" value="Submit">
>     <input type="reset" name="Reset" value="Reset">
>   </p>
> </form>
> <?php
>       odbc_free_result ($result);
> }     // show_form
> 
> // start_new_quote
> function
> start_new_quote($companyName,$companyId,$employeeId,$comment,$startDate,$end
> Date) {
>               // Check all required inputs are present
>               if ($companyId == "0" && $companyName == "") {
>                       die ("An error1 has occured/n");
>               } elseif ($employeeId == "" || $employeeId == "0") {
>                       die ("An error2 has occured/n");
>               } elseif ($startDate == "") {
>                       die ("An error3 has occured/n");
>               } elseif ($endDate == "") {
>                       die ("An error4 has occured/n");
>               }
> 
>               // Setup database connection
>               $conId = odbc_connect ("neuquote", "", "")
>               or die ("An error5 has occured/n");
> 
>               if ($companyId == "0" || $companyId == "") {
>                       // Insert new company
>                       $result = odbc_exec ($conId, "INSERT INTO Company 
>(CompanyName) VALUES
> ('".$companyName."')")
>                               or die ("An error7 has occured/n");
> 
>                       odbc_free_result ($result);
> 
>                       // Select new companyid
>                       $result = odbc_exec ($conId, "SELECT CompanyId FROM Company 
>WHERE
> CompanyName = '".$companyName."' ORDER BY CompanyId DESC")
>                               or die ("An error8 has occured/n");
> 
>                       // Store companyid
>                       if (odbc_fetch_row ($result)) {
>                               $companyId = odbc_result($result, "CompanyId");
>                       } else {
>                               die ("An error7 has occured/n");
>                       }
>               } else {
>                       // Select company name
>                       $result = odbc_exec ($conId, "SELECT CompanyName FROM Company 
>WHERE
> CompanyId = ".$companyId."")
>                               or die ("An error8 has occured/n");
> 
>                       // Store company name
>                       if (odbc_fetch_row ($result)) {
>                               $companyName = odbc_result($result, "CompanyName");
>                       } else {
>                               die ("An error7 has occured/n");
>                       }
>               }
> 
>               odbc_free_result ($result);
> 
>               // Insert new quote
>               $result = odbc_exec ($conId, "INSERT INTO Quote (CompanyId, 
>EmployeeId,
> Comment, StartDate, EndDate) VALUES (".$companyId.", ".$employeeId.",
> '".$comment."', #".$startDate."#, #".$endDate."#)")
>                       or die ("An error8 has occured/n");
> 
>               odbc_free_result ($result);
> 
>               // Select new quoteid
>               $result = odbc_exec ($conId, "SELECT QuoteId FROM Quote WHERE 
>CompanyId =
> ".$companyId." AND EmployeeId = ".$employeeId." ORDER BY QuoteId DESC")
>                       or die ("An error9 has occured/n");
> 
>               // Store quoteid
>               if (odbc_fetch_row ($result)) {
>                       $quoteId = odbc_result($result, "QuoteId");
>               } else {
>                       die ("An error10 has occured/n");
>               }
> 
>               odbc_free_result ($result);
> 
>               // Select services
>               $result = odbc_exec ($conId, "SELECT * FROM Service")
>                       or die ("An error11 has occured/n");
> ?>
> <h1><font face="Arial, Helvetica, sans-serif">Select Services Required By
> <?php echo $companyName ?></font></h1>
> <form name="form1" method="post" action="startquote.php">
>   <input type="Hidden" name="Action" value="2">
>   <input type="Hidden" name="Quote" value=<?php echo $quoteId ?>>
>   <table width="83%" border="0">
>     <tr>
>       <td width="0%" height="33"></td>
>         <td width="13%" bgcolor="#FFFFFF" height="33"><font face="Arial,
> Helvetica, sans-serif" size="4">Service
>         Title</font></td>
>       <td width="1%" bgcolor="#FFFFFF" height="33"><font face="Arial,
> Helvetica, sans-serif" size="4">Use</font></td>
>       <td width="15%" height="33"><font face="Arial, Helvetica, sans-serif"
> size="4">From</font></td>
>       <td width="15%" height="33"><font face="Arial, Helvetica, sans-serif"
> size="4">To</font></td>
>       <td width="15%" height="33"><font face="Arial, Helvetica, sans-serif"
> size="4">No Services</font></td>
>       <td width="15%" height="33"><font face="Arial, Helvetica, sans-serif"
> size="4">No Units/ Service</font></td>
>       <td width="26%" height="33"><font face="Arial, Helvetica, sans-serif"
> size="4">Comment</font></td>
>     </tr>
> <?php
>               $counter = "1";
>               while ($row = odbc_fetch_row ($result)) {
> ?>
>     <tr>
>       <td width="0%" height="13">
>               <input type="Hidden" name=Service<?php echo $counter ?> value=<?php 
>echo
> odbc_result($result, "ServiceId") ?>>
>         </td>
>         <td width="13%" bgcolor="#FFFFFF" height="33"><font face="Arial,
> Helvetica, sans-serif" size="3"><?php echo odbc_result($result,
> "ServiceTitle") ?></font></td>
>       <td width="1%" bgcolor="#FFFFFF" height="33"> <font face="Arial,
> Helvetica, sans-serif" size="3">
>         <input type="checkbox" name=Use<?php echo $counter ?>
> value="checkbox">
>         </font></td>
>       <td width="15%" height="33"> <font face="Arial, Helvetica, sans-serif"
> size="3">
>         <input type="text" name=From<?php echo $counter ?> maxlength="10"
> size="10">
>         </font></td>
>       <td width="15%" height="33"> <font face="Arial, Helvetica, sans-serif"
> size="3">
>         <input type="text" name=To<?php echo $counter ?> maxlength="10"
> size="10">
>         </font></td>
>       <td width="15%" height="33"><font face="Arial, Helvetica, sans-serif"
> size="3">
>         <input type="text" name=NoServices<?php echo $counter ?>
> maxlength="3" size="6" value="0">
>         </font></td>
>       <td width="15%" height="33"><font face="Arial, Helvetica, sans-serif"
> size="3">
>         <input type="text" name=NoUnits<?php echo $counter ?> maxlength="3"
> size="6" value="0">
>         </font></td>
>       <td width="26%" height="33"><font face="Arial, Helvetica, sans-serif"
> size="3">
>         <textarea name=Comment<?php echo $counter ?>></textarea>
>         </font></td>
>     </tr>
> <?php
>                       $counter++;
>               }
>               $counter--;
>               echo "<input type=Hidden name=ServiceCount value=".$counter.">\n";
> ?>
>   </table>
>   <p>
>     <input type="submit" name="Submit" value="Submit">
>     <input type="button" name="PayOption" value="Payment Options">
>   </p>
> </form>
> <?php
>       odbc_free_result ($result);
> }     // start_new_quote
> 
> // Save new quote
> function save_quote($quoteId,$noServices) {
>       $counter = "1";
>       while ($counter <= $noServices) {
>               $serviceId = $HTTP_POST_VARS['Service$counter'];
>               $use = $HTTP_POST_VARS["Use".$counter];
>               $from = $HTTP_POST_VARS["From".$counter];
>               $to = $HTTP_POST_VARS["To".$counter];
>               $noServicesUsed = $HTTP_POST_VARS["NoServices".$counter];
>               $noUnits = $HTTP_POST_VARS["NoUnits$counter"];
>               $comment = $HTTP_POST_VARS["Comment.$counter"];
> 
>               // Would save to db as opposed to being printed out
>               echo $serviceId." Use: ".$use." From: ".$from." To: ".$to." No 
>Services:
> ".$noServicesUsed." No Units: ".$noUnits." Comment: ".$comment."<br>";
>               $counter++;
>       }
> }     // save_quote
> 
> // Check action
> if (@$HTTP_POST_VARS['Action']) {
>       // Get action to perform
>       $action = $HTTP_POST_VARS['Action'];
> } else {
>       $action = "0";
> }
> 
> // Start new quote
> if ($action == "1") {
> 
> start_new_quote($HTTP_POST_VARS['CompanyName'],@$HTTP_POST_VARS['Company'],$
> HTTP_POST_VARS['Employee'],$HTTP_POST_VARS['Comment'],$HTTP_POST_VARS['Start
> Date'],$HTTP_POST_VARS['EndDate'], "0");
> 
> // Save new quote
> } elseif ($action == "2") {
>       save_quote($HTTP_POST_VARS['Quote'],$HTTP_POST_VARS['ServiceCount']);
> 
> // Show new quote input form
> } else {
>       show_form();
> }
> ?>
> </body>
> </html>
> 
> -----Original Message-----
> From: Bug Database [mailto:[EMAIL PROTECTED]]
> Sent: Friday, March 16, 2001 11:38
> To: [EMAIL PROTECTED]
> Subject: PHP 4.0 Bug #9782 Updated: Warning: Undefined variable:
> HTTP_POST_VARS
> 
> 
> ID: 9782
> Updated by: sniper
> Reported By: [EMAIL PROTECTED]
> Old-Status: Open
> Status: Feedback
> Bug Type: Strings related
> Assigned To:
> Comments:
> 
> It would be easier to find what is wrong with your example
> if it would have been complete.
> Try these in your script:
> 
> print_r($HTTP_POST_VARS);
> print_r($HTTP_GET_VARS);
> 
> --Jani
> 
> 
> Previous Comments:
> ---------------------------------------------------------------------------
> 
> [2001-03-16 06:32:14] [EMAIL PROTECTED]
> The number of inputs from my form varies so I have distinguished them using
> a counter that increments for each record:
> 
> <input type="text" name=Service<?php echo $counter ?> size="10">
> 
> When requesting them from the header I loop through using another counter:
> 
> while ($counter <= $noServices) {
>     $serviceId = $HTTP_POST_VARS['Service$counter'];
>     $counter++
> }
> 
> No matter how I try to build the name of the post variable I always get the
> following error:
> 
> Warning: Undefined variable: HTTP_POST_VARS in
> C:Inetpubwwwroot/php/neuquote/startquote.php on line 251
> 
> I have tried buiding the string as follows:
> 
> 'Service$counter'
> 'Service'.$counter
> "Service".$counter
> $postVar = "Service".$counter  // put $postVar between []
> 
> I have done this in ASP before and from what I have seen from PHP so far it
> is more powerful, thus hopefully one of u guys can help by a different
> string build or a different approuch to creating the inputs
> 
> Thank you for your time.
> 
> John Stoops, Neutralize (**)
> 
> ---------------------------------------------------------------------------


Previous Comments:
---------------------------------------------------------------------------

[2001-03-16 06:37:43] [EMAIL PROTECTED]
It would be easier to find what is wrong with your example
if it would have been complete.
Try these in your script:

print_r($HTTP_POST_VARS);
print_r($HTTP_GET_VARS);

--Jani


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

[2001-03-16 06:32:14] [EMAIL PROTECTED]
The number of inputs from my form varies so I have distinguished them using a counter 
that increments for each record:

<input type="text" name=Service<?php echo $counter ?> size="10">

When requesting them from the header I loop through using another counter:

while ($counter <= $noServices) {
    $serviceId = $HTTP_POST_VARS['Service$counter'];
    $counter++
}

No matter how I try to build the name of the post variable I always get the following 
error:

Warning: Undefined variable: HTTP_POST_VARS in 
C:Inetpubwwwroot/php/neuquote/startquote.php on line 251

I have tried buiding the string as follows:

'Service$counter'
'Service'.$counter
"Service".$counter
$postVar = "Service".$counter  // put $postVar between []

I have done this in ASP before and from what I have seen from PHP so far it is more 
powerful, thus hopefully one of u guys can help by a different string build or a 
different approuch to creating the inputs

Thank you for your time.

John Stoops, Neutralize (**)

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



ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at http://bugs.php.net/?id=9782&edit=2


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to