Contactformulier maken

Status
Niet open voor verdere reacties.

jefkeh

Gebruiker
Lid geworden
23 feb 2014
Berichten
110
Hoi,
ik heb dit van jullie forum gehaald maar ik krijg daar een foutmelding in
1ste deel is goed

<form action="mail2.php" method="post">
Name: <input type="text" name="naam"><br>

Email: <input type="text" name="email"><br>
Comments: <textarea name="comments"></textarea><br>
<input type="submit">
</form>

2de deel

<?php

// your email address
$youremail = "mail";

// field validation
if (empty($_POST['email']) || empty($_POST['comments']) || empty($_POST['naam'])) {
{
print ("All fields are required! Please go back and try again.");
}


// send email
$headers = "From: ".$_POST['naam']." <".$_POST['email']."> \n" ;
$subject = "Feedback Form";
$message = $_POST['comments'];

mail ($youremail, $subject, $message, $headers);

print ("Thank you $naam, your email has been sent.");

}
?>

in het 2de deel gaat het fout, als ikdit uitvoer krijg ik het volgende en er gebeurt niets.

\n" ; $subject = "Feedback Form"; $message = $_POST['comments']; mail ($youremail, $subject, $message, $headers); print ("Thank you $naam, your email has been sent."); } ?>

Alvast bedankt
Groeten
 
Laatst bewerkt:
Je ziet letterlijk die PHP-code? Hoe voer je het uit?
Staat het op een webserver?
 
Laatst bewerkt:
Hoi,
Nee dit staat nog niet op het web, ik heb dit in dreamweaver gemaakt en zo uitgetest.
Normaal als ge een fout schrijft wordt dat gemeld in dw, maar er komt niets.
Effen zeggen ik ken bijna niets van PHP, ik had een mailprog. Geschreven in HTML en dat gaat goed alleen als ik op zenden klik, dan gaat er een mailprog. (Outlook) open en da wil ik niet.
 
Dreamweaver kan geen PHP uitvoeren. Je zult dus ergens webhosting moeten hebben of een (lokale) webserver met PHP-ondersteuning moeten draaien. Zoals XAMPP bijvoorbeeld.
 
Hoi,
ik heb dit programma op mijn website staan, die code verschijnt niet meer, er komt een wit scherm en doet verder niets. De mail komt ook niet aan.
 
Zet dit eens bovenaan je PHP-code:
Code:
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
?>
Zie je dan foutmeldingen?
Heb je anders een voorbeeld die ik kan inzien?

Houd er wel rekening mee dat je formulier niet veilig is, en tevens een bron van spam kan worden.
Dit omdat de zgn. headers eenvoudig aangepast kunnen worden door kwaadwillende mensen.
Ikzelf raad PHPmailer altijd aan als mail-afhandeling.
 
Laatst bewerkt:
zie: contact
Dit is het eerste deel (mail1.html)
<form action="mail2.php" method="post">
Name: <input type="text" name="naam"><br>

Email: <input type="text" name="email"><br>
Comments: <textarea name="comments"></textarea><br>
<input type="submit">
</form>

Dit is het 2de deel
<?php

// your email address
$youremail = "mijnmail";

// field validation
if (empty($_POST['email']) || empty($_POST['comments']) || empty($_POST['naam'])) {
{
print ("All fields are required! Please go back and try again.");
}


// send email
$headers = "From: ".$_POST['naam']." <".$_POST['email']."> \n" ;
$subject = "Feedback Form";
$message = $_POST['comments'];

mail ($youremail, $subject, $message, $headers);

print ("Thank you $naam, your email has been sent.");

}
?>

alvast voor de reactie
Van phpmailer kan ik helemaal niets.
ik had een mailprog gemaakt in html, en dat werk, alleen als ik op zenden klik dan verschijnt er een mailprog (outlook) en dat wil ik niet.
 
Laatst bewerkt:
HTML is niets meer dan een opmaaktaal. mailen kan er niet mee.

Maar de vraag is, heb je mijn code al toegepast? Verder blijft je script vatbaar voor hackers en spammers.

Ook is je script niet logisch. Hij mailt gewoon als je invoer fouten hebt. Je zult een else na je print moeten plaatsen.
 
Laatst bewerkt:
Ja dat staat erin maar er komen geen errorsberichten, een wit scherm en verder doet het niets.
Maar als dit gevaarlijk is ga ik er niet mee door, alleen ik ken niet veel van php en al zeker niet van die phpmailer.
alvast bedankt
Groeten
 
Controleer eerst de syntax, eventueel met behulp van voorbeelden van php.net dan kan je makkelijker verder.
Hieronder zijn alvast een aantal fouten eruit gehaald.
Code:
<?php
// emailadres
$youremail = "jouwnaam@example.nl";
// validatie
if( empty($_POST['email']) || empty($_POST['comments']) || empty($_POST['naam']) ){
  echo("Een of meerdere verplichte velden zijn leeg.");
}else{
  // send email
  $headers = "From: ".$_POST['naam']." <".$_POST['email'].">";
  $subject = "Feedback Form";
  $message = $_POST['comments'];
  if( mail($youremail, $subject, $message, $headers) ){
    echo("De email is met success verstuurd.");
  }
}
?>

Het formulier is niet compleet. Google even op: php email form

Suc6. Have fun.
 
Laatst bewerkt:
Dit voorbeeld van Bron is niet veilig overigens.
 
Hoi,
Bedankt, ik heb het form genomen dat u had aangegeven in uw vorig bericht, ik denk dat dit wel veilig zal zijn.
Gr.
 
Die is gelukkig wél veilig te noemen.
 
Dit voorbeeld van Bron is niet veilig overigens.
Haha, het is niet mijn code, het is de code van TS. Die had over deze code een vraag.
Als de kleur van een aardbei wordt gevraagd dan geef ik niet de kleur van een banaan.
Zelf werk ik met smtp van de phpmailer class. Die is wel veilig.
 
Haha, het is niet mijn code, het is de code van TS. Die had over deze code een vraag.
Als de kleur van een aardbei wordt gevraagd dan geef ik niet de kleur van een banaan.
Zelf werk ik met smtp van de phpmailer class. Die is wel veilig.
Die is wel veilig tegen header-injection.maar het voorkomt nog niet dat mensen massaal op submit blijven rammen om een stortvloed aan mails te versturen.
 
@php4u
Eenvoudige oplossing is IP hits tellen en opslaan in database. Bijvoorbeeld na 10 hits in 1 uur geen email script meer voor dat IP adres.
En altijd submit disabelen als niet alle velden zijn gevalideerd. Eenvoudig te doen in JS.
Ook dit is weer te omzeilen maar het hoeft geen ING of RABO te worden.

@jefkeh
Zie de bijlage in mijn post van een tijd terug en de vragen die de TS daarover had. Dit is wel een script gebaseerd op de vraag van toen dus je zult 'm iets aan moeten passen maar de basis kan je gebruiken voor jouw formulier. (toen koos de TS toch voor mail(...) waardoor zijn script "onveilig" werd).

Suc6. Have fun.
 
Laatst bewerkt:
Kon je geen andere naam verzinnen, om te spammen? :p
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan