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 (**)
---------------------------------------------------------------------------
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]