Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23

Discussione: Un modulo di calcolo

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    18

    Un modulo di calcolo

    Ciao a tutti, dunque sto provando ad inziare con PHP e ho creato un modulo di calcolo con i pulsanti di opzione + lo script di calcolo in php, sto cercando di far funzionare il tuttp tramite server local (per fare questo sto utilizzando EasyPHP)ma per qualche motivo non vuole saperne di funzionare, non so piu cosa guardare qlc potrebbe aiutarmi?

    mi da questo errore
    Notice: Undefined variable: val1 in g:\programmi\easyphp1-8\www\primaprova\calcolo.php on line 2

    Warning: Cannot modify header information - headers already sent by (output started at g:\programmi\easyphp1-8\www\primaprova\calcolo.php:2) in g:\programmi\easyphp1-8\www\primaprova\calcolo.php on line 3


    lo script è questo
    <?
    if (($val1 == "") || ($val2 == "") || ($calc =="")) {
    header("Location: http://127.0.0.1/PrimaProva/calcolo_modulo.html");
    exit;
    }

    if ($calc == "addizione") {
    $risultato = $val1 + $val2;
    }
    else if ($calc == "sottrazione") {
    $risultato = $val1 - $val2;
    }
    else if ($calc == "moltiplicazione") {
    $risultato = $val1 * $val2;
    }
    else if ($calc == "divisione") {
    $risultato = $val1 / $val2;
    }
    ?>

    <html>
    <head>
    <title>Risultato del calcolo</title>
    </head>
    <body>


    Il risultato del calcolo è <? echo "$risultato"; ?></p>
    </body>
    </html>
    il problema dovrebbe essere causato dall'header ma non so cosa modificare, oppure il problema sta nel server locale(ma cosa dovrei modificare??forse qlc nel php.ini?) qlc mi aiuta??
    grazie

    p.p.s ah dimenticavo un mio amico ha pubblicato il tuto e mi ha detto che a lui funziona :/

  2. #2

    Re: Un modulo di calcolo

    Originariamente inviato da provaPHP
    mi da questo errore
    Notice: Undefined variable: val1 in g:\programmi\easyphp1-8\www\primaprova\calcolo.php on line 2
    vedi: http://it2.php.net/manual/it/function.isset.php

    Originariamente inviato da provaPHP
    Warning: Cannot modify header information - headers already sent by (output started at g:\programmi\easyphp1-8\www\primaprova\calcolo.php:2) in g:\programmi\easyphp1-8\www\primaprova\calcolo.php on line 3
    vedi: http://it2.php.net/manual/it/function.ob-start.php


    cichity74

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ho guardato il tuo script.

    Io ho fatto così:
    Pagina di inserimento dati.

    codice:
    <form name="operazioni" method="post" action="risultato.php">
    <input type="text" name="val1">
    
    <input type="text" name="val2">
    
    <select name="calc">
    <option></option>
    <option value="addizione">addizione</option>
    <option value="sottrazione">sottrazione</option>
    <option value="moltiplicazione">moltiplicazione</option>
    <option value="divisione">divisione</option>
    </select>
    <input type="submit" value="invia">
    </form>
    Pagina di elaborazione.
    codice:
    <?php
    $val1 = $_POST['val1'];
    $val2 = $_POST['val2'];
    $calc = $_POST['calc'];
    
    
    if ( ($val1=="") || ($val2=="") || ($calc=="") ) 
    { 
    header ("location: calcolo_modulo.html"); 
    exit; 
    } 
    
    
    if ($calc == "addizione") { 
    $risultato = $val1 + $val2; 
    } 
    else if ($calc == "sottrazione") { 
    $risultato = $val1 - $val2; 
    } 
    else if ($calc == "moltiplicazione") { 
    $risultato = $val1 * $val2; 
    } 
    else if ($calc == "divisione") { 
    $risultato = $val1 / $val2; 
    }
    ?> 
    
    
     Il risultato del calcolo è <? echo "$risultato"; ?></p>
    Non è che magari hai il register_global settato a off mentre l'amico tuo ce l'ha su on?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    18
    scusami ma questi comandi non li conosco ancora, sto cercando di seguire il libro e i tuoi link non mi aiutano molto(saranno 3 giorni che ho inziato ad assaggiare righe di comando etc etc)ti ringrazio ugualmente ma se possibile puoi aiutarmi seguendo il mio codice?? posto anche il codice HTML

    <html>
    <head>
    <title>Modulo di calcolo</title>
    </head>
    <body>
    <form method="post" ACTION="calcolo.php">


    Valore n. 1: <input type="text" name="val1" Size=10></P>


    Valore n. 2:<input type="text" name="val2" size=10></P>





    Calcolo:

    <input type="radio" name="calc"
    value="addizione"> addizione


    <input type="radio" name="calc"
    value="sottrazione"> sottrazione


    <input type="radio" name="calc"
    value="moltiplicazione"> moltiplicazione


    <input type="radio" name="calc"
    value="divisione"> divisione </P>



    <input type="submit" name="invio" value="calcola"></P>

    </form>

    </body>
    </html>

    P.S puoi aiutarmi basandoti su questi 2 script??
    oltretutto non capisco perche publicandoli su un server i 2 script funzionano

    ciao

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ancora non ho guardato il tuo codice.
    Toglimi una curiosità però.
    Apri il file php.ini e su trova digita register.
    Vai avanti finchè non ti trova la voce register_global e dimmi se è settata su on o su off.
    P.S. le righe precedute dal ; sono commenti.Quindi cerca la prima riga non commentata.Magari è solo quello il tuo problema.
    Nel frattempo provo il tuo codice.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    18
    Originariamente inviato da nicola75ss
    Ancora non ho guardato il tuo codice.
    Toglimi una curiosità però.
    Apri il file php.ini e su trova digita register.
    Vai avanti finchè non ti trova la voce register_global e dimmi se è settata su on o su off.
    P.S. le righe precedute dal ; sono commenti.Quindi cerca la prima riga non commentata.Magari è solo quello il tuo problema.
    Nel frattempo provo il tuo codice.
    ho aperto php.ini e register_globals = è su Off, ho provato a metter On ma non cambia nulla

    PHP.ini
    ____________________
    You should do your best to write your scripts so that they do not

    require
    ; register_globals to be on; Using form variables as globals can

    easily lead
    ; to possible security problems, if the code is not very well thought

    of.
    register_globals = Off
    __________________________

    ; PHP 4.2 and less have an undocumented feature/bug that allows

    you to
    ; to initialize a session variable in the global scope, albeit

    register_globals
    ; is disabled. PHP 4.3 and later will warn you, if this feature is used.
    ; You can disable the feature and the warning seperately. At this

    time,
    ; the warning is only displayed, if bug_compat_42 is enabled.

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ma dopo averlo messo su on hai fermato il server Apache e poi lo hai rinviato?
    Comunque è meglio se lo lasci settato ad off per sicurezza.
    Ho provato il tuo codice ed è funzionante.
    Prova ad aggiungere queste tre righe

    $val1 = $_POST['val1'];
    $val2 = $_POST['val2'];
    $calc = $_POST['calc'];

    appena apri il codice php prima di verificare che i campi non siano nulli.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    18
    Originariamente inviato da nicola75ss
    Ma dopo averlo messo su on hai fermato il server Apache e poi lo hai rinviato?
    Comunque è meglio se lo lasci settato ad off per sicurezza.
    Ho provato il tuo codice ed è funzionante.
    Prova ad aggiungere queste tre righe

    $val1 = $_POST['val1'];
    $val2 = $_POST['val2'];
    $calc = $_POST['calc'];

    appena apri il codice php prima di verificare che i campi non siano nulli.
    con queste 3 righe di codice funziona TUTTO sei un grande, ma ora mi chiedo come mai il libro non ne fa riferimento?? vorrei capire come mai pubblicandolo su un server funziona e in locale ho bisogno di queste 3 righe magiche??
    queste 3 righe servono a usare il metodo post nelle variabili??
    cmq grazie davvero tante (sei un genio)

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Funzia?

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    E' preoccupante se un server tiene settato ad on il register global.
    E' bene che sia settato ad off.
    Semplicemente dalla versione 4.2 di PHP (se non sbaglio) gli sviluppatori hanno deciso di default di impostarlo ad off.
    Ciò significa che quando vengono inviati dei dati anzichè essere subito disponibili come accadrebbe con l'opzione on i dati li devi prima recuperare con $_POST se il tuo form usa il metodo post e con il $_GET se usi il metodo get.
    Che libro stai studiando?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.