Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[PHP] berekening uit form direct uitvoeren

None
6 antwoorden
  • Wat ik wil doen, is dat een gebruiker van het formulier een berekening kan invoeren in een textfield (bijv.: 10-3*6) en dat php dat bij de post opvangt als $uitvoeren = "10-3*6" en dat dan meteen uitvoert.
    Ik heb al geprobeerd dit te doen:

    [code:1:ceae594b8d]
    <?php
    if (isset($_POST['doen'])) {
    $uitvoeren = $_POST['uitvoeren'];
    $resultaat = return($uitvoeren);
    echo $resultaat;
    }
    ?>
    <form method="post" action"dezelfde pagina">
    <input type="text" size="15" name="uitvoeren" /> // Hier kan dan bijvoorbeeld 10 - 6 worden ingevuld
    <input type="hidden" name="doen" value=1 />
    <input type="submit" />
    </form>
    [/code:1:ceae594b8d]

    …en dat werkt niet: ik denk dat ik de return functie dus niet helemaal heb begrepen. Hoe kan ik dit wel voor elkaar krijgen?

    Alvast bedankt!
  • Je moet hier eval() voor gebruiken. Hoewel ik je dat afraad, want als iemand "normale" php-code invoert en je vangt dat niet af heb je een groot probleem.
  • Is het misschien niet slimmer om dit met javascript te doen? Die berekening dus.
  • [quote:300b9aa17d="Stijn."]Je moet hier eval() voor gebruiken. Hoewel ik je dat afraad, want als iemand "normale" php-code invoert en je vangt dat niet af heb je een groot probleem.[/quote:300b9aa17d]
    …Daarvoor heb je dan strip_slashes(), strip_tags() en bijvoorbeeld str_replace() of preg_replace(). Lijkt me niet het grootste probleem. Wel gevaarlijk als het er idd doorkomt…

    Dit is wat ik nu heb, maar het werkt alsnog niet:

    [code:1:300b9aa17d]
    <?php
    $command = $_POST['cmd'];
    str_replace("bindec","bin2dec",$command);
    eval($command);
    echo $command;
    ?>
    [/code:1:300b9aa17d]

    Wat doe ik nu fout?

    [quote:300b9aa17d="gerben"]Is het misschien niet slimmer om dit met javascript te doen? Die berekening dus.[/quote:300b9aa17d]
    Nee, want ik wil immers ook COS, TAN, SIN, exponenten en nog andere wetenschappelijke berekeningen kunnen uitvoeren, en dat gaan met PHP betrekkelijk eenvoudig… Anders was dat zeker een optie (lekker snel ook). Alleen staat dit probleempje me nu dus even in de weg…
  • je zou bijvoorbeeld met ajax iets kunnen uitwerken, kun je php scripts gebruiken terwijl de client side al geladen is.

    Het is maar een ideetje.
  • Ja, maar dan stuit je als nog op de topic-vraag :wink: Niemand heeft een idee hoe dit kan?? :(

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.