Avatar billede mr.t.man Nybegynder
28. april 2003 - 21:48 Der er 24 kommentarer og
1 løsning

PHP FORM

Hej! Er der en der kan rette i dette php script...så man ikke kan afsende formularen uden at have indtastet data i alle felter! Desuden skal data indtastet i "email" være en rigtig e-mail adresse med et @....

----
<FORM method="post" action="mail_modtaget.php">
Dit Navn:
<INPUT TYPE="text" SIZE="20" NAME="navn">
Din E-mail:
<INPUT TYPE="text" SIZE="20" NAME="email">
Din besked:
<TEXTAREA WRAP="physical" ROWS="5" COLS="20" NAME="besked"></TEXTAREA>   
<INPUT TYPE="submit" VALUE="Send" NAME="Submit:"></TD>
</FORM>
----

mvh
Thomas Kristiansen
Avatar billede Slettet bruger
28. april 2003 - 21:57 #1
Hvis du vil gøre det i PHP skal det laves i mail_modtaget.php, eller samle begge filer i en (mit forslag)
Avatar billede schaefner Juniormester
28. april 2003 - 22:00 #2
Simpel validering:

<form method="post" action="mail_modtaget.php">
dit navn:
<input type="text" size="20" name="navn">
din e-mail:
<input type="text" size="20" name="email">
din besked:
<textarea wrap="physical" rows="5" cols="20" name="besked"></textarea>   
<input type="submit" value="send" name="submit"></td>
</form>

<?php
if(isset($_POST['submit')) {
    if(!isset($_POST['navn'],$_POST['besked']) && !ereg("@", $_POST['email'])) {
        echo "Ikke korrekt";
    } else {
        // Korrekt udfyldt
    }
}
?>
Avatar billede schaefner Juniormester
28. april 2003 - 22:03 #3
Lidte bedre:
if(!isset($_POST['navn'],$_POST['besked']) && !preg_match("/^([\w|\.|\-|_]+)@([\w||\-|_]+)\.([\w|\.|\-|_]+)$/i", $_POST['email'])) {
Avatar billede schaefner Juniormester
28. april 2003 - 22:07 #4
Og en der rent faktisk virker ;o)

<?php
if(isset($_POST['submit'])) {
    if(empty($_POST['navn']) || empty($_POST['besked']) || !preg_match("/^[\w|\.|\-|_]+@[\w||\-|_]+\.[\w|\.|\-|_]+$/i", $_POST['email'])) {
        echo "Ikke korrekt";
    } else {
        echo "Korrekt";
    }
}
?>
Avatar billede mr.t.man Nybegynder
28. april 2003 - 22:11 #5
ja jeg skulle lige til at klage ;)
Avatar billede mr.t.man Nybegynder
28. april 2003 - 22:13 #6
hmmm.....den virker ikke....
den sender udemærket, selvom der ikke er et @ i email feltet..?
Avatar billede mr.t.man Nybegynder
28. april 2003 - 22:13 #7
..og selvom felterne ikke er udfyldt..?
Avatar billede schaefner Juniormester
28. april 2003 - 22:15 #8
Den virker fint her: http://disneyzone.dk/validate.php
Avatar billede mr.t.man Nybegynder
28. april 2003 - 22:18 #9
hmmm.... i "mail_modtaget.php" bliver det hele sendt i en mail...
så den skal egentlig ikke skrive "ikke korrekt" eller "korrekt"

den virker ikke her http://thomas-k.dk/mail.php
Avatar billede schaefner Juniormester
28. april 2003 - 22:18 #10
Her er koden jeg bruger på den side:

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Dit navn:<br>
<input type="text" size="20" name="navn"><br>
Din e-mail:<br>
<input type="text" size="20" name="email"><br>
Din besked:<br>
<textarea wrap="physical" rows="5" cols="20" name="besked"></textarea><br> 
<input type="submit" value="send" name="submit"></td>
</form>

<?php
if(isset($_POST['submit'])) {
    if(!isset($_POST['navn'], $_POST['besked']) || !preg_match("/^[\w|\.|\-|_]+@[\w||\-|_]+\.[\w|\.|\-|_]+$/i", $_POST['email'])) {
        echo "Ikke korrekt";
    } else {
        echo "Korrekt";
    }
}
?>
Avatar billede schaefner Juniormester
28. april 2003 - 22:19 #11
Istedet for
echo "Korrekt";
skal du selvfølgelig indsætte din mail()-funktion.
Avatar billede mr.t.man Nybegynder
28. april 2003 - 22:21 #12
den ligger i mail_modtaget.php....
Avatar billede Slettet bruger
28. april 2003 - 22:22 #13
saml det i en fil.
Avatar billede mr.t.man Nybegynder
28. april 2003 - 22:28 #14
hvad skal man så angive i action="" ?? (spørger måske dumt, men jeg er ikke så kendt i php endnu)
Avatar billede schaefner Juniormester
28. april 2003 - 22:28 #15
Kopier det sidste eksempel jeg har skrevet, så burde det virke.
Avatar billede mr.t.man Nybegynder
28. april 2003 - 22:35 #16
nope...

