php e passaggio di variabili via get e post

marcomangiante

Nuovo Utente
28 Dic 2007
4
0
0
Salve a tutti,

ho da poco installato sul mio pc apache e php e sto cercando di imparare a scrivere qualcosa.
Come tutorial sto usando un vecchio libro di Larry Ullman (Visual Quickstart Guide - PHP for the World Wide Web).
Ho provato gli script più semplici e non ho trovato problemi. Ora stavo cercando di far funzionare quelli che fanno uso di variabili ma non è che le cose vadano così bene.
Allora, c'è un esempio sui numeri; lo posto così vi rendete conto e potete spiegarmi xché non funziona:

<html>
<head>
<title>Using numbers via url</title>
</head>
<body>
<?php
/* $Quantity must be passed to this page via an URL. $Discount is an optional
parameter. */
$Cost = 2000.00;
$Tax = 0.06;
$TotalCost=$Cost*$Quantity;
$Tax = $Tax + 1;
$TotalCost = $TotalCost - $Discount;
$TotalCost = $TotalCost * $Tax;
$Payments = $TotalCost / 12;

//Print the results.

print ("You requested to purchase $Quantity widget(s) at \$$Cost each.\n<p>");
print ("The total with tax, minus your \$$Discount, comes to \$$TotalCost.\n<p>");
print ("You may purchase the widget(s) in 12 monthly installments of \\$Payments each.\n<p>");
?>
</body>
</html>


Ho chiamato il file testNumbers1.php e passo tramite url i parametri Quantity e Discount. Nel libro viene suggerito di passare l'indirizzo così:

http://localhost/testNumbers1.php?Quantity=3&Discount=100.00

Peccato che così facendo venga fuori il seguente risultato:

You requested to purchase widget(s) at $2000 each.

The total with tax, minus your $, comes to $0.

You may purchase the widget(s) in 12 monthly installments of \0 each.


Mi sono scervellito per capire come mai non funzionasse, poi sul web ho trovato questo semplice esempio:

<html>
<head>
<title>Try to passing variable via url</title>
</head>
<body>
<?php
// for example: thispage.php?word=abracadabra

$val = $_GET['word'];
echo "the word is: $val";

?>
</body>
</html>

Se lo vado ad eseguire questo funziona, anche se faccio passare un numero tramite la variabile word.
Poi ho fatto qualche prova, levando per esempio il GET (mettendo $word;) e ovviamente non ha funzionato.
A questo punto mi chiedo: il programma che ho preso sul libro, dovrebbe avere il GET, davanti alle variabili che voglio passare tramite l'url? Sul libro non ne fa menzione, ma a questo punto non saprei come andare avanti.

C'è qualcuno che può spiegarmi un po' meglio?

Un grazie in anticipo a chi mi risponderà.


--
Saluti,

Marco Mangiante
 
Come hai detto tu il libro è un pò vecchio, scritto in un periodo in cui era ancora possibile passare variabili non definite.
Ora invece con le versioni più recenti è necessario definire le variabili; quindi se hai un'url come http://localhost/testNumbers1.php?Quantity=3&Discount=100.00
Avrai due variabili $_GET:

PHP:
if( (isset($_GET['Quantity'])) && (isset($_GET['Discount'])) )
{
 $Quantity = $_GET['Quantity'];
 $Discount = $_GET['Discount'];

 $Cost = 2000.00;
 $Tax = 0.06;
 $TotalCost=$Cost*$Quantity;
 $Tax = $Tax + 1;
 $TotalCost = $TotalCost - $Discount;
 $TotalCost = $TotalCost * $Tax;
 $Payments = $TotalCost / 12;

print "You requested to purchase $Quantity widget(s) at $Cost each.\n<br>";
print "The total with tax, minus your $Discount, comes to $TotalCost.\n<br>";
print  "You may purchase the widget(s) in 12 monthly installments of $Payments each.\n<br>";
}
 
Ciao Claudio,

ti ringrazio di avermi risposto così velecemente e di avermi confermato quello che avevo pensato.
Nel frattempo avevo fatto qualche prova e con $_GET[''] e $_POST[''] gli script del libro funzionavano senza problemi.
Ho trovato anche una pagina sempre su questo (https://www.mrw.it/fareweb/php/guida_php/lezione70.htm) sito che spiega le variabile GET e POST ed inoltre fa riferimento all'istruzione "register_globals" nel php.ini: se ho capito bene se setto quella istruzione su "on" potrei usare lo script che è sul libro senza usare $_GET[''] e $_POST['']?

Grazie ancora per l'aiuto.

--
Saluti,

Marco Mangiante
 
Si, potresti settarla su On, ma questo renderebbe i tuoi script molto più insicuri.
 
Claudio,

grazie ancora per la celerità e cortesia nel rispondere. A questo punto, dato che quella che ho indicato è una features deprecata, penso sia inutile settarla su on. Certo, sicuramente riuscirei ad avere meno problemi con gli script del libro, ma penso sia inutile, visto che poi comuque dovrò fare i conti, andando avanti, con le variabili che non saranno più instanziabili a quel modo.

Già che ci sono, potresti indicarmi qualche ambiente, casomai free e su windows, per rendere più spedita la stesura di script php?
Io per ora sto facendo con notepad e ho installato un plugin php su netbeans, ma su windows vista sto trovando un po' di problemi (credo dovuti all'uac).

--
Saluti,

Marco Mangiante
 

Discussioni simili