Form html-php, la pagina php non mi rileva la variabile

  • Creatore Discussione Creatore Discussione mateky
  • Data di inizio Data di inizio

mateky

Utente Attivo
7 Feb 2011
36
0
0
Salve a tutti, ho appena iniziato a studiare il php.
Sono arrivato al punto della creazione dei form:
quando provo a fare un form, creando sia una pagina in HTML dove creo il form e l'altra pagina php dove creo il codice php da richiamare, mi succede che la pagina php non rileva la variabile nella pagina html.
Nel libro dove sto studiando (dove copio esattamente i codici) mi dice che la variabile in html basta richiamarla inserendo il simbolo $, ma quando invio il form mi dice che mancano le variabili da definire nella pagina php.

Questo è il codice della pagina HTML per creare il form:

<html>
<head>
<title>checkbox</title></head>
<body>
<FORM ACTION=bevande.php METHOD=get >
bevande:<br>
<INPUT TYPE=checkbox NAME=b0>Birra<br>
<INPUT TYPE=checkbox NAME=b1>acqua minerale <br>
<INPUT TYPE=checkbox NAME=b2>acqua minerale naturale<br>
<INPUT TYPE=checkbox NAME=b3>acqua coca<br>
<INPUT TYPE=checkbox NAME=b4>aranciata<br>
caffetteria:<br>
<INPUT TYPE=checkbox NAME=c0>caffè<br>
<INPUT TYPE=checkbox NAME=c1>cappuccino<br>
<INPUT TYPE=checkbox NAME=c2>the<br>
<INPUT TYPE=submit VALUE="INVIA">
</FORM></BODY></HTML>


questo invece è il codice che ho scritto nella pagina php denominata "Bevande.php"

<?php
$tot=3.50;

if ($b0=="on") $tot=$tot+3.0;
if ($b1=="on") $tot=$tot+1.5;
if ($b2=="on") $tot=$tot+1.5;
if ($b3=="on") $tot=$tot+3.0;
if ($b4=="on") $tot=$tot+1.0;
if ($c0=="on") $tot=$tot+1.5;
if ($c1=="on") $tot=$tot+2.5;
if ($c2=="on") $tot=$tot+2.0;
echo "TOTALE: €".$tot."<BR>";
echo "Grazie e tornate a trovarci...";
?>

Praticamente l'errore che mi crea è che tutte le variabili sopra citate $b0, $b1 ecc non sono definite nella pagina php..
 
Ciao,
Questo era possibile nelle vecchie versioni di PHP, ora non lo è più per motivi di sicurezza.
I dati del form sono contenuti in $_POST o $_GET, a seconda del metodo utilizzato per inviarli.
Modifica il tuo codice così:
PHP:
<?php
$tot=3.50;

if ($_POST['b0']=="on") $tot=$tot+3.0;
if ($_POST['b1']=="on") $tot=$tot+1.5;
if ($_POST['b2']=="on") $tot=$tot+1.5;
if ($_POST['b3']=="on") $tot=$tot+3.0;
if ($_POST['b4']=="on") $tot=$tot+1.0;
if ($_POST['c0']=="on") $tot=$tot+1.5;
if ($_POST['c1']=="on") $tot=$tot+2.5;
if ($_POST['c2']=="on") $tot=$tot+2.0;
echo "TOTALE: €".$tot."<BR>";
echo "Grazie e tornate a trovarci...";
?>

e dovrebbe funzionare :)
 
non va nemmeno in questo modo... mi dà questo:

Notice: Undefined index: b0 in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\1\bevande.php on line 4

Notice: Undefined index: b1 in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\1\bevande.php on line 5

Notice: Undefined index: b2 in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\1\bevande.php on line 6

Notice: Undefined index: b3 in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\1\bevande.php on line 7

Notice: Undefined index: b4 in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\1\bevande.php on line 8

Notice: Undefined index: c0 in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\1\bevande.php on line 9

Notice: Undefined index: c1 in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\1\bevande.php on line 10

Notice: Undefined index: c2 in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\1\bevande.php on line 11
TOTALE: €3.5
Grazie e tornate a trovarci...
 
ho cambiato il METHOD inserendo POST, in questo modo il totale lo calcola e lo stampa ma sopra alla stampa del totale mi dice ancora l'errore delle variabili non definite...
 
Era un errore che mi dava con easyphp in local host.. non so perchè, ma provandolo su un hosting server online non mi dà piu l'errore e quindi calcola perfettamente. Ti ringrazio per l'aiuto!
 

Discussioni simili