php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #9782 Warning: Undefined variable: HTTP_POST_VARS
Submitted: 2001-03-16 06:32 UTC Modified: 2001-03-16 06:59 UTC
From: john at neutralize dot com Assigned:
Status: Not a bug Package: Strings related
PHP Version: 4.0.4pl1 OS: Windows 98
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: john at neutralize dot com
New email:
PHP Version: OS:

 

 [2001-03-16 06:32 UTC] john at neutralize dot com
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:\Inetpub\wwwroot/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 (*\*)

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-03-16 06:37 UTC] sniper@php.net
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:59 UTC] torben@php.net
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 [john@neutralize.com] 									        *
> // * 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:php-dev@lists.php.net]
> Sent: Friday, March 16, 2001 11:38
> To: john@neutralize.com
> Subject: PHP 4.0 Bug #9782 Updated: Warning: Undefined variable:
> HTTP_POST_VARS
> 
> 
> ID: 9782
> Updated by: sniper
> Reported By: john@neutralize.com
> 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] john@neutralize.com
> 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 (**)
> 
> ---------------------------------------------------------------------------

 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Dec 21 16:01:28 2024 UTC