Avatar billede -kenner- Nybegynder
13. april 2005 - 14:01 Der er 11 kommentarer og
1 løsning

Tjekke om der er indtastet tal eller bogstaver..

Hej eksperter,

Jeg sidder med et script, hvor jeg har brug for at tjekke om der er indtastet tal eller bogstaver..

Kode:

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
      <title>Venner</title>
      <link href="../indexSheet.css" rel="stylesheet" type="text/css">
</head>
<body class="indhold">
<center>
<?php

//skaber forbindelse til databasen
mysql_connect("localhost", "database", "kode") or die (mysql_error());
mysql_select_db("tabel") or die (mysql_error());
//Titel
?><div class="overskrift">Tilføj en ven til vennelisten</div>
<div class="fejl"><?php
//Tjekker om felterne er udfyldt
if(isset($_POST['send'])) {

  if (empty($_POST['navn'])){
    echo "<b>Fejl:</b> Du mangler at udfylde dit navn";
  } elseif (empty($_POST['email'])) {
    echo "<b>Fejl:</b> Du mangler at udfylde email";
  } elseif (empty($_POST['artoid'])) {
    echo "<b>Fejl:</b> Du mangler at udfylde Arto id";
  } elseif (empty($_POST['kon'])) {
    echo "<b>Fejl:</b> Du mangler at vælge køn";
  } else {
    //Indsaet indhold i databasen
    mysql_query("INSERT INTO venner (id, navn, email, kon, artoid) values (0, '{$_POST['navn']}', '{$_POST['email']}', '{$_POST['kon']}', {$_POST['artoid']})") or die (mysql_error());
  }
}
?> </div>

<form name="venner-tilfoej" method="post" action="<?php echo $PHP_SELF;?>">
<p>navn:<input type="text" name="navn" value="<?php echo $_POST['navn'];?>" size="60" maxlength="60"></p>
<p>email:<input type="text" name="email" value="<?php echo $_POST['email'];?>" size="60" maxlength="60"></p>
<p>Arto id:<input type="text" name="artoid" value="<?php echo $_POST['artoid'];?>" size="60" maxlength="6"></p>
<p>Køn:<select name="kon"><option value="">Vælg</option><option value="Dreng">Dreng</option><option value="Pige">Pige</option></select></p>
<input type="submit" name="send" value="Tilfoej dig">
</form>

<?php


//slette funktion
if(isset($_POST['slet'])) {
$id = $_POST['sletid'];
mysql_query("DELETE FROM venner WHERE id = $id") or die (mysql_error());
}

//Laver forespørgsel i tabellen
$venner = mysql_query ("SELECT * FROM venner") or die (mysql_error());

//Udskriver de fundne data i en tabel
//Titel til tabel
print "<p>Venneliste</p>";
print "<table style=\"border: 2px solid #000000;Border-collapse:collapse;\"><tr><td style=\"border: 1px dashed #000000;\">ID</td>
<td style=\"border: 1px dashed #000000;\">Navn</td>
<td style=\"border: 1px dashed #000000;\">Køn</td>
<td style=\"border: 1px dashed #000000;\">Email</td>
<td style=\"border: 1px dashed #000000;\">Arto</td>
<td style=\"border: 1px dashed #000000;\">Slet</td></tr>";
while ($row = mysql_fetch_array($venner))
print "<tr><form name=\"ven-slet".$row["id"]."\" method=\"post\" action=\"$PHP_SELF\">
<td style=\"border: 1px dashed #000000;\">".$row["id"]."</td>
<td style=\"border: 1px dashed #000000;\">".$row["navn"]."</td>
<td style=\"border: 1px dashed #000000;\">".$row["kon"]."</td>
<td style=\"border: 1px dashed #000000;\">".$row["email"]."</td>
<td style=\"border: 1px dashed #000000;\">".$row["artoid"]."</td>
<td style=\"border: 1px dashed #000000;\"><input type=\"hidden\" name=\"id\" value=\"".$row["id"]."\">
<form action=\"{$_SERVER['PHP_SELF']}\" method=\"post\"><input type=\"hidden\" name=\"sletid\" value=\"{$row["id"]}\"><input type=\"submit\" name=\"slet\" value=\"Slet\"></td></form></tr>";
print"</table>";

?>
</body>
</html>
Avatar billede hyberpreprocessor Nybegynder
13. april 2005 - 14:04 #1
tal ELLER bogstaver ?

$navn = "hej";
if(!preg_match("/([a-zA-Z])/",$navn))
{
  echo "Navnet er ikke 100% bogstaver";
}

$alder = "18";
if(!preg_match("/([0-9])/",$alder))
{
  echo "Din alder er ikke et tal";
}
Avatar billede dennismp Nybegynder
13. april 2005 - 14:21 #2
ctype_digit() - returnerer true hvis det er rent tal (0-9)
ctype_alfa() .. for bogstaver
ctype_alnum() .. for bogstaver og tal
Avatar billede hyberpreprocessor Nybegynder
15. april 2005 - 21:01 #3
lukketid ?
Avatar billede -kenner- Nybegynder
17. april 2005 - 14:39 #4
dennismp, jeg er ikke så god til funktioner der returnere true eller false, kan du ikke lige uddybe det?
Avatar billede -kenner- Nybegynder
17. april 2005 - 14:58 #5
$alder = "1a";
# hyberpreprocessor, jeg har prøvet med denne kode, og den returnerede Din alder er et tal, som den skal, men hvis jeg sætter alder til 1a, så returnere den det samme.:


$alder = "18";
if(!preg_match("/([0-9])/",$alder))
{
  echo "Din alder er ikke et tal";
} else {
  echo "Din alder er et tal";
}
Avatar billede dennismp Nybegynder
17. april 2005 - 15:04 #6
if(! ctype_alnum($navn) ) {
  print "Navn må kun indeholde bogstaver og tal";
}
Avatar billede dennismp Nybegynder
17. april 2005 - 15:07 #7
if(! ctype_num($alder)) {
  print "Alder skal være et tal";
}

if(!preg_match("/([0-9])/",$alder))

skal rettes til

if(!preg_match('/(^[0-9]+$)/',$alder))
Avatar billede -kenner- Nybegynder
17. april 2005 - 15:19 #8
Returnere denne kode også fejl, hvis $alder er 0 eller tom?

if(! ctype_num($alder)) {
  print "Alder skal være et tal";
}
Avatar billede dennismp Nybegynder
17. april 2005 - 15:32 #9
nej. 0 er jo et tal :)


if(! ctype_num($alder)) {
  print "Alder skal være et tal";
}
elseif( $alder < 5 ) {
  print "Jeg tror ikke på du er mindre end 5 år gammel";
}
elseif( $alder > 90 ) {
  print ".. og jeg tror ikke på du er over 90";
}

osv..
Avatar billede -kenner- Nybegynder
17. april 2005 - 15:39 #10
Jeg skal bruge en, hvor man ikke kun må skrive tal, men den må godt sættes til 0 eller være tom..
Avatar billede -kenner- Nybegynder
17. april 2005 - 15:49 #11
okay, men så hvor den må være tom..
Avatar billede dennismp Nybegynder
17. april 2005 - 16:04 #12
if( $alder != '' ) {
  // Alder er ikke tom
  // indsæt flere checks her
}
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