Contactformulier wil niet werken

Status
Niet open voor verdere reacties.

fritsflits

Gebruiker
Lid geworden
11 feb 2008
Berichten
82
Hallo,

Ik ben bezig met een contactformuliertje. Het wil alleen niet helemaal lukken.
Ik heb geen verstand van php.
Mijn probleem weet ik zelf niet te vinden maar ik zal hieronder m'n code plaatsen:
Code:
<html>
<head>
<?php 
$emailadres = "michel_brons@hotmail.com"; 
$sitenaam = "michel_brons@hotmail.com"; 

if(isset($_GET['actie']) == "verzenden") 
{ 
        if(empty($_POST['naam']) || empty($_POST['email']) || empty($_POST['bericht'])) 
        { 
            echo "Alle velden zijn verplicht"; 
        } 
        else 
        {
        	mail($emailadres, $onderwerp, "Afzender: $naam \nEmail adres: $email \n$onderwerp \n\nBericht: \n$bericht", "From: $naam || $sitenaam"); 
            echo "Bericht succesvol verzonden!"; 
        } 
} 
else 
{ 
?> 
<link href="stijlblad.css" rel="stylesheet" type="text/css">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    <form method="post" name="verzenden" action="<?=$_SERVER['PHP_SELF']?>?actie=verzenden"> 
    <table width="200" border="0"> 
        <tr> 
            <td height="16" width="150" align="right"><p>Naam</p></td> 
            <td height="16" width="50"> 
            <input type="text" name="naam" size="28"></td> 
        </tr>    
	<tr> 
            <td height="16" width="150" align="right"><p>Emailadres</p></td> 
            <td height="16" width="50"> 
                <input type="text" name="email" size="28"></td> 
        </tr>   
	<tr> 
            <td height="16" width="150" align="right"><p>Onderwerp</p></td> 
            <td height="16" width="50"> 
            <input type="text" name="onderwerp" size="28"></td> 
        </tr> 
        <tr> 
            <td height="50" colspan="2" align="center">
          <textarea name="bericht" rows="5" cols="40">Uw bericht</textarea></td> 
        </tr> 
        <tr> 
            <td height="18" colspan="2" align="center"> 
            <input type="submit" value="Verzenden" name="verzenden">   <input type="reset" value="Wissen" name="wissen">
	      </td> 
        </tr> 
    </table> 
    </form>
</body>
</html>

Dit is dus wat ik heb.
Ik heb dit opgeslagen in contact.html. (kan het hier wel mee werken of moet dit .php zijn?(met .php werkt het bij mij tot nu toe ook niet))

Tsja, iemand enig idee? Ik weet niet waar ik moet zoeken en wat ik zie dat klopt.

Grtz,
Frits
 
Het moet sowieso als extentie .php hebben.

Weet je ook of je webhost wel PHP ondersteunt?
Dus als je hem als .php opslaat je geen PHP-code ziet?
 
Zo, ff mee bezig geweest. Heb er nu 1 die php ondersteund (freehostia) (moet wat)
wat ik krijg is een 404 error.
Ik kan wel die velden invullen maar zodra ik op verzenden klik gaat het fout
 
404 betekent dat hij de pagina niet kan vinden. Controleer je links dus even.
 
welke link? ik snap niet bepaald wat die gaat doen als je op verzenden klikt.
hij gaat kijken of je alles heb ingevuld. als dat zo is gaat die verder maar dan snap ik hem niet meer

contact.php doet het wel, eh!
ik krijg dus de error als ik op verzenden klik.
 
Laatst bewerkt:
Probeer dit eens als contact.php
PHP:
<html>
<head>
<?php 
$emailadres = "michel_brons@hotmail.com"; 
$sitenaam = "michel_brons@hotmail.com"; 

if(isset($_GET['actie']) && $_GET['actie'] == "verzenden") {
    if(empty($_POST['naam']) || empty($_POST['email']) || empty($_POST['bericht'])) { 
        echo "Alle velden zijn verplicht"; 
    } else {
        mail($emailadres, $onderwerp, "Afzender: $naam \nEmail adres: $email \n$onderwerp \n\nBericht: \n$bericht", "From: $naam || $sitenaam"); 
            echo "Bericht succesvol verzonden!"; 
    } 
} else { 
?> 
<link href="stijlblad.css" rel="stylesheet" type="text/css">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    <form method="post" name="verzenden" action="<?=$_SERVER['PHP_SELF']?>?actie=verzenden"> 
    <table width="200" border="0"> 
        <tr> 
            <td height="16" width="150" align="right"><p>Naam</p></td> 
            <td height="16" width="50"> 
            <input type="text" name="naam" size="28"></td> 
        </tr>    
	<tr> 
            <td height="16" width="150" align="right"><p>Emailadres</p></td> 
            <td height="16" width="50"> 
                <input type="text" name="email" size="28"></td> 
        </tr>   
	<tr> 
            <td height="16" width="150" align="right"><p>Onderwerp</p></td> 
            <td height="16" width="50"> 
            <input type="text" name="onderwerp" size="28"></td> 
        </tr> 
        <tr> 
            <td height="50" colspan="2" align="center">
          <textarea name="bericht" rows="5" cols="40">Uw bericht</textarea></td> 
        </tr> 
        <tr> 
            <td height="18" colspan="2" align="center"> 
            <input type="submit" value="Verzenden" name="verzenden">   <input type="reset" value="Wissen" name="wissen">
	      </td> 
        </tr> 
    </table> 
    </form>
</body>
</html>
<?php } ?>
 
Bericht succesvol verzonden!

Wat is dit dan? :D geweldig! ik heb alleen nog geen mail
En ja, dat is inderdaad mijn emailadres (michel_brons@hotmail.com)

Ik wacht vol spanning af of die toch nog komt! maar wat is nu het verschil?
 
Niets, waarschijnlijk ondersteunt je host geen e-mailverzending via PHP.

Qua code is er niets gewijzigd.
 
Ok ja het is meer even een extra host want ik kom niet op degene waar die echt op komt te staan. :eek:

Ehmm, oke.. ja, het werkt dus grotendeels maar heb je misschien enig idee hoe het komt dat ik geen mail ontvang?
of kan dit een tijdje duren?

Nouja, erg bedankt voor zover! ben al een heel stuk wijzer.

Gr Frits
 
Kijk anders eens in je spambox, daar willen ze ook nog wel eens terecht komen.

Als je morgen nog niets hebt ontvangen plaats dan even weer een reactie dan kijk ik er nog een keer naar :)
 
Vreemd, onderstaande code staat er nu in (Geen wijzigingen, alleen de sitenaam veranderd)
PHP:
<html> 
<head> 
<?php  
$emailadres = "michel_brons@hotmail.com";  
$sitenaam = "Helpmij.nl";  

if(isset($_GET['actie']) && $_GET['actie'] == "verzenden") { 
    if(empty($_POST['naam']) || empty($_POST['email']) || empty($_POST['bericht'])) {  
        echo "Alle velden zijn verplicht";  
    } else { 
        mail($emailadres, $onderwerp, "Afzender: $naam \nEmail adres: $email \n$onderwerp \n\nBericht: \n$bericht", "From: $naam || $sitenaam");  
            echo "Bericht succesvol verzonden!";  
    }  
} else {  
?>  
<link href="stijlblad.css" rel="stylesheet" type="text/css"> 
</head> 
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> 
    <form method="post" name="verzenden" action="<?=$_SERVER['PHP_SELF']?>?actie=verzenden">  
    <table width="200" border="0">  
        <tr>  
            <td height="16" width="150" align="right"><p>Naam</p></td>  
            <td height="16" width="50">  
            <input type="text" name="naam" size="28"></td>  
        </tr>     
    <tr>  
            <td height="16" width="150" align="right"><p>Emailadres</p></td>  
            <td height="16" width="50">  
                <input type="text" name="email" size="28"></td>  
        </tr>    
    <tr>  
            <td height="16" width="150" align="right"><p>Onderwerp</p></td>  
            <td height="16" width="50">
            <input type="text" name="onderwerp" size="28"></td>  
        </tr>  
        <tr>  
            <td height="50" colspan="2" align="center"> 
          <textarea name="bericht" rows="5" cols="40">Uw bericht</textarea></td>  
        </tr>  
        <tr>  
            <td height="18" colspan="2" align="center">  
            <input type="submit" value="Verzenden" name="verzenden">   <input type="reset" value="Wissen" name="wissen"> 
          </td>  
        </tr>  
    </table>  
    </form> 
</body> 
</html> 
<?php } ?>
Het script werkt wel, ik had mijn e-mailadres ingevuld en kreeg wel mail.

Probeer anders een ander e-mailadres, wellicht werkt hij dan.
 
Krijg jij de informatie toegestuurt of zie je alleen:

Onderwerp:

Afzender:
Email adres:


Bericht:

?

Grt Frits
 
Ik kreeg alle informatie wel toegezonden.

Ik zie ook al waarom jij het niet kreeg, onderstaand script moet het wel goed doen :)
PHP:
<html>  
<head>  
<?php   
$emailadres = "michel_brons@hotmail.com";   
$sitenaam = "Helpmij.nl";   