----
<FORM method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

<TABLE BORDER="0" CELLSPACING="1">
<TR>
    <TD>Dit Navn:</TD>
    <TD><INPUT TYPE="text" SIZE="20" NAME="navn"></TD>
</TR>
<TR>
    <TD>Din E-mail:</TD>
    <TD><INPUT TYPE="text" SIZE="20" NAME="email"></TD>
</TR>
<TR>
    <TD valign="top">Din besked:</TD>
    <TD><TEXTAREA WRAP="physical" ROWS="5" COLS="20" NAME="besked"></TEXTAREA></TD>
</TR>
<TR>
    <TD></TD>
    <TD>
<INPUT TYPE="submit" VALUE="Send" NAME="Submit:"></TD>
</TR>
</TABLE>

</FORM>


<?php
if(isset($_POST['submit'])) {
    if(!isset($_POST['navn'], $_POST['besked']) || !preg_match("/^[\w|\.|\-|_]+@[\w||\-|_]+\.[\w|\.|\-|_]+$/i", $_POST['email'])) {
        echo "Ikke korrekt";
    } else {
        mail("min@mail.dk","E M N E","Navn: $_POST[navn]\nE-mail: $_POST[email]\nBesked: $_POST[besked]","From: $_POST[email] <$_POST[email]>");

       
    }
}
?>
Avatar billede schaefner Juniormester
28. april 2003 - 22:36 #17
<INPUT TYPE="submit" VALUE="Send" NAME="Submit:"></TD>
skal være:
<INPUT TYPE="submit" VALUE="Send" NAME="submit"></TD>
Avatar billede mr.t.man Nybegynder
28. april 2003 - 22:44 #18
ja nu virker det faktisk...men kan man ikke få en anden side til at åbne sig, når alt er udfyldt korrekt..? (istedet for echo "korrekt";)
Avatar billede schaefner Juniormester
28. april 2003 - 22:52 #19
Et popup-vindue, eller skal den bare skifte side?
Avatar billede mr.t.man Nybegynder
28. april 2003 - 22:53 #20
helst skifte side....
Avatar billede mr.t.man Nybegynder
28. april 2003 - 22:56 #21
hey, jeg fandt lige en fejl..man kan godt afsende formularen selvom besked eller navn ikke er udfyldt..?
Avatar billede schaefner Juniormester
28. april 2003 - 22:59 #22
Ændre denne linje:
if(!isset($_POST['navn'], $_POST['besked']) || !preg_match("/^[\w|\.|\-|_]+@[\w||\-|_]+\.[\w|\.|\-|_]+$/i", $_POST['email'])) {
til:
if(empty($_POST['navn']) || empty($_POST['besked']) || !preg_match("/^[\w|\.|\-|_]+@[\w||\-|_]+\.[\w|\.|\-|_]+$/i", $_POST['email'])) {
Avatar billede schaefner Juniormester
28. april 2003 - 23:00 #23
Denne her kode indsætter du i filen mail_modtaget.php
<?php
if(isset($_POST['submit'])) {
    if(empty($_POST['navn']) || empty($_POST['besked']) || !preg_match("/^[\w|\.|\-|_]+@[\w||\-|_]+\.[\w|\.|\-|_]+$/i", $_POST['email'])) {
        echo "Ikke korrekt";
    } else {
        mail("min@mail.dk","E M N E","Navn: $_POST[navn]\nE-mail: $_POST[email]\nBesked: $_POST[besked]","From: $_POST[email] <$_POST[email]>");

       
    }
}
?>

og så ændre du action til action="mail_modtaget.php"
Avatar billede mr.t.man Nybegynder
28. april 2003 - 23:10 #24
YES! Så virker det - og det er sådan jeg ville have det !!

Tak for svarene! - og tålmodigheden ;)
Du har fortjent dine point.
Avatar billede schaefner Juniormester
28. april 2003 - 23:15 #25
svar :)

/Jesper Sørensen
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