Avatar billede tbg Nybegynder
09. februar 2003 - 13:15 Der er 41 kommentarer og
1 løsning

Tjekke indholdet af form?

Jeg har lavet en form, hvor der skal indtastes nogle tal, som så skal beregnes på næste side. Hvis indholdet af felterne er bogstaver, skal den selvfølgelig komme med fejl.
Hvordan tjekker jeg om indholdet er tal?
Avatar billede schaefner Juniormester
09. februar 2003 - 13:19 #1
if (eregi("[0-9]", $str)) {
    echo "ja!!";
} else {
    echo "nej!";
}
Avatar billede Slettet bruger
09. februar 2003 - 13:19 #2
<?php
if(ereg("^[0-9]$", $feltmedtal)) {
print"Flot";
}else{
print"Sagde jeg tal? ja det gjorde jeg vidst nok!";
}
?>

måske virker det :)
Avatar billede ahv Nybegynder
09. februar 2003 - 13:21 #3
schaefner, denne kan gå gennem din "5tr" bare der er et tal går den gennem din.
Avatar billede tbg Nybegynder
09. februar 2003 - 13:22 #4
Når jeg har flere felter, tjekker den ¨så indholdet af alle felterne?
Avatar billede schaefner Juniormester
09. februar 2003 - 13:22 #5
ahv >> ja, det er rigtigt. Der skal selvfølgelig være ^[0-9]$ :)
Avatar billede ahv Nybegynder
09. februar 2003 - 13:22 #6
Sidder selv lige og prøver at få den til at virke her, westhi, din virker heller ikke ;o)
Avatar billede schaefner Juniormester
09. februar 2003 - 13:22 #7
tbg >> Så skal du f.eks gøre sådan her:
if (eregi("^[0-9]$", $str1) && eregi("^[0-9]$", $str2)) {
    echo "ja!!";
} else {
    echo "nej!";
}
Avatar billede Slettet bruger
09. februar 2003 - 13:23 #8
den tjekker kun indholdet af feltet der hedder feltmedtal :)
Avatar billede Slettet bruger
09. februar 2003 - 13:24 #9
regnede ellers lige med at jeg gjorde det rigtigt ;o)
Avatar billede ahv Nybegynder
09. februar 2003 - 13:24 #10
<?php
if(ereg("^[0-9]{1,25}$", $feltmedtal)) {
print"Flot";
}else{
print"Sagde jeg tal? ja det gjorde jeg vidst nok!";
}
?>

Sådan skal den vel se ud? Så kan den også tjekke tal der er over 10 :o) Her kan tallet være fra 1 til 1 med 24 nuller :o)
Avatar billede schaefner Juniormester
09. februar 2003 - 13:25 #11
ahv >> hvorfor ikke bare {1,} ?
Avatar billede Slettet bruger
09. februar 2003 - 13:25 #12
nå men jeg var da tæt på :D
Avatar billede ahv Nybegynder
09. februar 2003 - 13:27 #13
Ja schaefner, hvorfor ikke ;o)
Avatar billede fangel Nybegynder
09. februar 2003 - 13:27 #14
hvis du vil tjekke alle felter...

$kun_tal = "ja";
foreach($_GET as $arr){
  if(!ereg("^[0-9}$",$arr)){
    $kun_tal = "nej";
  }
}
if($kun_tal == "ja")){
  echo "flot, du skrev kun tal...";
}
else{
  echo "der blev sagt TAL... prøv igen...";
}

Morten
Avatar billede schaefner Juniormester
09. februar 2003 - 13:28 #15
;0)
Avatar billede fangel Nybegynder
09. februar 2003 - 13:28 #16
hov... et par fejl...

$kun_tal = "ja";
foreach($_GET as $arr){
  if(!ereg("^[0-9]+$",$arr)){
    $kun_tal = "nej";
  }
}
if($kun_tal == "ja")){
  echo "flot, du skrev kun tal...";
}
else{
  echo "der blev sagt TAL... prøv igen...";
}
Avatar billede ahv Nybegynder
09. februar 2003 - 13:33 #17
Så vi må vel være fremme ved at det kommer til at hedde noget i retningen af:

if (eregi("^[0-9]{1,}$", $str1) && eregi("^[0-9]{1,}$", $str2)) {
    echo "ja!!";
} else {
    echo "nej!";
}
Avatar billede schaefner Juniormester
09. februar 2003 - 13:41 #18
ahv >> Det ser ikke helt skævt ud ;o)
Avatar billede Slettet bruger
09. februar 2003 - 13:45 #19
tror i tbg er forvirret? :oD
Avatar billede schaefner Juniormester
09. februar 2003 - 13:51 #20
nej, nej, slet ikke ;o)
Avatar billede tbg Nybegynder
09. februar 2003 - 13:51 #21
Den melder fejl i linie 46 som er
if(eregi("^[0-9]{1,}$", $bil1)) && eregi("^[0-9]{1,}$", $bus1))Hvad er der galt?
Avatar billede schaefner Juniormester
09. februar 2003 - 13:53 #22
if(eregi("^[0-9]{1,}$", $bil1) && eregi("^[0-9]{1,}$", $bus1))
Avatar billede schaefner Juniormester
09. februar 2003 - 13:53 #23
Du mangler irøvrigt en "{"
Avatar billede tbg Nybegynder
09. februar 2003 - 13:53 #24
Og jo er ganske forvirret men det er godt nok. Men hvad er forskellen på eregi og ereg?
Avatar billede fangel Nybegynder
09. februar 2003 - 13:54 #25
en den skal se forskel på store og små bogstaver... ;)
Avatar billede schaefner Juniormester
09. februar 2003 - 13:55 #26
så igrunden kan du godt skrive:
if(ereg("^[0-9]{1,}$", $bil1) && ereg("^[0-9]{1,}$", $bus1))
istedet da der jo ikke er forskel på store og små tal ;O)
Avatar billede fangel Nybegynder
09. februar 2003 - 13:56 #27
jo da... 1 == lille tal, 1*10^9 == stort tal... hæhæ,

nej, der er ingen forskel...

Morten
Avatar billede tbg Nybegynder
09. februar 2003 - 13:57 #28
Ja efter if sætningen, ik?
if(eregi("^[0-9]{1,}$", $bil1)) &&(eregi("^[0-9]{1,}$", $bus1)){
print "bla bla";
}
else {
print "bla bla bla";
}

har tjekket for at alle klammerne og slutningerne er på plads.
Avatar billede schaefner Juniormester
09. februar 2003 - 13:58 #29
åhh ja, klart ;)
Avatar billede ahv Nybegynder
09. februar 2003 - 13:58 #30
if (eregi("^[0-9]{1,}$", $bil1) && eregi("^[0-9]{1,}$", $bus2)) {
    echo "ja!!";
} else {
    echo "nej!";
}
Avatar billede tbg Nybegynder
09. februar 2003 - 14:01 #31
DOH..  overså et svar.. nu virker det. tak for hjælpen. Nu I er her, hvad er så forskellen på print og echo?
Avatar billede fangel Nybegynder
09. februar 2003 - 14:02 #32
hmmm... navnet...
Avatar billede fangel Nybegynder
09. februar 2003 - 14:03 #33
nej, se manualen...

udsnit af php.net/echo

"It is not possible to use echo() in a variable function context, but you can use print() instead."

Morten
Avatar billede schaefner Juniormester
09. februar 2003 - 14:03 #34
echo er hurtigere at skrive ;)
Avatar billede schaefner Juniormester
09. februar 2003 - 14:03 #35
nå, der var ligefrem en forskel
Avatar billede fangel Nybegynder
09. februar 2003 - 14:04 #36
schaefner => tja, vidste det heller ik'... men fandt det lige...

Morten
Avatar billede ahv Nybegynder
09. februar 2003 - 14:05 #37
Hvis det var min kommentar du overså, kan jeg godt lægge et svar.
Avatar billede ahv Nybegynder
09. februar 2003 - 14:06 #38
Eller nej, det kan jeg ikke ;o)
Avatar billede fangel Nybegynder
09. februar 2003 - 14:06 #39
hmm... echo kan have flere parametere...

echo ( string arg1 [, string argn...] )

men print kan kun have en

print ( string arg )

Morten
Avatar billede Slettet bruger
09. februar 2003 - 14:07 #40
http://www.eksperten.dk/spm/315006  jeg spurgte om det samme i går :)
Avatar billede fangel Nybegynder
09. februar 2003 - 14:09 #41
eller som en anden skrev engang


--- snip ---
What is the difference between echo and print?
Which is faster, echo or print?
Jun 8th, 1999 09:00

Nathan Wallace
Rasmus Lerdorf
There is a difference between the two, but speed-wise it
should be irrelevant which one you use.  print() behaves
like a function in that you can do:

  $ret = print "Hello World";

And $ret will be 1

That means that print can be used as part of a more complex
expression where echo cannot.  print is also part of the
precedence table which it needs to be if it is to be used
within a complex expression.  It is just about at the bottom
of the precendence list though.  Only "," AND, OR and XOR
are lower.

echo is marginally faster since it doesn't set a return
value if you really want to get down to the nitty gritty.

If the grammar is:

echo expression [, expression[, expression] ... ]

Then

echo ( expression, expression )

is not valid.  ( expression ) reduces to just an expression
so this would be valid:

echo ("howdy"),("partner");

but you would simply write this as:

echo "howdy","partner";

if you wanted to use two expression.  Putting the brackets
in there serves no purpose since there is no operator
precendence issue with a single expression like that.
--- / snip ---

Morten
Avatar billede fangel Nybegynder
09. februar 2003 - 14:10 #42
PS, den snip jeg har fundet kommer faktisk samme sted fra som det det andet spm. link til... nok fordi linket står i manualen...
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