• User Newbie

    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 11

    Notice: 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


  • User Attivo

    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))
    
    

  • User Newbie

    Fatto...ora son scomparsi quegli errori e son comparsi questi...
    Notice: Undefined index: n1 in c:\progetti php\eser1.php on line 11

    Notice: 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


  • User Attivo

    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...