Method post

Fermé
flexio2 - 20 sept. 2003 à 11:11
 flexio2 - 20 sept. 2003 à 22:12
bonjour,
j'ai une config Apache + PHP 4 + Mysql.
j'ai une page html simple composée de 3 zone de saisie + action vers fichier php :

<html>
<head>
<title>Bob's Auto Parts</title>
</head>
<body>
<h1>Bob's Auto Parts</h1>
<h2>Order Form</h2>

<form action="processorder.php" method=GET>
<table border=0>
<tr bgcolor=#cccccc>
<td width=150>Item</td>
<td width=15>Quantity</td>
</tr>
<tr>
<td>Tyres</td>
<td align=center><input type="text" name="tyreqty" size=3 maxlength=3></td>
</tr>
<tr>
<td>Oil</td>
<td align=center><input type="text" name="oilqty" size=3 maxlength=3></td>
</tr>
<tr>
<td>Spark Plugs</td>
<td align=center><input type="text" name="sparkqty" size=3 maxlength=3></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value="Submit Order"></td>
</tr>
</table>
</form>

</body>
</html>

--------------------------
# processorder.php
--------------------------
<html>
<head>
<title>Bob's Auto Parts - Order Results</title>
</head>
<body>
<h1>Bob's Auto Parts</h1>
<h2>Order Results</h2>
<?
echo "<p>Order processed at "; // Start printing order

echo date("H:i, jS F");
echo "<br>";
echo "<p>Your order is as follows:";
echo "<br>";
echo $tyreqty." tyres<br>";
echo $oilqty." bottles of oil<br>";
echo $sparkqty." spark plugs<br>";

$totalqty = 0;
$totalamount = 0.00;

define("TYREPRICE", 100);
define("OILPRICE", 10);
define("SPARKPRICE", 4);

$totalqty = $tyreqty + $oilqty + $sparkqty;
$totalamount = $tyreqty * TYREPRICE
+ $oilqty * OILPRICE
+ $sparkqty * SPARKPRICE;
$totalamount = number_format($totalamount, 2);

echo "<br>\n";
echo "Items ordered: ".$totalqty."<br>\n";
echo "Subtotal: $".$totalamount."<br>\n";

$taxrate = 0.10; // local sales tax is 10%
$totalamount = $totalamount * (1 + $taxrate);
$totalamount = number_format($totalamount, 2);

echo "Total including tax: $".$totalamount."<br>\n";


?>
</body>
</html>

--------------------------
# résultat
--------------------------
Bob's Auto Parts
Order Results
Order processed at 11:02, 20th September


Your order is as follows:

Notice: Undefined variable: tyreqty in C:\Program Files\Apache Group\Apache\wwwroot\processorder.php on line 15
tyres

Notice: Undefined variable: oilqty in C:\Program Files\Apache Group\Apache\wwwroot\processorder.php on line 16
bottles of oil

Notice: Undefined variable: sparkqty in C:\Program Files\Apache Group\Apache\wwwroot\processorder.php on line 17
spark plugs

Notice: Undefined variable: tyreqty in C:\Program Files\Apache Group\Apache\wwwroot\processorder.php on line 26

Notice: Undefined variable: oilqty in C:\Program Files\Apache Group\Apache\wwwroot\processorder.php on line 26

Notice: Undefined variable: sparkqty in C:\Program Files\Apache Group\Apache\wwwroot\processorder.php on line 26

Notice: Undefined variable: tyreqty in C:\Program Files\Apache Group\Apache\wwwroot\processorder.php on line 27

Notice: Undefined variable: oilqty in C:\Program Files\Apache Group\Apache\wwwroot\processorder.php on line 28

Notice: Undefined variable: sparkqty in C:\Program Files\Apache Group\Apache\wwwroot\processorder.php on line 29

Items ordered: 0
Subtotal: $0.00
Total including tax: $0.00

Comment cela se fait-il ?
merci
pascal
A voir également:

2 réponses

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
20 sept. 2003 à 14:13
A première vue, la première chose à faire c'est d'accéder correctement aux variables fournies par le formulaire.
Par défaut, dans les versions récentes de PHP, les variables
$_GET["nomvar"] ne sont PAS accessibles par $nomvar.
(on peut modifier php.ini au besoin si on a accès à la config su serveur)
donc utiliser les variables
$tyreqty = $_GET("tyreqty"]; // ou $tyreqty =$_POST["tyreqty"]
etc...
tester la validité de ces variables ( valeur numérique...) !!!

Ce problème a déjà été soulevé maintes fois et j'en ai fait l'expérience en portant un site sous une version récente de PHP

Johan
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
0
Merci jisisv pour cette information que je vais me dépêche de tester !!
Tu indiques "(on peut modifier php.ini au besoin si on a accès à la config su serveur)"
C'est effectivement mon cas... alors comment je peux modifier php.ini ?
Encore merci
Pascal
0