Avatar billede scorpion Nybegynder
08. december 2001 - 14:44 Der er 11 kommentarer og
1 løsning

Validering af form inden den bliver submit\'et.

Hejsa der ude, er der nogen der kan give en hånd med, til en der er ny i PHP verdenen.

Det jeg skal have til at funger er en validering af en form, der så senere bliver mailet. Selve mailing delen er på plads, men mangler at kunne validere nogle af informationerne i form’en.

Det der skal valideres er de felter med * i formen:


Name*:      [her er en select box]
Title:      [her er en select box]
Company:      [her er en select box]
Address*:      [her er en select box]
Postcode*:      [her er en select box] 
City/Town*:    [her er en select box]
Country*:      [her er en select box]
E-mail:      [her er en select box]
   
Der skal valideres for bogstaver, ved alle undtaget ”Postcode” der skal valideres med tal.
  Hvis indtastningen i form’en ikke er korrekt, skal der komme en rød tekst uden for det/ de indtastningsfelter, der er forkert, der forklarer fejlen til brugeren; den indtastning der dog er korrekt, skal blive stående.

På denne måde:

Name*:      [Klaus Hansen        ]
Title:      [her er en select box]
Company:      [her er en select box]
Address*:      [Knudsgade 14. 3.]
Postcode*:      [her er en select box]Info missing ...
City/Town*:    [her er en select box]Info missing ...
Country*:      [Denmark            ]
E-mail:      [her er en select box]

Håber der er nogen der har en løsning på mit problem, men under alle omstændigheder, tak for den tid du har taget dig.

MVH

Scorpion
Avatar billede jensgram Nybegynder
08. december 2001 - 14:46 #1
\"Validering af form inden den bliver submit\'et.\"

Hvis det skal være inden den bliver submittet skal det foregå i Javascript eller VBscript
Avatar billede scorpion Nybegynder
08. december 2001 - 15:03 #2
Oki, mr noname

Men kan JavaScript, godt vende tilbage til den samme html side, uden at glemme de informationer der er tastet korrekt ind i først omgang, og samtidigt tilføje en ny tekst ??

PS. Jeg søger på ingen måder efter en pop-up løsning i stil med Alert box, men udelukkende tekst der indikerer hvor fejlen er.
Avatar billede ans_dk Nybegynder
08. december 2001 - 15:14 #3
øøøøøøhh,

Nu mener nok at der skal være en \"preview\" af de instastede oplysninger, inden de sendes/gemmes ??

kig noget af de seneste jeg har lavet

http://www.tolkeservicedanmark.dk/on-line_bestilling.php

Er det sådan noget du gerne vil have ???

mvh,
ans
Avatar billede scorpion Nybegynder
08. december 2001 - 15:22 #4
Det er tæt på det jeg søger, men ikke helt. Hvis man laver en fejl, skal det ikke forklares på en ny side, men den samme som den man taster ind på. På denne måde:

Name*: [tom text field] Info missing or incorrect.

Avatar billede ans_dk Nybegynder
08. december 2001 - 15:24 #5
hmmmm, hvorfor det ??+

dette er  meget nermere, og koster altså ikke ret meget CPU kraft ....

/ans
Avatar billede ans_dk Nybegynder
08. december 2001 - 15:35 #6
hmmmm,

denne løsning virker i alle browsere,  ... kun html, keine javaScript ....

hvis du skal lave checks med JavaScript på hvert enkelt input, kommer altså siden til at være på ca.60 Kb !!!! (måske er det lidt overdrevet .... men, pointen er der ...)

I hate JavaScript !!!!
JavaScript _is_not_ JAVA !!!!
JavaScript=only problems !!

/ans

PS: kl. er 15:34, og så er der blevet weekend (for mig, først nu !) sessss, men først på mandag !
Avatar billede scorpion Nybegynder
08. december 2001 - 19:39 #7
Når alt kommer til alt, kan jeg ikke helt forstå, at mit problem ikke kan løses med PHP. Ved at bruge ASP kan det jo løses med sessions, er der ikke noget der tilsvar det inden for PHP verden?

Grunden til at jeg ikke bruger ASP er serveren og et spm. om sikkerhed.
Avatar billede ullesan Nybegynder
08. december 2001 - 20:11 #8
prøv og kig i det gæstebog eksempel som WebCafe har lavet

http://webcafe.dk/php/artikler/250/gbog.zip

det du skal bruge er at lave et validerings side med funktion ereg(), som tjekker om det indtastede passer med hvad vil have dine felter valideret med!

if(!ereg(\"[A-z]+\", $navn)) {
print \"Mangler navn\"; exit;
}

Følgende tjekker om feltet navn indeholder bogstaver fra a-z, hvis ikke så brokker den sig -  men i dit tilfælde vil det blive noget med



valideringsside.php

if(!ereg(\"[A-z]+\", $navn)) {
header(\"location: siden_variablen_blev_sendt_fra.php?navn=\")
}

siden_variablen_blev_sendt_fra.php

<input type=\"text\" name=\"navn\"> <? if ($navn == \"\") { print \"<font color=\'red\'>*</font>\"; }

på den måde fortsætter du med alle de felter der skal valideres og husk så at lave validering på alle variabler i \"valideringsside.php\"!!


håber du er med!!

Avatar billede ullesan Nybegynder
08. december 2001 - 20:12 #9
PIS!!! Det skulle være som svar!!!
Avatar billede scorpion Nybegynder
11. december 2001 - 23:26 #10
Jeg undersøger, hvis jeg kan få det til at virke onsdag d. 12/12-01 og vender så tilbage.

MVH

Scorpion
Avatar billede scorpion Nybegynder
12. december 2001 - 15:25 #11
Øh, jeg ved ikke hvis det er mig der gør noget galt, men jeg kan ikke få det til at virke.

Siderne ser ud som følgende:

Subscribe_form.php:

<html>

    <head>
   
       
       
        <title>Subscribe to Newsletter</title>
        <link href=\"../css/style.css\" rel=\"styleSheet\" type=\"text/css\">
    </head>

    <script>
  function loadframe(FileName)
  {
    parent.menu.location.replace(FileName);
  }
function loadtopframe()
  {
    parent.topframe.location.replace(\'topnavi.html\');
   
  }
</script>

    <body bgcolor=\"white\" link=\"#000080\" alink=\"#000080\" vlink=\"#000080\"  background=\"../grafx/gen/contentbg.gif\" onload=\"java script:loadframe(\'menu.html\'); java script:loadtopframe();\">
        <a name=\"top\"></a>
        <table border=\"0\" cellpadding=\"0\" cellspacing=\"10\">
            <tr>
                <td width=\"390\" valign=\"top\">
                    <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">
                        <tr>
                            <td valign=\"bottom\"><span class=\"headline\">Subscribe
                              to Newsletter</span></td>
                            <td align=\"right\"><img height=\"25\" width=\"25\" src=\"../grafx/gen/logosmall.gif\"></td>
                        </tr>
                        <tr height=\"1\">
                            <td height=\"1\" colspan=\"2\" bgcolor=\"#333333\"><img height=\"1\" width=\"1\" src=\"../grafx/gen/spacer.gif\"></td>
                        </tr>
                        <tr height=\"5\">
                            <td height=\"5\"><img height=\"1\" width=\"1\" src=\"../grafx/gen/spacer.gif\"></td>
                            <td height=\"5\"></td>
                        </tr>
                    </table>
                          <FORM METHOD=\"POST\" ACTION=\"subscribe.php\">
                          <table border=\"0\" width=\"100%\">
                            <tr>
                              <td width=\"100%\" colspan=\"2\" bgcolor=\"#E6E4D8\"><font face=\"Arial\" size=\"2\"><b>Fill
                                out&nbsp; the form to subscribe to our newsletter:</b></font></td>
                            </tr>
                            <tr>
                              <td width=\"11%\" align=\"right\">
                              <br>
                              </td>
                              <td width=\"89%\">
                              <br>
                              </td>
                            </tr>
                            <tr>
                              <td width=\"11%\" align=\"right\"><span class=\"bread\">Name*:&nbsp;
                    </span>
                              </td>
                              <td width=\"89%\"><span class=\"bread\"> <INPUT NAME=\"name\" size=\"25\"><?php if name==\"\")
{
print \"<font color=\'red\'> **</font>\";
}
?>
                    </span>
                              </td>
                            </tr>
                            <tr>
                              <td width=\"11%\" align=\"right\"><span class=\"bread\">Title:&nbsp;
                    </span>
                              </td>
                              <td width=\"89%\"><span class=\"bread\"><INPUT NAME=\"title\" size=\"25\">
                    </span>
                              </td>
                            </tr>
                            <tr>
                              <td width=\"11%\" align=\"right\"><span class=\"bread\">Company:&nbsp;
                    </span>
                              </td>
                              <td width=\"89%\"><span class=\"bread\"><INPUT NAME=\"company\" size=\"25\">
                    </span>
                              </td>
                            </tr>
                            <tr>
                              <td width=\"11%\" align=\"right\"><span class=\"bread\">
                    Address*:&nbsp;
                    </span>
                              </td>
                              <td width=\"89%\"><span class=\"bread\"><INPUT NAME=\"address\" size=\"25\">
                    </span>
                              </td>
                            </tr>
                            <tr>
                              <td width=\"11%\" align=\"center\"><span class=\"bread\">
                    Postcode*:&nbsp;
                    </span>
                              </td>
                              <td width=\"89%\"><span class=\"bread\"><INPUT NAME=\"postcode\" TYPE=\"TEXT\" SIZE=\"4\">&nbsp;&nbsp;
                                City/Town: <INPUT NAME=\"city\" size=\"11\">
                    </span>
                              </td>
                            </tr>
                            <tr>
                              <td width=\"11%\" align=\"center\"><span class=\"bread\">
                    Country*:&nbsp;
                    </span>
                              </td>
                              <td width=\"89%\"><span class=\"bread\"> <INPUT NAME=\"country\" size=\"25\">
                    </span>
                              </td>
                            </tr>
                            <tr>

                          <td align=\"right\"><span class=\"bread\">E-mail:&nbsp;
                    </span>
                          </td>
                          <td>

                    <span class=\"bread\"> <INPUT NAME=\"email\" size=\"30\">
                    </span>
                          </td>
                            </tr>
                            <tr>
                              <td width=\"11%\" align=\"center\">&nbsp;</td>
                              <td width=\"89%\"><span class=\"bread\"><INPUT TYPE=\"SUBMIT\" VALUE=\"Submit\"></span>
                              </td>
                            </tr>
                            <tr>
                              <td width=\"100%\" colspan=\"2\"><span class=\"bread\"><br>
                                Please note!&nbsp;<br>
All fields marked with an asterisk(*) are required. </span></td>
                            </tr>
                          </table>
                          </form>
                    &nbsp;
                </td>
                <td width=\"193\" valign=\"top\">
                  <p align=\"center\"><img height=\"25\" width=\"1\" src=\"../grafx/gen/spacer.gif\"><br>
                  <img border=\"0\" src=\"../images/Photos/news01.GIF\" width=\"140\" height=\"105\"></p>
                </td>
            </tr>
            <tr>
                <td colspan=\"2\"><img height=\"50\" width=\"593\" src=\"../grafx/gen/footer.gif\" border=\"0\" usemap=\"#footermap\"><map name=\"footermap\"><area href=\"#top\" coords=\"526,4,569,14\" shape=\"rect\"></map></td>
            </tr>
        </table>
    </body>

</html>
----------------------------------------

og validering+mail ser ud sådan her:

subscribe.php

<html>

    <head>
   
        <title>Thank you for your interest</title>
        <link href=\"../css/style.css\" rel=\"styleSheet\" type=\"text/css\">
    </head>

    <body bgcolor=\"white\" link=\"#000080\" alink=\"#000080\" vlink=\"#000080\" background=\"../grafx/gen/contentbg.gif\">
        <a name=\"top\"></a>
        <table border=\"0\" cellpadding=\"0\" cellspacing=\"10\" width=\"635\">
            <tr>
                <td width=\"571\" valign=\"top\">
                    <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"561\">
                        <tr>
                            <td valign=\"bottom\" width=\"334\"><span class=\"headline\">Newsletter Subscription</span></td>
                            <td align=\"right\" width=\"223\"><img src=\"../grafx/gen/logosmall.gif\" width=\"25\" height=\"25\"></td>
                        </tr>
                        <tr height=\"1\">
                            <td height=\"1\" colspan=\"2\" bgcolor=\"#333333\" width=\"559\"><img src=\"../grafx/gen/spacer.gif\" width=\"1\" height=\"1\"></td>
                        </tr>
                        <tr height=\"5\">
                            <td height=\"5\" width=\"334\"><img src=\"../grafx/gen/spacer.gif\" width=\"1\" height=\"1\"></td>
                            <td height=\"5\" width=\"223\"></td>
                        </tr>
                    </table>

                    <span class=\"bread\"><p>

<?php
//subscribe.php

if(!ereg(\"[A-z]+\", $name)){
header(location: subscribe_form.php)?name=\")

else

$mail_to = \"newsletter@fisk.com\";
$mail_subject = \"Subscribe to Newsletter\";
$mail_body = \"Name: $name\\n\";
$mail_body .= \"Title: $title\\n\";
$mail_body .= \"Company: $company\\n\";
$mail_body .= \"Address: $address\\n\";
$mail_body .= \"Postcode: $postcode \\n\";
$mail_body .= \"City: $city\\n\";
$mail_body .= \"Country: $country\\n\";
$mail_body .= \"E-mail: $email\\n\\n\";
$mail_body .= \"Please send newsletter to the person above\\n\";

if (mail($mail_to, $mail_subject, $mail_body))
        echo \"Thank you for subscribing to our newsletter.\\n
\";
else echo \"Unfortunately there was a problem in the process of sending your request. Please try again.\";
?>
</p>
                    <p>&nbsp;</p>
                            <p align=\"center\">&nbsp;<a href=\"content.html\">Go to the News section</a></p>
                    </span>
                </td>
                <td width=\"30\" valign=\"top\"><img height=\"25\" width=\"1\" src=\"../grafx/gen/spacer.gif\"><br>
                  <br>
                    <br>
                </td>
            </tr>
            <tr>
                <td colspan=\"2\" width=\"613\"><img src=\"../grafx/gen/footer.gif\" border=\"0\" usemap=\"#footermap\" width=\"593\" height=\"50\"><map name=\"footermap\"><area href=\"#top\" coords=\"526,4,569,14\" shape=\"rect\"></map></td>
            </tr>
        </table>
</body>
</html>

Håber der er noget der kan finde fejlen.

MVH

Scorpion
Avatar billede scorpion Nybegynder
12. august 2002 - 14:38 #12
Lukker lige dette spm. så det ikke står og samler støv... vil lige takke yellow for hans/ hendes svar på et andet indlæg, der løste dette problem.

Scorpion
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