Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    100

    Errore "Notice: Use of undefined constant"

    Salve a tutti, mi sto avvicinando da poco (oggi) al PHP e ho preso sottomano il libro dell'Apogeo PHP 5 per iniziare a vedere le basi e fare i primi script.

    Ho creato un file "FormFattura.php" come qui di seguito:
    <html>
    <head>
    <title>Calcola il tuo compenso</title>
    </head>
    <body>
    <form action="CalcolaFattura.php" method="post">
    <table>
    <tr><td>Nome:</td><td><input type="text" name="Nome"></td></tr>
    <tr><td>Cognome:</td><td><input type="text" name="Cognome"></td></tr>
    <tr><td>Giorni lavorati:</td><td><input type="text" name="GiorniLavorati"></td></tr>
    <tr><td>Costo giornaliero:</td><td><input type="text" name="CostoGiornaliero"></td></tr>
    <tr><td colspan="2"><input type="submit" value="Calcola"></td></tr>
    </table>
    </form>
    </body>
    </html>
    ...e il file citato nell'action è:
    <html>
    <head>
    <title>Il tuo compenso</title>
    </head>
    <body>
    <?php
    print("<h2>Compenso del signor $_REQUEST[Nome] $_REQUEST[Cognome]</h2>\n");
    print("<h3>Giorni lavorati: $_REQUEST[GiorniLavorati]</h3>\n");
    print("<h3>Costo giornaliero: $_REQUEST[CostoGiornaliero] euro</h3>\n");
    print("<h3>Costo Totale: ");
    print($_REQUEST[GiorniLavorati] * $_REQUEST[CostoGiornaliero]);
    print(" euro</h3>\n");
    ?>;
    </body>
    </html>
    Ho seguito il manuale eppure quando provo a compilare il form e cliccare su Calcola, mi da il seguente errore sul calcolo del Costo Totale:
    Costo Totale:
    Notice: Use of undefined constant GiorniLavorati - assumed 'GiorniLavorati' in C:\Program Files\wamp\www\CalcolaFattura.php on line 11

    Notice: Use of undefined constant CostoGiornaliero - assumed 'CostoGiornaliero' in C:\Program Files\wamp\www\CalcolaFattura.php on line 11
    15000 euro
    Ho provato anche a mettere le "" o '' all'interno dell'array della REQUEST ma...niente sempre lo stesso identico errore.

    Potete aiutarmi? grazie!

  2. #2
    prova così
    Codice PHP:
    echo $_REQUEST['GiorniLavorati'] * $_REQUEST['CostoGiornaliero']; 

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    100
    Mettendo
    echo $_REQUEST['GiorniLavorati'] * $_REQUEST['CostoGiornaliero'];
    al posto di
    print($_REQUEST[GiorniLavorati] * $_REQUEST[CostoGiornaliero]);
    la pagina viene eseguita come mi aspettavo (e come si aspettava il manuale eheh), grazie!

    Tuttavia in fase di compilazione, l'errore rimane (mi appare sottoforma di finestrella). Potrebbe dipendere dal compilatore?

  4. #4
    Devi aggiungere gli apici dentro a tutte le quadre della $_REQUEST.
    Stai sempre attento alla punteggiatura. Se inizi a scordarla già dall'apprendimento sei finito!
    E' uno degli errori più comuni nel PHP.
    Ce l'ho fatta! - ItalianPixel -

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    100

    Re: Errore "Notice: Use of undefined constant"

    Si ma come avevo scritto:
    Ho provato anche a mettere le "" o '' all'interno dell'array della REQUEST ma...niente sempre lo stesso identico errore.
    cioè...se scrivo:
    Codice PHP:
    print($_REQUEST["GiorniLavorati"] * $_REQUEST["CostoGiornaliero"]); 
    oppure
    Codice PHP:
    print($_REQUEST['GiorniLavorati'] * $_REQUEST['CostoGiornaliero']); 
    l'errore me lo da sempre (sia in compilazione che in esecuzione), mentre con la soluzione proposta da E.d.i.73, l'esecuzione fila liscia.

  6. #6
    Codice PHP:
    <html>
    <head>
    <title>Il tuo compenso</title>
    </head>
    <body>
    <?php
    print("<h2>Compenso del signor {$_REQUEST['Nome']} {$_REQUEST['Cognome']}</h2>\n");
    print(
    "<h3>Giorni lavorati: {$_REQUEST['GiorniLavorati']}</h3>\n");
    print(
    "<h3>Costo giornaliero: {$_REQUEST['CostoGiornaliero']} euro</h3>\n");
    print(
    "<h3>Costo Totale: ");
    print(
    $_REQUEST['GiorniLavorati'] * $_REQUEST['CostoGiornaliero']);
    print(
    " euro</h3>\n");
    ?>;
    </body>
    </html>
    se fai print coi doppi apici puoi inserire array così " array[key] "
    oppure " {array['key']} "

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    100
    Si vero...però inizio a credere che l'errore che mi dia in compilazione (perchè appunto, le vostre soluzioni in fase di esecuzione vanno che è una meraviglia) sia dovuto al compilatore. Possibile?

    Perchè anche con la tua soluzione robbi_gallo, mi appare questo quando lo compilo:

    Probabilmente è una cavolata di cui non dovrei preoccuparmi, però...giusto per sapere non vorrei che più in là, possa rivelarsi fastidiosa questa cosa)

    Ps: come compilatore uso phpDesigner 7

  8. #8
    se fai
    Codice PHP:
    echo '<pre>';
    print_r ($_POST); // variabili passate col metodo post
    print_r ($_GET); // variabili passate col metodo get
    echo '</pre>'
    vedi tutte le variabili che passi in get e post, perchè in questo caso, l'errore ti segnala che non esiste una request CostoGiornaliero, perchè non viene passata dalla form.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.