html versturen via php

Status
Niet open voor verdere reacties.

Webklus

Gebruiker
Lid geworden
22 okt 2014
Berichten
164
Hallo

Ik heb zelf een html formulier gemaakt. Die ik via php wil laten versturen naar mijn mail. Het is me gelukt op het internet maar hij werkt niet. Hieronder het script. :
HTML:
<html>

<head>
<title>contactform</title>


<style> 
  div{
  width:50px;}
  .naam{float:left;}
  
 
</style>

</head>
<body>
 
 <h1>Contact formulier </h1>
 <hr>

 
 <form method="post" action="post.php">
 
  <div class="naam"width="1000xp"> Aanhef : </div> 
 <select name='aanhef' float="right">
 <option value="Mvr">Mvr</option>
<option value="Mnr">Mnr</option>
<option value="Firma">Firma</option>
</select> <br>
 <div class="naam"width="50px" >Naam :</div> <input type= 'text' name='Naam' float="left"> <br>
 <div class="naam" width="50px" >E-mail :</div> <input type= 'text'name='Email' float="left"> <br>
<div class="naam" width="50px" > Vraag : </div><textarea name='Vraag', rows="2"> </textarea float="left"> <br>
 
 <input type='submit' name='versturen'> <input type="reset" value="alles wissen">  <br>
 </form>
 
 </body>

 </html>
 
 <?php
if (!isset($_post['Aanhef']) !isset($_post['Naam']) !isset($_post['Email']) !isset($_post['Vraag'])) { 
echo 'U heeft niet alle velden ingevuld!';
}

$aanhef = htmlspecialchars($_post['Aanhef']);
$naam = htmlspecialchars($_post['Naam']);
$email = htmlspecialchars($_post['Email']);
$vraag = htmlspecialchars($_post['Vraag']);
 
$tijd = tim();
$datum = strftime ('%d/%m/%y %H:%M', $tijd);
$ip = getenv('REMOTE_ADDR');
$message = $naam. ' Atwoord gewenst op' .$email. 'Ip adres is ' .$ip. 'datum is ' .$datum. 'het volgemde :

'.$vraag.'

mail('klus4pc@gmail.com', 'ingevuld formulier', 'from: ' .$email);

echo 'Uw bericht is verzonden';

?>

Moet ik het bestand ook ergens uploaden om hem werkend te krijgen?
 
Laatst bewerkt:
Dit is niet de meest mooie code, maar in ieder geval een paar basics:
Php kan je niet zo werkend krijgen, php in een html bestand werkt namelijk niet. Sla het bestand dus op als .php

HTML kan je gewoon openen inderdaad, php niet. Deze zul je of bij een webhost moeten onderbrengen, of via een local setup met bijvoorbeeld xampp.

Als je nog hulp nodig hebt hoor ik dat graag.
 
Ik heb een gratis hostaccount bij hostinger. weet je waarmik het php bestand en html bestand dan moet neerzetten?
 
Ik zou niet weten waarom jij action="post.php" in je code hebt staan terwijl de php code in hetzelfde bestand staat?
Maar in ieder geval je upload de bestanden via ftp naar de public_html map.
 
Er zit een fout in de php want deze fout krijg ik. Wat moet ik doen
 

Bijlagen

  • eror.jpg
    eror.jpg
    93,3 KB · Weergaven: 59
Kijken waar de fout zit ;).
Ik zal even voor je kijken, moment.
 
Dan denk ik dat het handig is als je eens naar deze site kijkt: http://www.formmail-maker.com/. Deze maakt werkende gratis formulieren, en geeft uitleg over de code. Als ik een voorgekauwd iets maak heb jij er zelf weinig aan.
 
De code die op die site staat klopt en werkt, maar dat is niet de code die jij gepost hebt!
Kijk bijvoorbeeld maar naar deze regel:
Jouw code:
PHP:
 <?php
if (!isset($_post['Aanhef']) !isset($_post['Naam']) !isset($_post['Email']) !isset($_post['Vraag'])) { 
echo 'U heeft niet alle velden ingevuld!';
}

Code van de site:
PHP:
<?php  
if (!isset($_POST['naam']) || !isset($_POST['email']) || !isset($_POST['bericht'])) {  
    echo 'U heeft niet alle velden ingevuld!';  
    exit;  
}

De || en exit zijn twee belangrijke dingen...
Ook jouw functie tim() moet time() zijn. Volg de cursus echt letterlijk, dan zijn er geen fouten.
 
De aanhef en de baan jomt omdat ik meerdere vakken heb dan de cursus ook weet ik niet hoe ik die twee streepjes tussen iets zet. Ik zal de time herstellen. En heb de exit toegevoegd.
 
De twee streepjes zitten meestal op je toetsenbord op dezelfde knop als de backslash. Gebruik dan shift en die toets. Als je het niet kan vinden kopiëer dan de streepjes van mijn bericht. Werkt hij nu wel?
 
Lijn 19 van welke code? Je hebt je code volgens mij aangepast, dus zou je even de nieuwe code willen plaatsen?
 
heb de code met die streepjes aangepast en de time aangepast heb daarna het oude bestand verwijderd en het nieuwe geupload!
 

Bijlagen

  • eror2.jpg
    eror2.jpg
    90 KB · Weergaven: 62
Laatst bewerkt:
Probeer dit eens:
PHP:
 <?php
if (!isset($_post['Aanhef']) || !isset($_post['Naam']) || !isset($_post['Email']) || !isset($_post['Vraag'])) { 
echo 'U heeft niet alle velden ingevuld!';
exit;
}
 
$aanhef = htmlspecialchars($_post['Aanhef']);
$naam = htmlspecialchars($_post['Naam']);
$email = htmlspecialchars($_post['Email']);
$vraag = htmlspecialchars($_post['Vraag']);
 
$tijd = time();
$datum = strftime ('%d/%m/%y %H:%M', $tijd);
$ip = getenv('REMOTE_ADDR');
$message = $naam. ' Atwoord gewenst op' .$email. 'Ip adres is ' .$ip. 'datum is ' .$datum. 'het volgemde : '.$vraag.'

mail('klus4pc@gmail.com', 'ingevuld formulier', $message, 'from: ' .$email);
echo 'Uw bericht is verzonden';

?>

En ik zou dit zo maken:
PHP:
mail('klus4pc@gmail.com', 'ingevuld formulier', $message, 'from: ' .$email);
echo 'Uw bericht is verzonden';
zo maken:
PHP:
if(mail('klus4pc@gmail.com', 'ingevuld formulier', $message, 'from: ' .$email)){
echo 'Uw bericht is verzonden';
}
else{
echo 'Er ging iets mis';
}
 
Laatst bewerkt:
Mijn code in notepad++ komt niet overeen met wat jij doet qwa kleuren nu zit de fou op line 17
 

Bijlagen

  • scherm11.jpg
    scherm11.jpg
    93,7 KB · Weergaven: 55
Excuses mijn fout.

PHP:
$message = $naam. ' Atwoord gewenst op' .$email. 'Ip adres is ' .$ip. 'datum is ' .$datum. 'het volgemde : '.$vraag.;

if(mail('klus4pc@gmail.com', 'ingevuld formulier', $message, 'from: ' .$email)){
echo 'Uw bericht is verzonden';
}
else{
echo 'Er ging iets mis';
}
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan