Contactformulier werkt niet

Status
Niet open voor verdere reacties.

eeopd

Gebruiker
Lid geworden
13 aug 2010
Berichten
51
Ik heb een contactform gemaakt voor op de site, maar het werkt niet, er wordt niks gemaild.:(
Bekijk bijlage contact.php.txt

Werkt dit script niet of ligt het aan mijn host? (x10hosting)
Alvast bedankt.
eeopd
 
Laatst bewerkt:
dit is een .txt bestand heb je dat expres gedaan of komt dat misschien door helpmij.nl?

wat komt er op je scherm te staan als je het formulier submit?
je kun na elk if(...) commando even een echo "..."; zetten en dan kijken tot waar het goed gaat.

mvg Ecross
 
Een php bestand mocht niet van de uploader, dus moest het maar een text bestand worden.

Hier de code gehighlight:

PHP:
<?php
## <Securimage>
require_once 'captcha/securimage.php';

$image = new Securimage();


## </Securimage>
if(isset($_POST['submitted']))
{
	if($image->check($_POST['captcha']) == true){
//voer verstuur script uit.
## <To:>
   
switch($_POST['categorie'])
{
	case "1":
	$to = "1@hotmail.com"; 
	break;
	case "2":
	$to = "2@hotmail.com"; 
	break;
	case "3":
	$to = "3@hotmail.com"; 
	break;
	case "4":
	$to = "4@hotmail.com, 4@live.nl"; 
	break;
	case "5":
	$to = "5@hotmail.com, 5@hotmail.nl, 5@live.nl";
	break;
	case "6":
	$to = "6@hotmail.com"; 
	break;
	case "7":
	$to = "7@hotmail.com"; 
	break;
	default:
	echo "Selecteer een categorie"; 
	die();
	break;
	
}

##</To:>
##subject
$subject = "Contactforumlier: ".$_POST['categorie'].": ".$_POST['onderwerp'];
## message
$message = $_POST['voornaam']." ".$_POST['achternaam']." schreef: \n\r".$_POST['bericht'];
##  Headers:
$headers = 'From: ' . $_POST['eigenemail'] . "\r\n" .
    'Reply-To: ' . $_POST['eigenemail'] . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
## mailen
mail($to,$subject,$message,$headers);

}else{
?>
Foute code
<?php
}}else{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<form name="form1" method="post" action="<?=strip_tags($_SERVER['PHP_SELF'])?>"> 
<td> 
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF"> 
<tr> 
<td colspan="3" align="center"><strong>Contact</strong></td> 
</tr> 
<tr> 
<td width="78">Eigen email</td> 
<td width="6">:</td> 
<td width="294"><input name="eigenemail" type="text" id="eigenemail" /></td> 
</tr> 
<tr> 
<td>Voornaam</td> 
<td>:</td> 
<td><input name="voornaam" type="text" id="voornaam" /></td> 
</tr> 
<tr>
<td>Achternaam</td><td>:</td><td><input type="text" name="achternaam" id="achternaam" /></td>
</tr>
<tr>
<td>Categorie</td><td>:</td><td>
<select name="categorie">
<option value="1" selected="selected" id="selecteer">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select>
</td></tr>
<tr>
<td>Onderwerp</td><td>:</td><td><input type="text" name="onderwerp" /></td>
</tr>
<tr>
<td>Bericht</td><td>:</td><td>
<textarea rows="10" cols="40" name="bericht">
</textarea></td>
</tr>
<tr><td colspan="3" align="center"><img src="captcha/securimage_show.php" /></td></tr>
<tr><td>Code</td><td>:</td><td><input type="text" name="captcha" /></td></tr>
<tr> 
<td align="center" colspan="3"><input type="hidden" name="submitted" value="submitted" /><input type="submit" name="Submit" value="Verstuur"></td> 
</tr>
</table> 
</td> 
</form> 
</tr> 
</table> 

</body>
</html><?php } ?>
Wanneer ik hier echo's achter zet, zie ik alles wat er zou moeten staan.
Wat ik me afvraag is of de mail() function goed is.
Het returnt (bij mij) niks. Is dit ook zo als er wel een mailtje wordt verzonden?
Ik krijg trouwens geen errors, het script mailt gewoon niet.
 
Laatst bewerkt:
je kunt even een testje doen door dit te versturen:
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');

// The message
$message = "Line 1\nLine 2\nLine 3";
// Send
echo mail('youemail@voorbeeld.com', 'Onderwerp', $message);
?>
er moet dan "true" of "1" uit komen of "false" of "0", maar de php manual zegt het volgende:
Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.

It is important to note that just because the mail was accepted for delivery, it does NOT mean the mail will actually reach the intended destination.
dus als je "true" of "1" terug krijgt betekend dat niet dat het bericht ook echt is aangekomen, kijk ook even in je spam/junk box.

je kunt ook even in je php ini kijken
In je php ini kijken doe je zo:
PHP:
<?php phpinfo(); ?>
je krijgt dan een hele lijst met php instellingen, zoek dan naar "mail function".

Ecross

UPDATE
ik heb dit gevonden op de x10hosting website:
free web hosting PHP settings:

* Memory Limit: 64MB
* Max Execution Time: 30s
* Upload Limit: 16MB
* Max Post Size: 16MB

free hosting disabled functions:

* Exec
* Shell Exec
* Enable_DL
* System
* Passthru
* PHPInfo
phpinfo(); werkt dus waarschijnlijk niet, maar mail() staat niet bij disabled functions dus zou moeten werken.
 
Laatst bewerkt:
Opgelost.
Ik heb dit script op een andere host gezet (heliohost), en nu werkt het wel.
Toch bedankt voor alle tips.

P.S.
phpinfo() werkt wel.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan