Avatar billede nielschristiansen Nybegynder
13. december 2004 - 21:07 Der er 20 kommentarer og
1 løsning

Hvordan checker man om en form indeholder tal

Hej jeg har lavet et script hvor man indtaster data jeg laver et check om om der er data i formen før jeg går vidre det gør jeg på følgene måde

if(($_POST[navn1])&&($_POST[adresse])&&([$_POST[maaler])&&($_POST[vand])){

Nu vil jeg så gerne checke om der er indtastet tal i feltet maaler er der en nem måde at gøre det på ??

Mvh
Niels
Avatar billede Slettet bruger
13. december 2004 - 21:11 #1
Hvis du vil checke om det er et helt tal:

if (is_int($_POST[maaler])) {
  echo "Det er et hel-tal";
}


Hvis du vil checke om det er et kommatal:

if (is_float(str_replace(",", ".", $_POST[maaler]))) {
  echo "Det er et kommatal med punktum eller komma som seperator";
}
Avatar billede nielschristiansen Nybegynder
13. december 2004 - 21:20 #2
Hvordan ville du sætte det ind her ??

if(($_POST[navn1])&&($_POST[adresse])&&($_POST[maaler])&&($_POST[vand])){
include("forbind.php");
$dato = time();
mysql_query("insert into aflaes(navn1, adresse, maaler, vand, inter, dato)values('$_POST[navn1]','$_POST[adresse]','$_POST[maaler]','$_POST[vand]','$_POST[inter]','$dato')");
echo" Dine oplysninger er nu sendt til Ny Fløng Vandværk";
$msg = "Navn:        $_POST[navn1]\n";
$msg .= "Adresse:    $_POST[adresse]\n";
$msg .= "Målernummer: $_POST[maaler]\n";
$msg .= "Interessent  $_POST[inter]\n";
$msg .= "Vandforbrug: $_POST[vand]\n";
$email = "email";
$emne = "Vandaflæsning fra forbruger";
$header ="NY Fløng Vandværk \n";
mail($email, $emne, $msg, $header);
}else{echo "Alle felter skal udfyldes";}
?>
Avatar billede nielschristiansen Nybegynder
13. december 2004 - 21:20 #3
for når jeg gør det sender den igenting men skriver bare alle felter skal udfyldes
Avatar billede Slettet bruger
13. december 2004 - 21:27 #4
if(($_POST[navn1])&&($_POST[adresse])&&($_POST[maaler])&&($_POST[vand])&&is_int($_POST[maaler])){
include("forbind.php");
$dato = time();
mysql_query("insert into aflaes(navn1, adresse, maaler, vand, inter, dato)values('$_POST[navn1]','$_POST[adresse]','$_POST[maaler]','$_POST[vand]','$_POST[inter]','$dato')");
echo" Dine oplysninger er nu sendt til Ny Fløng Vandværk";
$msg = "Navn:        $_POST[navn1]\n";
$msg .= "Adresse:    $_POST[adresse]\n";
$msg .= "Målernummer: $_POST[maaler]\n";
$msg .= "Interessent  $_POST[inter]\n";
$msg .= "Vandforbrug: $_POST[vand]\n";
$email = "email";
$emne = "Vandaflæsning fra forbruger";
$header ="NY Fløng Vandværk \n";
mail($email, $emne, $msg, $header);
}elseif(!is_int($_POST[maaler])){
echo "SKAL være et hel-tal";
}else{echo "Alle felter skal udfyldes";}
Avatar billede iss Novice
13. december 2004 - 21:28 #5
is_int er ikke den rette funktion at bruge som det kommer ind som string:
if ((isset($_POST['navn1'])) && isset(($_POST['adresse'])) && ereg ("[0-9]", $_POST['maaler']) && ereg ("[0-9]", $_POST['vand'])){
    include("forbind.php");
    $dato = time();
    mysql_query("INSERT INTO aflaes(navn1, adresse, maaler, vand, inter, dato) VALUES ('".$_POST['navn1']."','".$_POST['adresse']."','".$_POST['maaler']."','".$_POST['vand']."','".$_POST['inter']."','$dato')");
    echo" Dine oplysninger er nu sendt til Ny Fløng Vandværk";
    $msg = "Navn:        $_POST['navn1']\n";
    $msg .= "Adresse:    $_POST['adresse']\n";
    $msg .= "Målernummer: $_POST['maaler']\n";
    $msg .= "Interessent  $_POST['inter']\n";
    $msg .= "Vandforbrug: $_POST['vand']\n";
    $email = "email";
    $emne = "Vandaflæsning fra forbruger";
    $header ="NY Fløng Vandværk \n";
    mail($email, $emne, $msg, $header);
}
else echo "Alle felter skal udfyldes \"og kun tal i maaler og vand\"";
Avatar billede iss Novice
13. december 2004 - 21:29 #6
"elseif(!is_int($_POST[maaler])){" linien ville den kun komme i hvis en af de andre er tomme....
Avatar billede Slettet bruger
13. december 2004 - 21:33 #7
iss -> Nej... Den kommer hvis det ikke er en int :)
(Jeg er lidt træt ligenu, men det gør den da ? jeg har jo en &&is_int($_POST[maaler]) på den første if)
Avatar billede nielschristiansen Nybegynder
13. december 2004 - 21:34 #8
hvis jeg bruger den du sendte til mig iss

får jeg følgene fejl Parse error: parse error, unexpected '(', expecting T_VARIABLE or '$' in /customers/nfvv.dk/nfvv.dk/httpd.www/forbrug.php on line 33
Avatar billede nielschristiansen Nybegynder
13. december 2004 - 21:37 #9
og hvis jeg bruger din qartzen sender den ikke mailen
Avatar billede iss Novice
13. december 2004 - 21:39 #10
Klart.... is_int virker ikke på sting.... hvilken linie er 33?
Avatar billede nielschristiansen Nybegynder
13. december 2004 - 21:41 #11
if ((isset($_POST['navn1'])) && isset(($_POST['adresse'])) && ereg ("[0-9]", $_POST['maaler']) && ereg ("[0-9]", $_POST['vand'])){
Avatar billede Slettet bruger
13. december 2004 - 21:45 #12
iss -> "Klart..... "
Hold lige en ordentlig tone! Og bær lige over med mig..
Avatar billede iss Novice
13. december 2004 - 21:45 #13
Prøv:
if (isset($_POST['navn1']) && isset($_POST['adresse']) && ereg("[0-9]", $_POST['maaler']) && ereg("[0-9]", $_POST['vand'])) {
    include("forbind.php");
    mysql_query("INSERT INTO aflaes (navn1, adresse, maaler, vand, inter, dato) VALUES ('".$_POST['navn1']."','".$_POST['adresse']."','".$_POST['maaler']."','".$_POST['vand']."','".$_POST['inter']."', UNIX_TIMESTAMP())");
    echo" Dine oplysninger er nu sendt til Ny Fløng Vandværk";
    $msg = "Navn:        ".$_POST['navn1']."\n";
    $msg .= "Adresse:    ".$_POST['adresse']."\n";
    $msg .= "Målernummer: ".$_POST['maaler']."\n";
    $msg .= "Interessent  ".$_POST['inter']."\n";
    $msg .= "Vandforbrug: ".$_POST['vand']."\n";
    $email = "email";
    $emne = "Vandaflæsning fra forbruger";
    $header = "From: NY Fløng Vandværk <Besvar_ikke@nfv.dk>\r\n";
//    $header ="NY Fløng Vandværk \n";
    mail($email, $emne, $msg, $header);
}
else echo "Alle felter skal udfyldes \"og kun tal i maaler og vand\"";
Avatar billede iss Novice
13. december 2004 - 21:46 #14
gartzen -> Havde jo skrevet det en gang, så er det da klart.
Avatar billede nielschristiansen Nybegynder
13. december 2004 - 21:48 #15
ja det virker fint hvad gjore du ud over at fjerne parentesen ??
Avatar billede Slettet bruger
13. december 2004 - 21:48 #16
iss -> Whatever :) Jeg smutter nu, for jeg vil ikke blive uvenner over noget når jeg er så træt :)

nielschristiansen -> Bare afvis mit svar, iss tager vidst helt over nu.. :)
Avatar billede iss Novice
13. december 2004 - 21:50 #17
Ik' andet, kunne ikke lige se fejlen, men skrev det selv uden at bruge noget af dit, så går det lidt nemmere:D
Avatar billede iss Novice
13. december 2004 - 21:51 #18
Du vil nok også bemærke jeg har rettet lidt andet også.
Avatar billede nielschristiansen Nybegynder
13. december 2004 - 21:52 #19
jeg prøvede dit svar men det virkede ikke se 8 svar over dette

det er ikke for at være uhøflig
Mvh
Niels Christiansen
Avatar billede Slettet bruger
13. december 2004 - 21:55 #20
nielschristiansen -> Var det til mig? Jeg har da heller ikke klaget over at du sagde det ikke virkede :) Glem alt hvad jeg har sagt i denne tråd ;o)
Avatar billede thb Nybegynder
13. december 2004 - 22:34 #21
Jeg plejer at bruge is_numeric()

http://dk.php.net/manual/en/function.is-numeric.php

Thomas
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