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

Discussione: Operazione matematiche

  1. #1

    Operazione matematiche

    Salve,

    Volevo sapere se era possibile inviare operazione matematiche tramite form, mi spiego meglio, ho una form dove
    il cliente vuole scrivere proprio le formule tipo 4+5/3

    e avere il risultato da moltiplicare invece con un dato fisso.

    Ho creato input ma quando metto l'intera formula

    faccio :

    Codice PHP:
     $val_a = ($_REQUEST['a']);   $prova =$val_a;    echo $ml=$prova
    $prova rimane la formula invece di darmi l'operazione, è possibile invece avere il risultato?

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Guarda la funzione eval. Ma occhio. Esegue codice php quindi l'uso come lo vorresti fare è sconsigliatissimo.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Quote Originariamente inviata da Werwolfe Visualizza il messaggio
    faccio :

    Codice PHP:
     $val_a = ($_REQUEST['a']);   $prova =$val_a;    echo $ml=$prova
    $prova rimane la formula invece di darmi l'operazione, è possibile invece avere il risultato?
    Ma lì non fai altro che assegnare una stringa da da una variabile all'altra, è come scrivere
    Codice PHP:
    $stringa1 'pippo';
    $stringa2 $stringa1;
    echo 
    $stringa3 $stringa2
    Cosa ti aspetteresti che faccia?

    Puoi provare con eval() come ti hanno consigliato, ma se uno è un minimo smaliziato ci scrive codice php che ti manda tutto all'aria.

  4. #4
    managgia,


    vi spiego praticamente sono cambi di un preventivo, il mi cliente ha detto che non ha campi fissi per compiere delle operazione potrebbe essere

    tipo 2+2
    oppure 3 * 4/5 o ancora altro non c'è una cosa fissa, anche una 0 di valori da far fare delle operazione,lui in excel usa proprio infatti metodo 2+2/3*4 e excel gli da il risultato come potrei fare una cosa del genere senza aver problemi?

    Dimenticavo grazie per le risposte

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    In pratica nel form c'è un campo in cui si può scrivere un'espressione matematica da risolvere?
    Se non c'è una regola fissa, ti serve un sistema in grado di riconoscere un'espressione qualsiasi, il che non è affatto semplice come si potrebbe pensare, ci sono una marea di cose da tenere in considerazione, a cominciare dalla precedenza degli operatori.
    Qualche tempo fa si parlò di come realizzare una calcolatrice in PHP, fa una ricerca e vedi se ti è di aiuto, in alternativa cerca se esiste uno script già pronto in PHP che risolva espressioni matematiche.

  6. #6
    Due osservazioni/suggerimenti.
    Se ti assicuri che la cella contenga solo numeri e operatori (0-9 + - * /) allora puoi usare eval() senza problemi, non c'e' niente di pericoloso che si puo' fare solo con quei caratteri.
    In alternativa, e forse preferibilmente, fai il calcolo con eval() in javascript prima di mandarlo al server, se uno vuole pasticciare con eval() lato client la cosa non ti tocca.

  7. #7
    ua perfetto, si solo campi numerici e operatori, per preventivi in un area riservata . Grazie ad entrambi provo subito

  8. #8
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    Se ti assicuri che la cella contenga solo numeri e operatori (0-9 + - * /) allora puoi usare eval() senza problemi, non c'e' niente di pericoloso che si puo' fare solo con quei caratteri.
    A parte generare un errore - fatale - di sintassi? La migliore soluzione è usare js, yeah.

  9. #9
    invece se volessi usare js? bastanza complicato?

  10. #10
    Ho trovato questa funzione, che sembrava all'inizio non funzionare se facevo tipo 5+3/2 se invece faccio (5+3)*(3+4)/2 funzione , ha un unico problema :

    Codice PHP:
    <?php        if (isset($_POST['espressione'])){        function calculate_string$mathString )    {            $mathString trim($mathString);     // trim white spaces            $mathString = ereg_replace ('[^0-9\+-\*\/\(\) ]', '', $mathString);//remove any non-numbers chars; exception for math operators                     $compute = create_function("", "return (" . $mathString . ");" );            return 0 + $compute();        }                 $string = $_POST['espressione'];        echo calculate_string($string);        }    ?>


    il risultato me lo da ma da questo tipo di errore :

    Deprecated: Function ereg_replace() is deprecated in /var/www/vhosts/freestyleweb.it/easysoftware.biz/calcolatrice.php on line 14 7

    corrisondente

    Codice PHP:
     $mathString ereg_replace ('[^0-9\+-\*\/\(\) ]'''$mathString);//remove any non-numbers chars; exception for math operators 
    voi che dite? può andare e come posso togliere qusto errore?

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.