Hoi,
Je leest er veel over, maar ik kan nog niet de juiste oplossing vinden.
Script php , een contact formulier, waarin de invuller een automatisch antwoord kreeg, de gegevens naar een data base gingen en in mijn email box een mail aankwam werkte prima maar nu niet meer.
De database en mail in mijn box nog wel maar de contact persoon krijgt geen bevestiging.
Het script moet veranderd , is er iemand die een duidelijk voorbeeld heeft wat er nu precies moet worden aangepast? Voor allerlei aanmeldingen zo'n soort formulier gemaakt... html achterwege gelaten.
Waar gaat het nu mis??
Bedankt!
<?php
session_start();
ini_set('display_errors', 1);
error_reporting(E_ALL);

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Zorgen dat de array met errors leeg is.
$_SESSION['errors'] = array();
$_SESSION['input'] = array();

// Velden in het formulier definiëren
$formuliervelden = array(

'Vn1' => 'text',
'Tus1' => 'text',
'An1' => 'text',
'Email1' => 'text',
'Bridgekofferkleur' => 'radio',
'Datum' => 'text',
'Ophalen' => 'text',
'Reactie' =>'textarea',
);

// Velden waar geen controle op uitgevoerd hoeft te worden.
$no_check = array( 'Tus1','Ophalen','Reactie');
// Loop alle elementen uit de $_POST array langs

foreach($formuliervelden as $veld => $type)
{
if($type == 'select')
{
if(empty($_POST[$veld]) && !in_array($veld, $no_check))
{
$_SESSION['errors'][$veld] = true;
$errors[] = 's.v.p. speelsterkte "'.$veld.'" aangeven';

}
else
{
$_SESSION['input'][$veld] = $_POST[$veld];
}
}

elseif($type == 'radio')
{
if(empty($_POST[$veld]) && !in_array($veld, $no_check))
{
$_SESSION['errors'][$veld] = true;
$errors[] = 'Kies een optie bij "'.$veld.'"';
}
else
{
$_SESSION['input'][$veld] = $_POST[$veld];
}
}

else
{
if(isset($_POST[$veld]))
{
// Spaties voor en achter input verwijderen
$value = trim($_POST[$veld]);

// Ingevulde waarden in een sessievariabele zetten.
$_SESSION['input'][$veld] = $value;

// Controle van verschillende velden.
// Velden waar geen controle op uitgevoerd hoeft te worden overslaan.
if(in_array($veld, $no_check))
{
continue;
}


else
{
if(empty($value))
{
$_SESSION['errors'][$veld] = true;
$errors[] = 'Je bent vergeten het veld '.$veld.' in te vullen.';
}
}
}
else
{
$errors[] = 'Het veld '.$veld.' ontbreekt aan het formulier';
}
}
}


// Verwerk het formulier als er geen fouten opgetreden zijn.
if(empty($_SESSION['errors']))
{
// Verwerk het formulier:
// vb. Schrijf gegevens naar een database

include('contactdb.php');

$Vn1 = mysql_real_escape_string($_POST['Vn1']);
$Tus1 = mysql_real_escape_string($_POST['Tus1']);
$An1 = mysql_real_escape_string($_POST['An1']);
$Email1 = mysql_real_escape_string($_POST['Email1']);
$Bridgekofferkleur = mysql_real_escape_string($_POST['Bridgekofferkleur']);
$Datum = mysql_real_escape_string($_POST['Datum']);
$Ophalen = mysql_real_escape_string($_POST['Ophalen']);
$Reactie = mysql_real_escape_string($_POST['Reactie']);


// Schrijf gegevens naar een database

$sql = "
INSERT INTO bridgekoffer
(
Vn1,
Tus1,
An1,
Email1,
Bridgekofferkleur,
Datum,
Ophalen,
Reactie

)
VALUES

(
'".$Vn1."',
'".$Tus1."',
'".$An1."',
'".$Email1."',
'".$Bridgekofferkleur."',
'".$Datum."',
'".$Ophalen."',
'".$Reactie."'
)
";

if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}

// ....

if(empty($_SESSION['errors']))

$ontvanger = "[email protected]";

$onderwerp = "Reservering bridgekoffer ";

$_POST['Alles']= " ".$_POST['Vn1']." ,".$_POST['Tus1']." ,".$_POST['An1']." ,".$_POST['Email1']." ";

Mail($ontvanger, $onderwerp, $_POST['Alles']);

{
$site = "mijnsite.com";
$sql = "SELECT * FROM bridgekoffer WHERE Email1='".$_POST['Email1']."'";
$resultaat = mysql_query($sql) or die (mysql_error());
$aantal = mysql_num_rows($resultaat);
$rij = mysql_fetch_object($resultaat);
$Email1 =($rij->Email1);
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To:[email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

if ($aantal == '0') {
echo "Dit emailadres is bij ons niet bekend!";
} else

{

$bericht = "Beste ".$Vn1."".$Tus1."".$An1.",\n\n
Er is zojuist op ".$site." met dit emailadres, een bridgekoffer reservering binnen gekomen \n\n
Koffer: ".$Bridgekofferkleur."\n
Voor de volgende datum: ".$Datum." \n
U zou de koffer ophalen op : ".$Ophalen." \n
Veel plezier !\n
Met vriendelijke groet; N.\n";

mail($Email1,"Reservering bridgekoffer",$bericht,"From: ".$site." <no_reply@".$site.">");
echo "Er is een bevestigings mail, naar uw email-adres gestuurd, zoniet, dan hebben wij geen juist email adres, wilt u dan contact met ons opnemen! ";
}

}


{
// Stuur gebruiker door naar een volgende pagina.
$content[] = '<p><b>Veel plezier.</b></p>';
$content[] = '<ul>';

foreach($_SESSION['input'] as $key => $value)
{
$content[] = '<li>'.$key.': '.$value.'</li>';
}
$content[] = '</ul>';


unset($_SESSION['input']);

}
}
}
?>
Net Jong op 09/07/2015 09:59:32

Naam verzender = de als ingevulde naam van de invuller.. dus 'Achternaam'?
Email verzender is de invuller, die heeft zijn email adres ingevuld, die heeft meestal geen mijn domein naam.nl adres. 'Email' dus je hebt daar geen vaste waarde staan, want die wisselt.

Daar gaat het hoogstwaarschijnlijk fout: jouw mailserver kan geen e-mail verzenden met het e-mailadres van iemand anders als de afzender. Dan zou je server op [email protected] namelijk kunnen e-mailen alsof er mail afkomstig is van [email protected] of [email protected]. Dergelijke mail wordt dus veelal aangemerkt als vervalst (door een spamfilter bijvoorbeeld) of gewoon geweigerd door je eigen mailserver (omdat die anders voor spam kan worden misbruikt).

Kortom: stel het afzenderadres in op een geldig e-mailadres voor je hosting.

Mailserver heeft dit altijd gedaan, maar dus waarschijnlijk veranderd.

Maar dat afzender adres wordt gepost , dus wat kan ik daar dan invullen, het moet naar de afzender toe zijn email adres weet ik niet...
Dus wat voor geldig email adres kan ik invullen, zodat het bij de afzender terecht komt?
Gebruik het algemene e-mailadres van de site als de afzender.

Het e-mailadres van de invuller gebruik je vervolgens niet voor de From (afzender) maar de To (geadresseerde). Dat is het eerste argument $to in de PHP-functie mail().
Hallo,

Dat from en to had ik zoals je kunt zien op de php. daarboven, zo ingevuld.
Maar er komt dus geen mail binnen .
Dus mijn probleem is er nog steeds..
Heb je zo'n soort script wat bij jouw wel werkt ?
Alvast bedankt!
Kijk eens naar een class als swiftmailer of phpmailer.
Welke code heb je nu?
Gewoon je complete code nog een keer, met (daarnaast) vermelding in welke regel we moeten kijken.
In jouw voorbeeld is dit geen correct emailadres:

$email_verzender = 'Email1';

Dus dat werkt niet.
Hoi,
Had niet gezien dat er reacties waren van andere.
PHP mailer ... ff naar gekeken. Maar al dat nooit nodig gehad.
Misschien ligt de oorzaak wel bij de hosting, dat die het niet meer toe staat.

Het probleem is dat je na het invullen van een formulier ( gebruik dit giga veel, ... niet alleen voor huidig formulier ) dat de invuller automatisch reactie krijgt, met een mededeling in zijn email box
Het ingevulde bericht komt wel binnen in mijn email box, en gaat ook naar de database.
Ben nu aan het typen.. dus laatste reactie kan ik niet lezen.
<?php
// Geef GELDIGE adressen op
// Een korte benaming voor jouw website
$website_naam = 'site.com';
// Jouw eigen geldige emailadres
$eigen_emailadres = '[email protected]';
// Een geldig emailadres voor errors
$error_emailadres = '[email protected]';
// De naam van de verzender
$naam_verzender = 'Achternaam';
// Het geldige emailadres van de afzender
$email_verzender = 'Email1';
// Een geldig emailadres of helemaal leeg laten
$bcc_emailadres = '[email protected]';
// HTML mail? True/False
$html = true;

// De headers samenstellen
$headers = 'From: ' . $website_naam . ' <' . $eigen_emailadres . '>' . "\r\n";
$headers .= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . "\r\n";
$headers .= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . "\r\n";
$headers .= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . "\r\n" : '';
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers .= 'X-Priority: Normal' . "\r\n";
$headers .= ($html) ? 'MIME-Version: 1.0' . "\r\n" : '';
$headers .= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . "\r\n" : '';



if(mail($Email1,"Reservering bridgekoffer",$bericht,$headers)) {
echo "Er is een bevestigings mail, naar uw email-adres gestuurd, zoniet, dan hebben wij geen juist email adres, wilt u dan contact met ons opnemen! ";
} else {
echo "De mail kon door een technische fout aan onze kant niet verstuurd worden. Onze excuses.";
}
?>

Is er een oplossing?



[size=xsmall]Toevoeging op 09/07/2015 12:09:02:[/size]

Email1 is het geposte adres.. ik heb geen adres van de invuller...
Net Jong op 09/07/2015 12:08:09

Email1 is het geposte adres.. ik heb geen adres van de invuller...


Dat is getest of dat een geldig emailadres is?
$formuliervelden = array(

'Vn1' => 'text',
'Tus1' => 'text',
'An1' => 'text',
'Email1' => 'text',

De input is Email1...

$email_verzender = '????';
Wat moet er dan staan volgen jouw?


[size=xsmall]Toevoeging op 09/07/2015 12:22:48:[/size]

Vroeger had ik wel scripts met email check er in , maar gebruik dat jaren al niet meer..
Is dat het probleem ?
Heb je een up to date email check script ?


[size=xsmall]Toevoeging op 09/07/2015 14:23:28:[/size]

Iedereen bedankt voor de reacties.
Heb het zelfde script op een andere website getest, een andere hosting.
Daar kwam de mail binnen. Heb de hosting gevraagd, naar een oplossing.

Nog wel een ander probleem, maar daar maar een nieuwe topic van..

Reageren