Ik heb een develop- en een live-server. Beide draaien PHP 4.1.2
Ik geef met een formulier een getal door, bv 1.26
<FORM METHOD="post" ... >
<INPUT NAME=resizefactor TYPE=text VALUE="1.26">
Als ik dit op de volgende pagina bekijk;
.. dan zie ik op beide servers:
resizefactor: 1.26
Echter, wil ik dit getal nu gebruiken voor een berekening, dan gaat het fout.
- dit geeft op de develop-server :
result: 126
en op de live-server:
result: 100
Ik heb toen het volgende er op losgelaten om erachter te komen waar dat 'm in zit:
Dit geeft op de devlop-server het volgende:
en op de live-server:
Wanneer ik er het volgende van maakte:
.. dan ging het op de live-server wel goed (dwz je kreeg de cijfers die ik eerst alleen op de develop-server kreeg). Echter, hiermee kreeg de develop-server weer te maken met de 1.00-grappen: een omgekeerde situatie dus.
Ik vermoed dat het een of andere getal/taal-instelling is, maar ik weet niet waar ik naar moet kijken of wat ik moet veranderen in de server-configuratie. In phpinfo() zie ik wat dat betreft geen verschillen waarvan ik vermoed dat het daar in zou kunnen zitten.
Waar kan dit aan liggen, en hoe kan ik het verhelpen zodat ik met beide servers met dit getal berekeningen kan uitvoeren?
/edit - sorry, vergeten [PHP] in subject te zetten. Het draait op Apache 1.3.23 (develop) en 1.3.22 (live) trouwens.
Ik geef met een formulier een getal door, bv 1.26
<FORM METHOD="post" ... >
<INPUT NAME=resizefactor TYPE=text VALUE="1.26">
Als ik dit op de volgende pagina bekijk;
PHP:
1
| echo "resizefactor: " . $HTTP_POST_VARS["resizefactor"]; |
.. dan zie ik op beide servers:
resizefactor: 1.26
Echter, wil ik dit getal nu gebruiken voor een berekening, dan gaat het fout.
PHP:
1
| echo "result: " . 100* $HTTP_POST_VARS["resizefactor"]; |
- dit geeft op de develop-server :
result: 126
en op de live-server:
result: 100
Ik heb toen het volgende er op losgelaten om erachter te komen waar dat 'm in zit:
PHP:
1
2
3
4
5
6
7
8
9
10
| $rf = $HTTP_POST_VARS["resizefactor"]; echo("<UL>"); echo("<LI>resizefactor #1: " . number_format($rf, 2, '.', '') ); echo("<LI>resizefactor #2: " . (double) $rf ); echo("<LI>resizefactor #3: " . (float) $rf ); echo("<LI>resizefactor #4: " . (real) $rf ); echo("<LI>resizefactor #5: " . ($rf + 0) ); echo("<LI>resizefactor #6: " . ($rf + 0.5) ); echo("<LI>resizefactor #7: " . ($rf / 1.001) ); echo("</UL>"); |
Dit geeft op de devlop-server het volgende:
code:
1
2
3
4
5
6
7
| resizefactor #1: 1.26 resizefactor #2: 1.26 resizefactor #3: 1.26 resizefactor #4: 1.26 resizefactor #5: 1.26 resizefactor #6: 1.76 resizefactor #7: 1.2587412587413 |
en op de live-server:
code:
1
2
3
4
5
6
7
| resizefactor #1: 1.00 resizefactor #2: 1 resizefactor #3: 1 resizefactor #4: 1 resizefactor #5: 1 resizefactor #6: 1,5 resizefactor #7: 0,999000999001 |
Wanneer ik er het volgende van maakte:
PHP:
1
| $rf = str_replace(".", ",", $HTTP_POST_VARS["resizefactor"]); |
.. dan ging het op de live-server wel goed (dwz je kreeg de cijfers die ik eerst alleen op de develop-server kreeg). Echter, hiermee kreeg de develop-server weer te maken met de 1.00-grappen: een omgekeerde situatie dus.
Ik vermoed dat het een of andere getal/taal-instelling is, maar ik weet niet waar ik naar moet kijken of wat ik moet veranderen in de server-configuratie. In phpinfo() zie ik wat dat betreft geen verschillen waarvan ik vermoed dat het daar in zou kunnen zitten.
Waar kan dit aan liggen, en hoe kan ik het verhelpen zodat ik met beide servers met dit getal berekeningen kan uitvoeren?
/edit - sorry, vergeten [PHP] in subject te zetten. Het draait op Apache 1.3.23 (develop) en 1.3.22 (live) trouwens.
[ Voor 11% gewijzigd door Anders op 27-08-2003 13:10 ]
Ik spoor veilig of ik spoor niet.