Avatar billede janorakel Nybegynder
29. november 2005 - 22:24 Der er 8 kommentarer og
1 løsning

Lave fejlmeddelelser på denne fil

Hvordan laver jeg fejlmedelelser på denne fil:

<?php


$besked = "Navn er: " . $_POST['navn'] . "\n";
$besked .= "Firmanavn: " . $_POST['Firmanavn'] . "\n";
$besked .= "Adressen er: " . $_POST['Adresse'] . "\n";
$besked .= "Postnr og by: " . $_POST['Postnrby'] . "\n";
$besked .= "Email er: " . $_POST['Email'] . "\n";
$besked .= "Telefon er: " . $_POST['tlf'] . "\n";
$besked .= "Beskeden er: " . $_POST['besked'] . "\n";

if(isset($_POST['navn'])){
    mail("info@xxxxx.dk", "Forespørgsel ang vikarassistance fra xxxxx", $besked, "From: $_POST[navn] <$_POST[mail]>");
    echo "<br><br><h5>Din forespørgsel er nu sendt</h5>";
}
?>
<style type="text/css">
<!--
.style3 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; }
.style4 {font-size: 10px}
-->
</style>
<form action="<?php echo $SERVER['PHP_SELF']; ?>" method="post">
  <table width="90%"  border="0">
    <tr>
      <td><span class="style3">Navn:</span></td>
      <td><input name="navn" class="form" type="text" size="50"></td>
    </tr>
    <tr>
      <td><span class="style3">Firmanavn:</span></td>
      <td><input name="Firmanavn" class="form" type="text" size="50"></td>
    </tr>
    <tr>
      <td><span class="style3">Adresse:</span></td>
      <td><input name="Adresse" class="form" type="text" size="50"></td>
    </tr>
    <tr>
      <td><span class="style3">Postnr og by:</span></td>
      <td><input name="Postnrby" class="form" type="text" size="50"></td>
    </tr>
    <tr>
      <td height="43" valign="bottom"><span class="style3">Email: </span></td>
      <td valign="bottom"><input name="Email" class="form" type="text" size="50"></td>
    </tr>
    <tr>
      <td><span class="style style1 style4">Tlf.:</span></td>
      <td><input name="tlf" class="form" type="text" id="tlf" size="12"></td>
    </tr>
    <tr>
      <td><span class="style4"></span></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td valign="top"><span class="style3">Kort beskrivelse af opgaver: </span></td>
      <td><textarea wrap="virtual" name="besked" class="form" rows="10" cols="45"></textarea></td>
    </tr>
    <tr>
      <td><span class="style4"></span></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><span class="style4">
      </span></td>
      <td><span class="style4">
        <input name="submit" class="form" type="submit" value="Send">
      </span></td>
    </tr>
  </table>
</form>

Eks:
Du har ikke indtastet navn
Du har ikke indtastet tlf. osv.

Og hvordan smider man max antal bogstaver på hvert felt?
Avatar billede showsource Seniormester
30. november 2005 - 02:14 #1
Sidste, du kan putte en maxlenght="24" på dit inputfelt. Den kan omgås, men du kan så bruge strlen() til at tjekke antal tegn.

Til validering, kan du starte med javascript, (evt.), og du kan bruge sessions til at vise en besked, samt "huske" hvad der stod i de felter som var ok.
Avatar billede hanne_e Nybegynder
30. november 2005 - 07:03 #2
Da du allerede er i gang med php, vil jeg foreslå at du holder dig til det og så bruger regular expressions. Du går ind og validerer det input der er tastet. Jeg har lige skrevet et forslag nedenfor, men du kan selvfølgelig vælge at udelade visse af de karakterer eller inkludere nogle flere - det er bare ment som et eksempel. Validering af e-mail kan du fx finde mio af forslag til via google.

I dette tilfælde vil fejlbeskeden komme felt for felt hvis ikke reglen overholdes - ved exit. Derfor "requirer" jeg en footer der sørger for at afslutte html-filen ordentligt.

if (!ereg("^[a-zæøåA-ZÆØÅ/., -]+$", $navn)) {
        echo "<p><b>Husk at skrive dit navn</b>.</p>";
        require('inc/footer.inc');
        exit;
}
if (!ereg("^[ a-zæøåA-ZÆØÅ0-9,-]+$", $firmanavn)) {
        echo "<p><b>Husk at skrive firmanavnet</b>.</p>";
        require('inc/footer.inc');
        exit;
}
if (!ereg("^[a-zæøåA-ZÆØÅ0-9/., -]+$", $adresse)) {
        echo "<p><b>Husk at skrive en adresse</b>.</p>";
        require('inc/footer.inc');
        exit;
}
if (!ereg("^[0-9]{4}$", $postnr)) {
        echo "<p><b>Husk at skrive et postnr.</b></p>";
        require('inc/footer.inc');
        exit;
}
if (!ereg("^[0-9]{0,8}$", $tlfnr)) {
        echo "<p><b>Dit tlf.nr. er ikke gyldigt.</b></p>";
        require('inc/footer.inc');
        exit;
}
if (!eregi("^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$", $email)){
        echo "<p><b>Din emailadresse er ikke gyldig!</b></p>";
        exit;
   
}
Avatar billede hanne_e Nybegynder
30. november 2005 - 07:06 #3
Hov forresten, hvis felterne kun måtte være 24 tegn kan du bruge {1,24}efter valideringstegnene - som der ved postnr.

du kan læse mere om reg ex. her:
http://dk2.php.net/manual/en/function.ereg.php
http://regular-expression.info/
Avatar billede hanne_e Nybegynder
02. december 2005 - 17:21 #4
Var det slet ikke noget i denne stil, du havde tænkt dig?
Avatar billede janorakel Nybegynder
05. december 2005 - 00:24 #5
Hej, jeg har lige været væk i noget tid.
Ja, det var noget i den stil jeg havde tænkt mig.
Jeg kigger lige på det.
Avatar billede hanne_e Nybegynder
05. december 2005 - 16:30 #6
Hvis du i øvrigt vil sende mailen som html i stedet for blot tekst kan du se syntaxen i et spørgsmål jeg kommenterede for nylig: http://exp.dk/spm/669128
Avatar billede janorakel Nybegynder
21. marts 2006 - 21:10 #7
Hanne, jeg skal have lukket denne her...
Jeg takker mange gange for din hjælp!
Smid et svar.
Avatar billede hanne_e Nybegynder
22. marts 2006 - 20:20 #8
Det var så lidt :-) Håber du kunne bruge noget af det!
Avatar billede janorakel Nybegynder
23. marts 2006 - 07:30 #9
Ja, det kan jeg i hvert tilfælde. Ha' en god dag.
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