Contact formulier

Status
Niet open voor verdere reacties.
Je roept POST-variabelen aan die geen waarde hebben. Het formulier is niet ingevuld, dus bestaan ze niet.
Verder is het toekennen van nieuwe variabelen aan een $_POST-variabele gewoon onnuttig. Je kan prima de $_POST variabele aanroepen als het nodig is. Waarom zou je het kopiëren?

Als je mail() wilt gebruiken... ga je gang.

Maar ik heb nog steeds geen antwoord op mijn vraag van net?
 
Laatst bewerkt:
Heb nu jou code met mijn HTML gebouwd maar nu moet ik hem nog naar mezelf en naar de invuller kunnen mailen toch?

PHP:
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
   if (trim($_POST["name"])=="") {
     // name is leeg
   } elseif(trim($_POST["mail"])=="") {
    // mail is leeg
   } elseif (trim($_POST["reactie"])=="") {
    // reactie is leeg
   } else {
    // Alles is ingevuld, verstuur hier de mail.
   }
 
} else {
   // er is niks verstuurd, dus toon je hier het formulier.
}
?>
<html>
<head>
<title> test formulier </title>
</head>
<body>
    <form  action="contact.php" method="POST"> 
    
	Uw naam: <input type="text" name ="name"> <br> 
    
    Uw E-mail: <input type ="text" name="email"> <br> 
    
    <br> 
    <textarea name="reactie" rows="7" cols="30"></textarea><br> 
    <input type="submit" name ="verzenden" value="verzenden"/> 
    </form> 
</body>
</html>
 
Zie php.net/mail
 
Ik heb er nu het volgende van weten te maken vanuit de PHP kan je me AUB nog 1 keer uitleggen waar deze dan nu weer fout loopt? Aangezien ik nu weer de niet gevonden index mail melding krijg

PHP:
    <?php
if($_SERVER['REQUEST_METHOD']=="POST") {
   if (trim($_POST["name"])=="") {
     // name is leeg
   } elseif(trim($_POST["mail"])=="") {
    // mail is leeg
   } elseif (trim($_POST["reactie"])=="") {
    // reactie is leeg
   } else {
    // Alles is ingevuld, verstuur hier de mail.
	 mail("mailadres" , $name , $mail, $reactie);
   }
   
   
 } else {
   // er is niks verstuurd, dus toon je hier het formulier.

   }
?>
<html>
<head>
<title> test formulier </title>
</head>
<body>
    <form  action="contact.php" method="POST"> 
    
	Uw naam: <input type="text" name ="name"> <br> 
    
    Uw E-mail: <input type ="text" name="mail"> <br> 
    
    <br> 
    <textarea name="reactie" rows="7" cols="30"></textarea><br> 
    <input type="submit" name ="verzenden" value="verzenden"/> 
    </form> 
</body>
</html>
 
Laatst bewerkt:
Er klopt niks van je mail()-functie. Je somt al je velden in nieuwe variabelen (waarom??) op die je hebt, maar zo werkt die functie niet.
Ik zou zeggen: Neem de tijd om de manuals eens door te lezen i.p.v. lukraak wat te proberen.

Misschien anders dit even in de ijskast te zetten, en bij het begin van PHP te beginnen.
 
Laatst bewerkt:
Heb voor een website gewoon zo'n formulier nodig dus kan ik niet stoppen.

Ik ga kijken of er nog op geageerd wordt door iemand die de fouten wel even kan fixen.

Dank jou in elk geval voor je hulp en hoop aan een goed formulier te komen binnenkort.
 
Ik ga kijken of er nog op geageerd wordt door iemand die de fouten wel even kan fixen.
Zo werkt het hier niet. ;)

Je moet gewoon goed weten wat je doet, en hoe het werkt, en niet klakkeloos aanklooien.

Je bent in ieder geval op de goede weg kan ik je vertellen. Nu alleen nog
- de foutmeldingen invullen bij de validatie (zie gele comments)
- formulier op de juiste plek zetten; tenzij je hem ook wilt zie NA de invoer.
- mail() correct inbouwen en php.net/mail goed doorlezen, en de eerste examples daar.

Als je dit hebt gedaan, laat dan eens zien wat je dan hebt. Dan kan ik verder kijken of het klopt.
 
Laatst bewerkt:
nu heb ik er het volgende van gemaakt (wat volgens mij bijna goed is:

PHP:
   <?php
if($_SERVER['REQUEST_METHOD']=="POST") {

 $to= "mijnmailadres";	
 $verwerken ="naam: $name";
 $verwerken="mail $mail";
 $verwerken="reactie $reactie";


   if (trim($_POST["name"])=="") {
    echo "u hebt geen naam ingevuld"; // name is leeg
   } elseif(trim($_POST["mail"])=="") {
    echo "U hebt geen mailadres ingevuld";// mail is leeg
   } elseif (trim($_POST["reactie"])=="") {
    echo "u Hebt geen reactie ingevuld";// reactie is leeg
   } else {
    // Alles is ingevuld, verstuur hier de mail.
	 mail($to"mailadres" , $verwerken);
   }
   
   
 } else {
   // er is niks verstuurd, dus toon je hier het formulier.
<form  action="contact.php" method="POST"> 
    
	Uw naam: <input type="text" name ="name"> <br> 
    
    Uw E-mail: <input type ="text" name="mail"> <br> 
    
    <br> 
    <textarea name="reactie" rows="7" cols="30"></textarea><br> 
    <input type="submit" name ="verzenden" value="verzenden"/> 
    </form> 
   }
?>
 
Je zit in de buurt:

- de mail() functie klopt nog niet helemaal: Ik zie twee parameters die gescheiden zijn met een komma.
Het komt neer op:
Code:
<?php
$to      = 'jouw@mailadres.nl';
$subject = 'the subject';
$headers = 'From: '.$_POST["mail"] . "\r\n" .
    'Reply-To: '.$_POST["mail"] . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, Aanmelding, $_POST['reactie'], $headers);
?>
- Je formulier hoort buiten PHP te staan, of in een echo.

Let er wel op dat het formulier nu zeer basic is, en dat er geen validaties is voor geldige mailadressen, geen mail-header injection beveiliging kent, en geen refresh-beveiliging om langdurig gespam met de ENTER-toets tegen te gaan.
 
Dank voor je hulp tot zover! Ik krijg nu een mail verzonden (al ontvang ik deze nog niet. en er komt een melding als er een vak niet is ingevuld. ga ik heel ver door te vragen waarom hij de vakken leeggooit tijdens zo'n melding?

2 waar gebruik je de X-mailer voor? die ik in het door jou geschreven sctipt vind?
 
X-headers zijn geen verplichtte mailheaders. Je kan ze zelf aanmaken als je iets spannends wilt melden bij je mail, zoals een 'X-Abuse' ofzo, waar mensen terecht kunnen bij misbruik.
X-Mailer laat in dit geval zien welke PHP-versie je hebt, en hierdoor worden de mails door de servers vaak wat legitiemer aangezien. Ik gebruik ze altijd, of anders PHPmailer die alle headers al meestuurt.

Ook zou ik met ene if-else eens kijken of je mail() functie wel goed wordt uitgevoerd. Zeker weten of de mail verstuurd is, doet het niet, maar bij fouten in je mail-functie moet het wel wat meer duidelijkheid geven.
 
Laatst bewerkt:
Zoals je weet ben ik bezig met het maken van een website het probleem is alleen dat ik nog steeds opzoek ben naar een veilig formulier (als ik jou goed begrijp is die van mij niet echt veilig (ik weet niet of ik het hier op deze manier mag vragen maar lees er niets over in de regels) wat kost het om door jou een met goede controles veilig formulier te laten ontwerpen? eventueel met de mogelijkheid er bijlages aan toe te voegen?
 
Opzich is het vrij veilig te maken als je er een sessie aan vasthangt om te voorkomen dat iemand de pagina gaat refreshen.
Injecteerbare mailheaders zijn te voorkomen te kijken naar bepaalde tekenreeksen of het gebruik van phpMailer (appeltje-eitje, en zo ingebouwd).

Dan heb je al heel wat.
 
Ik vraag het je eigenlijk omdat ik niet goed weet hoe de PHP mailer werkt.

Kijk het formulier werkt nu wel maar komt niet aan bij de gene die hem invult als je de melding krijgt dat je iets niet hebt ingevuld is het formulier leeg. Dat soort dingen (snap je wat ik bedoel)
 
Google eens op 'PHPmailer example'.

Verder kan je de $_POST-data ook opslaan in een sessie, totdat je de boel verstuurd. Zo kan je de invoer tijdelijk onthouden.
 
Zijn er echt met de PHP mailer goede formulieren beschikbaar die alles wat ik wil zoals het onthouden van de zaken e.d. zonder reclame beschikbaar????

Ben heel verbaasd als dat zo is kan het niet geloven.
 
phpMailer is een uitgebreide mailfunctie. Wanneer en hoe deze mailt moet men zelf bouwen. Maar dat heb je inmiddels al.

Gewoon een vervanger van mail(...) dus
 
Oke maar eens kijken of ik de komende weken iets kan vinden /fabriceren met de functies die ik hebben wil
 
Succes, als je vragen hebt dan horen we het wel.
 
Ja die heb ik of je een goede voor me wilt maken haha nee als je niet wilt moet je het lekker laten zitten!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan