Toon posts:

[PHP] php mail form

Pagina: 1
Acties:
  • 59 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb net ff geprobeerd een PHP mail formuliertje te maken maar is mij nog niet helemaal goed gelukt.
Ik wil controleren of ze alles hebben ingevuld maar dat werkt niet goed als ze niks invullen dan mail hij hem wel.

Er moet ook komen te staan dat de email is gestuurd hoe doe ik dat?

Hieronder de code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
if (isset($_POST['verzenden'])) {
    if (!isset($_POST['email'])) {
        $error = "Geen geldig e-mail adres ingevuld<BR />";
    } if (!isset($_POST['naam'])) {
        $error .= "Naam is niet ingevuld<BR />";
    } if (!isset($_POST['bericht'])) {
        $error .= "U heeft geen bericht ingevuld<BR />";
    }
    
    if (!isset($error)) { 
    
        $bericht = "Naam  : " .$_POST['naam']. "
        
E-mail  : ".$_POST['email']. "

Bericht : ".$_POST['bericht']. " \n";
  mail ("****@gmail.com", "Bericht van je website", $bericht, "FROM: Je website");
  
    } else {
  echo "Gelieve alle velden netjes in te vullen!";
  
    }
    
} else {

    echo "<FONT COLOR=\"#FF0000\">".$error."</FONT>";
} 

?>

<html>

    <head>
  <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  <meta name="copyright" content="Ronald van Butselaar  ">
  <title>Michiel van Butselaar</title>
  <link href="midden.css" rel="stylesheet" type="text/css" media="all">
    </head>

    <body bgcolor="#ffffff" leftmargin="0" marginheight="0" marginwidth="0" topmargin="0">
  <p></p>
  <p>E-mail Michiel</p>
  <form id="mailForm" method="post" name="mailForm">
    <table border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td width="130">E-mail:</td>
        <td width="303"><input type="text" name="email" value="Vul hier uw e-mail adres in." size="24" maxlength="50"></td>
    </tr>
    <tr>
        <td width="130">Naam:</td>
        <td width="303"><input type="text" name="naam" value="Vul hier uw naam in." size="24" maxlength="50"></td>
    </tr>
    <tr>
        <td valign="top" width="130">Bericht:</td>
        <td width="303"><textarea name="bericht" rows="5" cols="40">Type hier het bericht.</textarea></td>
    </tr>
    <tr>
        <td width="130"></td>
        <td width="303"><input type="submit" name="verzenden" value="Verzenden"> <input type="reset" value="Wissen"></td>
    </tr>
    </table>
  </form>
  <p></p>
    </body>

</html>

  • simon
  • Registratie: Maart 2002
  • Laatst online: 08-05 22:18
if (mail ("****@gmail.com", "Bericht van je website", $bericht, "FROM: Je website"))
{
echo "verstuurd";
}
else
{
echo "error";
}

|>


Verwijderd

Dit is helaas niet helemaal de bedoeling in PW; wat heb je zelf al geprobeerd?

welkom op GoT overigens :)

[ Voor 18% gewijzigd door Verwijderd op 10-04-2005 16:27 ]


  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Je maakt een klein denkfoutje, na het versturen van een formulier zijn alle array elements geset, als er niets is ingevuld hebben ze alleen geen waarde, om te controleren of ze leeg zijn kan je empty() gebruiken.

Sole survivor of the Chicxulub asteroid impact.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 06-05 18:51

Creepy

Tactical Espionage Splatterer

Verwijderd schreef op zondag 10 april 2005 @ 16:22:
Ik heb net ff geprobeerd een PHP mail formuliertje te maken maar is mij nog niet helemaal goed gelukt.
Ik wil controleren of ze alles hebben ingevuld maar dat werkt niet goed als ze niks invullen dan mail hij hem wel.

Er moet ook komen te staan dat de email is gestuurd hoe doe ik dat?
Hoi en welkom op GoT :)

Zoals je in P&W FAQ - Het FAQ/Beleid topic had kunnen lezen vragen we in eerste instantie iets meer inspanning van jouw kant. Dus:
- Wat heb je nu zelf al geprobeerd? (geef voorbeelden)
- Wat lukte daar niet mee?
- Ben je al aan het debuggen geslagen? (zie P&W FAQ - Leer **** debuggen!!)

Dat je je code geeft is prima maar probeer in het vervolg alleen de relevante code te geven.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Hoi nerd17 en welkom op GoT. :)

Ik zie dat dit je eerste topic is. Helaas voldoet je topic niet helemaal aan de verwachtingen die we in Programming & Webscripting van een topic hebben. Je zegt waar je naartoe wil, en je plempt 67 regels code neer, die wij voor je moeten gaan debuggen. Dat is natuurlijk niet de bedoeling. ;)

Om de zaken in dit subforum wat prettiger te laten verlopen, is P&W FAQ - Het FAQ/Beleid topic gemaakt, waarin onder andere uitgelegd wordt welke topics in dit subforum horen, en er staan wat veelgestelde vragen voor een groot aantal omgevingen en talen.

Ook is er nog P&W FAQ - De "quickstart", waarin beschreven wordt welke activiteiten er vooraf gaan aan het plaatsen van een topic. Vooral eigen inzet wordt gewaardeerd. :)

Om je toch een zetje in de goeie richting te geven: $_POST['verzenden'] hoeft niet gezet te zijn. Submit buttons worden alleen meegegeven als er daadwerkelijk op geklikt wordt; niet als er op enter gedrukt wordt om het formulier te verzenden, of als het verzenden met Javascript gebeurt. Neem voor dit soort checks dus liever een hidden veld op in je formulier, dat is altijd geset. :)
Verder gebruik je $error. Op zich niets mis mee, ware het niet dat het mogelijk is dat je een string toevoegt aan een niet-bestaande variabele (je gebruikt .= terwijl $error nog niet geset hoeft te zijn). Vervang regel 2 t/m 11 liever door zoiets:
PHP:
2
3
4
5
6
7
8
9
10
11
12
if (isset($_POST['hiddenveld'])) {
    $error = '';
    if (!isset($_POST['email']) || empty($_POST['email'])) {
        $error .= "Geen geldig e-mail adres ingevuld<BR />";
    } if (!isset($_POST['naam']) || empty($_POST['naam'])) {
        $error .= "Naam is niet ingevuld<BR />";
    } if (!isset($_POST['bericht']) || empty($_POST['bericht'])) {
        $error .= "U heeft geen bericht ingevuld<BR />";
    }
    
    if (!empty($error)) {

Verder is het zo dat de mail()-functie een waarde teruggeeft. Gaat het mis, dan is die waarde false. Op basis daarvan kun je die waarde gewoon in een if-statement gebruiken, waarmee je kan afdrukken of het mailen al dan niet goed is gegaan.

Ik gooi nu je topic op slot. Je bent vrij om een nieuw topic te openen, maar denk daarbij wel aan de hierboven genoemde FAQ's. :)

edit:
:w Creepster.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.