Avatar billede hoejgaard Juniormester
17. juni 2005 - 00:13 Der er 14 kommentarer og
1 løsning

problem med trim funktion

Hvad er galt her :
<? $_POST['alder'] = 015;
$_POST[alder] = trim($_POST['alder']);
echo "$_POST[alder]"; ?>


Resultatet er 13 men skulle være 15 ???????????????
Avatar billede arne_v Ekspert
17. juni 2005 - 00:15 #1
nej

tal som starter med 0 er oktaler (8 tals system)

1 * 8 + 5 = 13
Avatar billede ksoren Nybegynder
17. juni 2005 - 00:18 #2
Desuden giver trim(015) heller ingen mening. trim() fjerner blanke tegn på vestre og højre side af text i en streng
Avatar billede arne_v Ekspert
17. juni 2005 - 00:21 #3
$_POST['alder'] = " 15";

giver nok mere mening
Avatar billede hoejgaard Juniormester
17. juni 2005 - 00:28 #4
Okay men det har lidt med dette spm at gøre :
http://eksperten.dk/spm/626381
Jeg har et felt i en form som skal udfyldes, dvs jeg checker først om det er tomt med if (empty($_POST[alder]) { feltet er tomt}

Herefter checker jeg om det er et heltal med :
if (!preg_match ("/^(0|[1-9]\d{0,5})?$/", $_POST[alder])) { det skal være et heltal}

men hvis man indtaster et 0 så siger den at feltet er tomt. Det vil jeg gerne undgå da 0 er iorden. En løsning på dette søges :-)
Avatar billede arne_v Ekspert
17. juni 2005 - 00:29 #5
if (empty($_POST[alder] && $_POST[alder] != "0") {

måske
Avatar billede hoejgaard Juniormester
17. juni 2005 - 00:30 #6
Okay prøver det.
ER dette iøvrigt rigtigt skrevet ?? :  <? $_POST[alder] = trim($_POST[alder]); ?>
Avatar billede ksoren Nybegynder
17. juni 2005 - 00:35 #7
if (!preg_match ("/^\d{1,6}$/", $_POST['alder'])) {
Avatar billede hoejgaard Juniormester
17. juni 2005 - 00:35 #8
Det virker med din løsning if (empty($_POST[alder] && $_POST[alder] != "0") {

læg et svar arne v
Avatar billede ksoren Nybegynder
17. juni 2005 - 00:37 #9
Det er ikke anbefalet at bruge de globale arrays til at gemme sin variabler i. Og husk ' eller " omkring dine indexer, når disse er strenge

<? $alder = trim($_POST['alder']); ?>
Avatar billede hoejgaard Juniormester
17. juni 2005 - 01:00 #10
Okay fint. hvordan spørger man på om en variabel er et heltal hvor også eks. 099 er acceptabelt ??
Avatar billede arne_v Ekspert
17. juni 2005 - 07:20 #11
prøv funktionen is_int

se http://dk2.php.net/manual/en/function.is-int.php

hvis det er værdien og ikke data typen så se kommentarern 16-Sep-2003 04:24 i det link
Avatar billede arne_v Ekspert
17. juni 2005 - 07:20 #12
og svar
Avatar billede hoejgaard Juniormester
17. juni 2005 - 10:10 #13
hej igen. Jeg har et problem med dette.
<? if (!preg_match ("/^[1-9]\d{0,5}$/", $_POST[hoejde]) && !empty($_POST[hoejde])) { ?>
                          <tr><td width="7%" ><br>&nbsp;</td><td class="td17"><br><b>Din højde skal være et heltal større end 0 !</b></td><td width="13%"><br>&nbsp;</td></tr> <? } ?>   


Hvis man indtaster et 0 i formen skulle sætningen herover gerne fange det, men det gør den ikke ?? Kan nogen sige mig hvorfor ??
Avatar billede hoejgaard Juniormester
17. juni 2005 - 10:14 #14
Okay tror jeg fangede den på denne måde :
<? if ((!preg_match ("/^[1-9]\d{0,5}$/", $_POST[hoejde]) && !empty($_POST[hoejde])) OR $_POST[hoejde]=='0') { ?>

Er det ikke rigtigt ??
Avatar billede hoejgaard Juniormester
25. juni 2005 - 18:01 #15
Halloo :-) Ingen der kan svare på mit sidste spørgsmål ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB