Avatar billede Slettet bruger
24. juni 2008 - 08:50 Der er 2 kommentarer og
1 løsning

Formular med php validering

Hejsa.

Er der en venlig sjæl herinde der kunne lave en formular hvor der var validering i? Altså så den tjekker om mail adressen er skrevet med ulovlige tegn o.s.v.

De felter jeg gerne vil have er: Navn, Email, Emne og Besked...
På forhånd tak!

Venlig Hilsen Simon
Avatar billede jih Nybegynder
24. juni 2008 - 12:56 #1
denne kode kræver at du har nogle sider lavet (en tak side til når mailen er sendt; email.php til selve koden og form.html til selve email formen (du kan ændre navnet, du skal bare huske at ændre navnet i header i email.php filen)


email.php:
---
<?php
  function checkEmail($email)  {
    if(eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $email)) {
      return FALSE;
    }

    list($Username, $Domain) = split("@",$email);

    if(getmxrr($Domain, $MXHost)) {
      return TRUE;
    } else {
      if(fsockopen($Domain, 25, $errno, $errstr, 30)) {
        return TRUE;
      } else {
        return FALSE;
      }
    }
  }

  $navn = $_POST['Name'];
  $email = $_POST['Email'];
  $emne = $_POST['Subject'];
  $besked = $_POST['Message'];
 
  if (!isset($_POST['Name'])) {
    header("Location: http://www.dinhjemmeside.dk/form.html");
  } elseif (empty($email) || empty($besked)) {
    ?>
    <html>
      <head>
        <title>Error</title>
      </head>
      <body>
        <h1>Error</h1>
        <p>
          Oops, it appears you forgot to enter either your
          email address or your message. Please press the BACK
          button in your browser and try again.
        </p>
      </body>
    </html>
    <?php
  } elseif(checkEmail($email) == FALSE) {
    ?>
    <html>
      <head>
        <title>Error</title>
      </head>
      <body>
        <h1>Error</h1>
        <p>
          Your email isn't valid. Please press the BACK
          button in your browser and try again.
        </p>
      </body>
    </html>
    <?php
  } else {
    mail("test@email.dk", $emne, $besked, "From: $name <$email>");
    header("Location: http://www.dinhjemmeside.dk/tak.html");
  }
?>


form.html:
---
<form name="validate" method="POST" action="email.php">
Navn: <input type="text" name="Name"><br>
Email: <input type="text" name="Email"><br>
Emne: <input type="text" name="Subject"><br>
Besked:<br><input type="textarea" name="Message" rows="20" cols="80"></textarea><br>
<input type="submit" name="submit" value="Send">
</form>

der kan være nogle fejl, siden jeg er blevet distraheret er par gange mens jeg har skrevet koden, så sig endelig til :-)
Avatar billede Slettet bruger
24. juni 2008 - 15:02 #2
Det skal du have mange tak for - Den virker helt perfekt... Har du evt. en hjemmeside? så indsætter jeg et link som tak for hjælp?
Avatar billede jih Nybegynder
24. juni 2008 - 15:11 #3
det var så lidt :-) behøves ikke link, jeg har ingen aktiv hjemmeside.. :-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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