Avatar billede masterc Nybegynder
06. oktober 2003 - 10:31 Der er 6 kommentarer og
1 løsning

Validering af form igen igen

Hej med jer,
Jeg er stødt på et problem som jeg har brug for jer, eksperters hjælp til:
Jeg har forsøgt vha. php at validere nedenstående nykunde.php, men lige meget hvad hej forsøger kan jeg ikke få det til at virke. Jeg har prøvet med diverse løsninger fra svar her på sitet, men jeg synes ikke at noget hjælper.

Kunne der mon ikke findes en "hjerne" som kan hjælpe mig

MasterC

nykunde.php
<html>

<head>
<title>Opret kunde</title>
</head>

<body>

<p>&nbsp;</p>
<center>
<form name="form1" method="get" action="dbupdcust.php">

<fieldset style="padding: 2; width:689; height:225">
  <legend>Opret kunde</legend>
&nbsp;<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
    <tr>
      <td width="27%">Kontakt</td>
      <td width="73%">&nbsp;<input type="text" name="att" size="57" maxlength="100"></td>
    </tr>
    <tr>
      <td width="27%">Kunde navn</td>
      <td width="73%">&nbsp;<input type="text" name="name" size="57" maxlength="100"></td>
    </tr>
    <tr>
      <td width="27%">Adresse</td>
      <td width="73%">&nbsp;<input type="text" name="address" size="57" maxlength="150"></td>
    </tr>
    <tr>
      <td width="27%">Postnummer og by</td>
      <td width="73%">&nbsp;<input type="text" name="zip" size="5" maxlength="4">&nbsp<input type="text" name="city" size="30" maxlength="100"></td>
    </tr>
    <tr>
      <td width="27%">Telefon</td>
      <td width="73%">&nbsp;<input type="text" name="phone" size="9" maxlength="8"></td>
    </tr>
    <tr>
      <td width="27%">Mobil</td>
      <td width="73%">&nbsp;<input type="text" name="cell" size="9" maxlength="8"></td>
    </tr>
    <tr>
      <td width="27%">E-Mail</td>
      <td width="73%">&nbsp;<input type="text" name="email" size="57" maxlength="100"></td>
    </tr>
    <tr>
      <td width="27%">&nbsp;</td>
      <td width="73%">&nbsp;</td>
    </tr>
  </table>
  </fieldset><p><input type="submit" value="Tilføj  " name="B1">&nbsp;&nbsp;<input type="reset" value="Reset" name="B2"></p>
</form>
</center>
</body>

</html>
Avatar billede ttc Nybegynder
06. oktober 2003 - 10:46 #1
kan du ikke forklare dyber, hvad du forventer ved validering
FX:
-skal den kunne returner til formen og mækerer hvad der er forkert....
Avatar billede masterc Nybegynder
06. oktober 2003 - 10:51 #2
Mit problem er at jeg overhovedet ikke kan få kørt noget som helst kode når jeg submitter :-( Jeg har fundet eksempler på kontroller af felterne, men jeg kan som før nævnt ikke få noget kode kørt.

Når et felt er forkert skal jeg have en rød fejltekst under formen - det var i hvertfalde min ide
Avatar billede avminarm Juniormester
06. oktober 2003 - 11:52 #3
hvorfor bruger du GET i formen??

prøv at laven den om til PHP_SELF: <form name="form1" method="get" action="<?php echo $_SERVER[]; ?>">

Kan du finde ud af at benytte classes - for der er en artikel på devarticles.com omkring en "formclassvalidator" eller noget i den stil - og den er ret fiks.

du kkan selv følgelige lave noget if/else med f.eks:

(nu bruger du jo GET)

if($_GET['att'] ==""){
  echo "hov du kontakt SKAL udfyldes";
}
Avatar billede sukos Juniormester
06. oktober 2003 - 14:22 #4
Ville jo være nemmere hvis du viste hvordan du håndterer en submit, i stedet for bare formen.

Men hvad med dette:

<?php
session_start();
$message = "Feltet er ikke udfyldt!";

function tjekform($var) {
global $message;

if(isset($_SESSION[$var])) {
    if($_SESSION[$var] == $message) {
    echo"<br>\n<font color=\"red\" size=0.9em\">". $_SESSION[$var] ."</font>";
    }else{
    echo" value=\"". $_SESSION[$var] ."\"";
        }
unset($_SESSION[$var]);
    }
}

if(isset($_POST["nykunde"])) {
$_SESSION["fejlnr"] = 0;
$_SESSION["antal"] = 0;

    foreach($_POST as $key=>$value) {
    $_SESSION["fejlnr"]++;
        if(trim($value) == "") {
        $_SESSION["antal"]++;
        $_SESSION[$key. $_SESSION["fejlnr"]] = $message;
        }else{
        $_SESSION[$key] = $value;
        }
    }
header("Location:". $_SERVER["PHP_SELF"] ."");
exit;
}
?>
<html>

<head>
<title>Opret kunde</title>
</head>

<body>
<center>

<?php if(isset($_SESSION["antal"])) {
if($_SESSION["antal"] != 0) {
echo"<b>Du mangler at udfylde nogle felter!</b><p>";
unset($_SESSION["antal"]);
    }
}
?>
<form name="form1" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<input type="hidden" name="nykunde" value="true">
<fieldset style="padding: 2; width:689; height:225">
<legend>Opret kunde</legend>
&nbsp;<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="27%">Kontakt</td>
<td width="73%">&nbsp;<input type="text" name="att" size="57"<?php tjekform("att"); ?> maxlength="100"><?php tjekform("att2"); ?></td>
</tr>
<tr>
<td width="27%">Kunde navn</td>
<td width="73%">&nbsp;<input type="text" name="name" size="57"<?php tjekform("name"); ?> maxlength="100"><?php tjekform("name3"); ?></td>
</tr>
<tr>
<td width="27%">Adresse</td>
<td width="73%">&nbsp;<input type="text" name="address" size="57"<?php tjekform("address"); ?> maxlength="150"><?php tjekform("address4"); ?></td>
</tr>
<tr>
<td width="27%">Postnummer og by</td>
<td width="73%">&nbsp;<input type="text" name="zip" size="5"<?php tjekform("zip"); ?> maxlength="4">&nbsp<input type="text" name="city" size="30"<?php tjekform("city"); ?> maxlength="100"><?php tjekform("zip5");
tjekform("city6");
?></td>
</tr>
<tr>
<td width="27%">Telefon</td>
<td width="73%">&nbsp;<input type="text" name="phone" size="9"<?php tjekform("phone"); ?> maxlength="8"><?php tjekform("phone7"); ?></td>
</tr>
<tr>
<td width="27%">Mobil</td>
<td width="73%">&nbsp;<input type="text" name="cell" size="9"<?php tjekform("cell"); ?> maxlength="8"><?php tjekform("cell8"); ?></td>
</tr>
<tr>
<td width="27%">E-Mail</td>
<td width="73%">&nbsp;<input type="text" name="email" size="57"<?php tjekform("email"); ?> maxlength="100"><?php tjekform("email9"); ?></td>
</tr>
<tr>
<td width="27%">&nbsp;</td>
<td width="73%">&nbsp;</td>
</tr>
</table>
</fieldset><p><input type="submit" value="Tilføj " name="B1">&nbsp;&nbsp;<input type="reset" value="Reset" name="B2"></p>
</form>
</center>
</body>

</html>
Avatar billede avminarm Juniormester
06. oktober 2003 - 15:26 #5
prøv avt at kigge lidt på det her jeg lige har mixet sammen: http://wagners.users.whitehat.dk/formvalidater_class/eksempel.php
Avatar billede masterc Nybegynder
07. oktober 2003 - 08:49 #6
Fint svar, kan bruges, jeg fik vidst trykket på afvis - du må lige skrive et eller andet for at jeg kan give dig point!!

Tak for hjælpen
Avatar billede avminarm Juniormester
07. oktober 2003 - 09:11 #7
ok ;o)
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