Reken script review

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Koen Hollander

Koen Hollander

24/08/2012 20:28:50
Quote Anchor link
Beste allemaal,

Ik wil weten of dit goed ge-script is. Ik hoop op jullie reacties en meningen, die zal ik dan goed doornemen.

index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
<title>Reken easy</title>
</head>
<body>
<a href=plus>Plus</a><br>
<a href=min>min</a><br>
<a href=delen>delen</a><br>
<a href=keer>keer</a><br><br>
<div><em>Dit werk is gelicenseerd onder een Creative Commons Naamsvermelding-GeenAfgeleideWerken 3.0 Unported licentie. Ga naar http://creativecommons.org/licenses/by-nd/3.0/ om een kopie van de licentie te kunnen lezen.</em></div>
</body>
</html>



plus/index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<head>
<title>Reken easy</title>
</head>
<body>
<form method="post" action="uitrekenen.php">
<em>Vul hier de som in:</em> <br>
<input type="text" size="1" maxlength="40" name="som1"> <br>+<br>
<input type="text" size="1" maxlength="40" name="som2">
<input type="submit" value="Uitrekenen">
</form>
</body>
</html>



plus/uitrekenen.php
Code (php)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<head>
<head>
<title>Reken easy</title>
</head>
</html>
<?php
//Variabel die antwoord uitrekend
$antwoord=$_POST['som1'] + $_POST['som2'];
//Echo die antwoord laat zien
echo "Het andwoord op de som is:". $antwoord;
//Einde code
?>



keer/index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<head>
<title>Reken easy</title>
</head>
<body>
<form method="post" action="uitrekenen.php">
<em>Vul hier de som in:</em> <br>
<input type="text" size="1" maxlength="40" name="som1"> <br>X<br>
<input type="text" size="1" maxlength="40" name="som2">
<input type="submit" value="Uitrekenen">
</form>
</body>
</html>



keer/uitrekenen.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<head>
<head>
<title>Reken easy</title>
</head>
</html>
<?php
//Variabel die antwoord uitrekend
$antwoord=$_POST['som1'] * $_POST['som2'];
//Echo die antwoord laat zien
echo "Het andwoord op de som is:". $antwoord;
//Einde code
?>



min/index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<head>
<title>Reken easy</title>
</head>
<body>
<form method="post" action="uitrekenen.php">
<em>Vul hier de som in:</em> <br>
<input type="text" size="1" maxlength="40" name="som1"> <br>-<br>
<input type="text" size="1" maxlength="40" name="som2">
<input type="submit" value="Uitrekenen">
</form>
</body>
</html>



min/uitrekenen.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<head>
<head>
<title>Reken easy</title>
</head>
</html>
<?php
//Variabel die antwoord uitrekend
$antwoord=$_POST['som1'] - $_POST['som2'];
//Echo die antwoord laat zien
echo "Het andwoord op de som is:". $antwoord;
//Einde code
?>



delen/index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<head>
<title>Reken easy</title>
</head>
<body>
<form method="post" action="uitrekenen.php">
<em>Vul hier de som in:</em> <br>
<input type="text" size="1" maxlength="40" name="som1"> <br><br>
<input type="text" size="1" maxlength="40" name="som2">
<input type="submit" value="Uitrekenen">
</form>
</body>
</html>



delen/uitrekenen.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<head>
<head>
<title>Reken easy</title>
</head>
</html>
<?php
//Variabel die antwoord uitrekend
$antwoord=$_POST['som1'] / $_POST['som2'];
//Echo die antwoord laat zien
echo "Het andwoord op de som is:". $antwoord;
//Einde code
?>


Groet,

Koen Hollander
Gewijzigd op 24/08/2012 20:31:38 door Koen Hollander
 
PHP hulp

PHP hulp

21/11/2024 18:26:46
 
Obelix Idefix

Obelix Idefix

24/08/2012 21:31:31
Quote Anchor link
Vraag had je ook kunnen stellen in http://www.phphulp.nl/php/forum/topic/opgelost-rekenscript-werkt-niet/86315/last/ naar mijn idee. Daar wordt je in ieder geval aangegeven dat antwoord met een t is ipv 2x d ;-)

Opmerkingen die ik daar ook al gemaakt heb:
Obelix en Idefix op 24/08/2012 19:12:39:
Andere opmerkingen:
php --> '
HTML --> "

Vergeet niet om in uitrekenen te gaan controleren of een formulier verzonden is en of de input wel getallen zijn.


Waarom zoveel verschillende bestanden? Het enige verschil is de manier van rekenen (delen/optellen, etc.). Naar mijn idee dus wat zinloos om hier zo vaak de (bijna) zelfde code te plaatsen.

Uit je biografie:
Quote:
Ik ben een beginner als het om PHP gaat maar kan (ook al zeg ik het zelf) best goed opschieten met HTML.


Kijk nog eens goed hoe je een pagina opbouwt van de uitrekenen-bestanden:
<html>
<head>
</head>
<body>
</body>
</html>
Zoals je het nu hebt, voldoet het absoluut niet aan de regels; output na </html>, geen <body>
Mis ook een DOCTYPE.

Kijk eens naar hoe je een goede a href opbouwt. Niet zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<a href=plus>


Waarom een div; zie geen enkele css.

En met teksten als
Quote:
Dit werk is gelicenseerd onder een Creative Commons Naamsvermelding-GeenAfgeleideWerken 3.0 Unported licentie. Ga naar http://creativecommons.org/licenses/by-nd/3.0/ om een kopie van de licentie te kunnen lezen
zou ik even wachten; concentreer je liever op het (beter) leren van de basis van HTML (en php).
Gewijzigd op 24/08/2012 21:52:17 door Obelix Idefix
 
Erwin Goossen

Erwin Goossen

24/08/2012 21:37:13
Quote Anchor link
Waarom praktisch 4x hetzelfde als het ook in 1 keer kan?
Tevens is het resultaat van een deing een quotient, van een vermenigvuldiging een product en de aftrekking een vesrchil en anTwoord blijft met een t.

Verder een bestand met enkel html kun je ook gewoon *.html noemen(wel zo duidelijk wat de inhoud is)
Gewijzigd op 24/08/2012 21:40:50 door Erwin Goossen
 
Leon blabla

Leon blabla

24/08/2012 23:27:18
Quote Anchor link
In javascript kan je ook zonder al te veel moeite een rekenmachientje nabouwen.
Dan hoef je ook niet met zo veel verschillende files te werken.
 
Eddy E

Eddy E

25/08/2012 00:11:11
Quote Anchor link
En er is gewoon een PHP-functie om een string met daarin een som (formule) uit te rekenen.
Iets met een c... maar kan even niet op de naam komen (zal hem in het tijdstip én het vocht wat ik me toediende vanavond te maken hebben).

O wacht... Google: http://www.website55.com/php-mysql/2010/04/how-to-calculate-strings-with-php.html
 
Koen Hollander

Koen Hollander

25/08/2012 09:40:06
Quote Anchor link
Obelix en Idefix op 24/08/2012 21:31:31:
Vraag had je ook kunnen stellen in http://www.phphulp.nl/php/forum/topic/opgelost-rekenscript-werkt-niet/86315/last/ naar mijn idee. Daar wordt je in ieder geval aangegeven dat antwoord met een t is ipv 2x d ;-)

Opmerkingen die ik daar ook al gemaakt heb:
Obelix en Idefix op 24/08/2012 19:12:39:
Andere opmerkingen:
php --> '
HTML --> "

Vergeet niet om in uitrekenen te gaan controleren of een formulier verzonden is en of de input wel getallen zijn.


Waarom zoveel verschillende bestanden? Het enige verschil is de manier van rekenen (delen/optellen, etc.). Naar mijn idee dus wat zinloos om hier zo vaak de (bijna) zelfde code te plaatsen.

Uit je biografie:
Quote:
Ik ben een beginner als het om PHP gaat maar kan (ook al zeg ik het zelf) best goed opschieten met HTML.


Kijk nog eens goed hoe je een pagina opbouwt van de uitrekenen-bestanden:
<html>
<head>
</head>
<body>
</body>
</html>
Zoals je het nu hebt, voldoet het absoluut niet aan de regels; output na </html>, geen <body>
Mis ook een DOCTYPE.

Kijk eens naar hoe je een goede a href opbouwt. Niet zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<a href=plus>


Waarom een div; zie geen enkele css.

En met teksten als
Quote:
Dit werk is gelicenseerd onder een Creative Commons Naamsvermelding-GeenAfgeleideWerken 3.0 Unported licentie. Ga naar http://creativecommons.org/licenses/by-nd/3.0/ om een kopie van de licentie te kunnen lezen
zou ik even wachten; concentreer je liever op het (beter) leren van de basis van HTML (en php).