if(isset($_GET['actie']) && $_GET['actie'] == "verzenden") {  
    if(empty($_POST['naam']) || empty($_POST['email']) || empty($_POST['bericht'])) {   
        echo "Alle velden zijn verplicht";   
    } else {
        $message =
        "Afzender: ". $_POST['naam'] ." \n
         Email adres: ". $_POST['email'] ." \n
         Onderwerp: ". $_POST['onderwerp'] ." \n\n
         Bericht: \n ". $bericht;
        mail($emailadres, $_POST['onderwerp'], $message, "From: $_POST[naam] || $sitenaam");   
            echo "Bericht succesvol verzonden!";   
    }   
} else {   
?>   
<link href="stijlblad.css" rel="stylesheet" type="text/css">  
</head>  
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">  
    <form method="post" name="verzenden" action="<?=$_SERVER['PHP_SELF']?>?actie=verzenden">   
    <table width="200" border="0">   
        <tr>   
            <td height="16" width="150" align="right"><p>Naam</p></td>   
            <td height="16" width="50">   
            <input type="text" name="naam" size="28"></td>   
        </tr>      
    <tr>   
            <td height="16" width="150" align="right"><p>Emailadres</p></td>   
            <td height="16" width="50">   
                <input type="text" name="email" size="28"></td>   
        </tr>     
    <tr>   
            <td height="16" width="150" align="right"><p>Onderwerp</p></td>   
            <td height="16" width="50"> 
            <input type="text" name="onderwerp" size="28"></td>   
        </tr>   
        <tr>   
            <td height="50" colspan="2" align="center">  
          <textarea name="bericht" rows="5" cols="40">Uw bericht</textarea></td>   
        </tr>   
        <tr>   
            <td height="18" colspan="2" align="center">   
            <input type="submit" value="Verzenden" name="verzenden">   <input type="reset" value="Wissen" name="wissen">  
          </td>   
        </tr>   
    </table>   
    </form>  
</body>  
</html>  
<?php } ?>
 
Geweldig! het werkt. Ik heb alleen 1 ding verandert namelijk de _POST bij het bericht erbij gezet. ik kreeg die niet mee gestuurt.

Nu nog 1 dingetje. 'k Weet niet of dat moeilijk is. Misschien dat je er iets van af weet. :eek:
Als ik nu op "Verstuur" klik, komt er een bericht met dat die verzonden is op een lege pagina. Kan dit boven het formulier komen?

Ik wil je iig super bedanken voor de hulp :)
Frits
 
Kan geregeld worden...
Vervang deze regel
PHP:
} else {    
?>    
<link href="stijlblad.css" rel="stylesheet" type="text/css">
Door dit
PHP:
}  
?>    
<link href="stijlblad.css" rel="stylesheet" type="text/css">
en haal op het eind dit weg
PHP:
<?php } ?>
 
Er staat geen "Bericht succesvol verzonden!" bij mij op het begin van de pagina.
Ben beetje zeurderig maar als het kan zou ik deze er graag bij willen zien.

Ik zie nu trouwens wel contact.php als het formulier is verzonden
 
Deze moet werken
PHP:
<html>   
<head>  
<link href="stijlblad.css" rel="stylesheet" type="text/css">   
</head>   
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">  
<?php    
$emailadres = "michel_brons@hotmail.com";    
$sitenaam = "Helpmij.nl";    

if(isset($_GET['actie']) && $_GET['actie'] == "verzenden") {   
    if(empty($_POST['naam']) || empty($_POST['email']) || empty($_POST['bericht'])) {    
        echo "Alle velden zijn verplicht";    
    } else { 
        $message = 
        "Afzender: ". $_POST['naam'] ." \n 
         Email adres: ". $_POST['email'] ." \n 
         Onderwerp: ". $_POST['onderwerp'] ." \n\n 
         Bericht: \n ". $_POST['bericht']; 
        mail($emailadres, $_POST['onderwerp'], $message, "From: $_POST[naam] || $sitenaam");    
            echo "Bericht succesvol verzonden!";    
    }    
} 
?>
    <form method="post" name="verzenden" action="<?=$_SERVER['PHP_SELF']?>?actie=verzenden">    
    <table width="200" border="0">    
        <tr>    
            <td height="16" width="150" align="right"><p>Naam</p></td>    
            <td height="16" width="50">    
            <input type="text" name="naam" size="28"></td>    
        </tr>       
    <tr>    
            <td height="16" width="150" align="right"><p>Emailadres</p></td>    
            <td height="16" width="50">    
                <input type="text" name="email" size="28"></td>    
        </tr>      
    <tr>    
            <td height="16" width="150" align="right"><p>Onderwerp</p></td>    
            <td height="16" width="50">  
            <input type="text" name="onderwerp" size="28"></td>    
        </tr>    
        <tr>    
            <td height="50" colspan="2" align="center">   
          <textarea name="bericht" rows="5" cols="40">Uw bericht</textarea></td>    
        </tr>    
        <tr>    
            <td height="18" colspan="2" align="center">    
            <input type="submit" value="Verzenden" name="verzenden">   <input type="reset" value="Wissen" name="wissen">   
          </td>    
        </tr>    
    </table>    
    </form>   
</body>   
</html>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan