- Home
- Categorie
- Coding e Sistemistica
- Coding
- Notice: Undefined variable
-
Notice: Undefined variable
Salve a tutti...ho appena iniziato a studiare il PHP usando il libro PHP della HOEPLI...purtroppo mi son reso conto che gli esempio che vi sono riportati non sono sempre corretti(mancano segni di punteggiature e caonfusione varia...)...oggi stavo provando a fare questo esercizio,ma mi da vari problemi
[html]<?php
echo "<FORM NAME=modulo METHOD=post ACTION=".PHP_SELF.">";
?>primo numero<INPUT TYPE NAME="n1" TYPE="text">
secondo numero<INPUT TYPE="text" NAME="n2">
terzo numero<INPUT TYPE="text" NAME="n3">
<INPUT TYPE="submit" NAME="Submit" VALUE="Calcola maggiore e minore">
</FORM>
<?php
if (($n1>$n2)&&($n1>$n3))
$mag=$n1;
else
{
if (($n2>$n3)&&($n2>$n1))
$mag=$n2;
else
$mag=$n3;
}
echo "Maggiore: ".$mag;
?>[/html]
Il primo problema che si presente è che dice
Notice: Use of undefined constant PHP_SELF - assumed 'PHP_SELF' in c:\progetti php\eser1_.php on line **2
,ma cercando su google ho letto che basta cambiare PHP_SELF in $SERVER['PHP_SELF'] (magari se qualcuno vuole spiegarmi anche il perchè di questo fatto...) ,ma non son riuscito a togliere gli errori
Notice: Undefined variable: n1 in **c:\progetti php\eser1.php on line 11Notice: Undefined variable: n2 in c:\progetti php\eser1_.php on line 11
Notice: Undefined variable: n2 in c:\progetti php\eser1_.php on line 15
Notice: Undefined variable: n3 in c:\progetti php\eser1_.php on line 15
Notice: Undefined variable: n3 in c:\progetti php\eser1_.php on line **18
**
e alla fine la pagina non fa neanche quello per cui è progettata,ovvero restituire il maggiore...mi sapreste aiutare?Vi ringrazio
-
Usa una tecnologia poco sicura che è normalmente disabilitata. Le variabili proveniente dal form devono essere dichiarate esplicitamente.
Fai così, queste righe:<?php if (($n1>$n2)&&($n1>$n3))
trasformale così:
<?php $n1 = $_POST['n1']; $n2 = $_POST['n2']; $n3 = $_POST['n3']; if (($n1>$n2)&&($n1>$n3))
-
Fatto...ora son scomparsi quegli errori e son comparsi questi...
Notice: Undefined index: n1 in c:\progetti php\eser1.php on line 11Notice: Undefined index: n2 in c:\progetti php\eser1.php on line 12
Notice: Undefined index: n3 in c:\progetti php\eser1.php on line 13
-
Vabbe', questo succede al primo giro perchè non sono inizializzate, l'esempio è veramente assurdo. Comunque sostituisci le 3 righe così:
$n1 = isset($_POST['n1']) ? $_POST['n1'] : 0; $n2 = isset($_POST['n2']) ? $_POST['n2'] : 0; $n3 = isset($_POST['n3']) ? $_POST['n3'] : 0;
In realtà andrebbe fatto bene che se non ci sono variabili in post allora lancia il form, altrimenti fa vedere i valori...