Handige tips van je, ik ga ze printen en houd ze naast mijn laptop als ik aan het werk ga.

Koen Hollander

Toevoeging op 25/08/2012 09:40:51:

Leon blabla op 24/08/2012 23:27:18:
In javascript kan je ook zonder al te veel moeite een rekenmachientje nabouwen.
Dan hoef je ook niet met zo veel verschillende files te werken.


Waar is dit forum voor? PHP denk ik.
Gewijzigd op 25/08/2012 09:41:14 door Koen Hollander
 
Eddy E

Eddy E

25/08/2012 09:59:14
Quote Anchor link
Kan dus gewoon in 1 php-file:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
// direct vanaf http://www.website55.com/php-mysql/2010/04/how-to-calculate-strings-with-php.html
function calculate_string( $mathString )    
    {

    $mathString = trim($mathString);     // trim white spaces
    $mathString = preg_replace ('[^0-9\+-\*\/\(\) ]', '', $mathString);    // remove any non-numbers chars; exception for math operators
    $compute = create_function("", "return (" . $mathString . ");" );
    return 0 + $compute();
    }




if($_SERVER['REQUEST_METHOD'] == 'POST' AND isset($_POST['som']))
    {

    $antwoord = calculate_string($_POST['som']);
    $som = $_POST['som'];
    }

else
    {
    $som = '';
    $antwoord = '........';
    }

?>

<form method="post" action="">
    <input type="text" name="som" value="<?php echo $som; ?>"> = <?php echo $antwoord; ?><input type="submit" value="OK">
</form>
Gewijzigd op 25/08/2012 10:42:11 door Eddy E
 
Erwin H

Erwin H

25/08/2012 10:03:49
Quote Anchor link
Eddy Erkelens op 25/08/2012 09:59:14:
$mathString = ereg_replace (

Quote:
This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.

Koen geeft aan dat hij een beginner is en met simpele scripts iets wil leren, en dan kom je met zoiets aan? Niet helemaal het juiste antwoord volgens mij. Tuurlijk kan het in 1 script, maar ben jij direct met 1 script en regular expressions begonnen? Dat lijkt me sterk. Laat hem eerst de basis leren en de fouten maken die we allemaal hebben gemaakt. Als je bij je tiende script bent en door hebt dat het allemaal wat makkelijker en sneller kan dan komt die efficientie van compacte scripts vanzelf wel.
Gewijzigd op 25/08/2012 10:04:40 door Erwin H
 
Eddy E

Eddy E

25/08/2012 10:37:30
Quote Anchor link
O sorry. Zo ver had ik nog niet gekeken. Even ereg_ door preg_ vervangen...

Script is geëdit.


Maar van kopieren/plakken en kijken wat het doet leer je ook. Zo heb ik het zelf ook geleerd (zonder boek oid).

Zie http://zunflappie.nl/test.php
Gewijzigd op 25/08/2012 10:41:54 door Eddy E
 
Bart V B

Bart V B

25/08/2012 12:08:28
Quote Anchor link
Quote:
Laat hem eerst de basis leren en de fouten maken die we allemaal hebben gemaakt. Als je bij je tiende script bent en door hebt dat het allemaal wat makkelijker en sneller kan dan komt die efficientie van compacte scripts vanzelf wel.


Helemaal mee eens. :)

Koen, dit heb je netjes gedaan.
Misschien dat je daarom wel zover bent om je scripts wat meer uit te bereiden.

Aan de php kant kan je bijvoorbeeld dingen controleren.
Om te beginnen is de eerste controle of de server een aanvraag krijgt, en de methode die je daar gebruikt is posten.

Dat doe je als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{

   // hier je som
}
?>

Dit doe je namelijk omdat als het script word aangeroepen zoals jij het nou doet er eigenlijk niets gepost word. Dus als je naar rekenen.php gaat zonder het formulier te gebruiken, dan zijn de $_POST waardes leeg. Dat geeft een foutmelding.

Wat we ook nog kunnen controleren is of de post waardes leeg zijn.
Bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
// kijken of er wat word gepost
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{

   // kijken of een waarde leeg is en we gebruiken trim om te kijken of er alleen spaties in zitten..
   if(!isset($_POST['som1']) or trim($_POST['som1']) == '' )
   {

      // hier foutmelding geven
   }
}

?>

Probeer dit eens toe te passen op een van je rekenscripts.
 
Koen Hollander

Koen Hollander

25/08/2012 15:30:13
Quote Anchor link
Bedankt voor de vele reacties en script posts.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.