-
21-02-2009, 19:47 #1Member
- Registered
- 21/02/09
- Location
- West-Vlaanderen
- Posts
- 9
- iTrader
- 0
- Mentioned
- 0 Post(s)
E-mailproblemen vanuit m'n website
Hello,
Ik maak voor het eerst een website en evenals voor het eerst met Dreamweaver. Nu heb ik een kleine hindernis bij de codes om een e-mail te kunnen verzenden van uit m'n website. Het is ook de eerste keer dat ik php-codes gebruik. Dus als er gigantische fouten inzitten ligt het aan mijn te kort aan kennis op dit gebied.
Dit is de code van mijn form-code:
en dit is m'n php-code:Code:<form name="form" method="post" action="verwerking.php"> <label>Name:<br /><input type="text" name="E-Mail" size="40" maxlength="100" /></label><br /><br /> <label>E-Mail:<br /><input type="text" name="E-Mail" size="40" maxlength="100" /></label><br /><br /> <label>Theme:<br /><input type="text" name="E-Mail" size="40" maxlength="100" /></label><br /><br /> <label>Commentary:<br /> <textarea name="msg" cols="60" rows="6" ></textarea></label><br /><br /> <input name="paginanaam" type="hidden" value="<?php echo $paginanaam; ?>"> <input name="ip" type="hidden" value="<?php echo $ip; ?>"> <input name="browser" type="hidden" value="<?php echo $browser; ?>"> <input name="referer" type="hidden" value="<?php echo $referer; ?>"> <input name="scriptname" type="hidden" value="<?php echo $scriptname; ?>"> <input class="pointer" type="submit" name="submit" value="Send" /><br /><br /> </form>
Alvast dikke merci voor de hulp!PHP Code:<?php
$name = $_POST['name'];
$E-Mail = $_POST['E-Mail'];
$message = $_POST['msg'];
$paginanaam = $_POST['paginanaam'];
$ip = $_POST['ip'];
$browser = $_POST['browser'];
$referer = $_POST['referer'];
$scriptname = $_POST['scriptname'];
$ip2 = $_SERVER["REMOTE_ADDR"];
$browser2 = $_SERVER['HTTP_USER_AGENT'];
$referer2 = $_SERVER['HTTP_REFERER'];
$scriptname2 = $_SERVER['SCRIPT_NAME'];
$jaar = date("Y");
$maand = date("m");
$dag = date("d");
$datum = $dag . " " . $maand . " " . $jaar;
$tijd = time("t");
$mijnadres = "spammetyspam@hotmail.com";
$mijnsite = "www.fotoboek-elslapere.be";
$xmail = array
("@cepk.info", "@ceprk.info", "@gawab.com", "@mail.ru", "@yandex.com", "@gates.com");
$xmaildomein = "";
function is_substr($needle, $haystack){
$pos = strpos($haystack, $needle);
if ($spos === false) {
return false;
} else {
return true;
}
}
if ( ( !$E-Mail ) ||
( strlen($_POST['E-Mail']) > 200 ) ||
( !preg_match ("#^[A-Za-z0-9](([_\.\-]?
[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)
\.([A-Za-z] {2,})$#", $E-Mail) )
{
print "Fout: Ongeldig E-Mail Adres"
exit;
}
foreach ($xmail as $xmaildomein) {
if ( is_substr
($xmaildomein,$E-Mail))
{
print "Fout: Ongewenst E-Mail Adres"
exit;
}
}
if ( is_substr("http",$message))
{
print "Fout: gebruik geen http in je bericht";
exit;
}
if ( $referer !="")
{
if ( !eregi("^http:",$referer ) )
{
print "Fout: Ongeldige referer";
exit;
}
if ( is_substr(" ",$referer))
{
print "Fout: Ongeldige referer";
exit;
}
}
if ( ( !$name ) ||
( strlen($name) > 100 ) ||
( preg_match("/[:=@\<\>]/", $name) )
)
{
print "Fout: Ongeldige Naam";
exit;
}
if ( preg_match("#cc:#i", $message, matches) )
{
print "Fout: Ongeldig Header Field gevonden";
exit;
}
if ( !$message )
{
print "Fout: Geen bericht";
exit;
}
if ( !$scriptname )
{
print "Fout: Ongeldige toegang";
exit;
}
if ( !$browser )
{
print "Fout: Ongeldige toegang";
exit;
}
if ( $browser != $browser2 )
{
print "Fout: Ongeldige toegang";
exit;
}
if ( $ip != $ip2 )
{
print "Fout: Ongeldige toegang";
exit;
}
if (eregi("\r",$E-Mail) || eregi "\n",$E-Mail))
{
print "Fout: Ongeldig E-Mail Adres";
}
if (FALSE) {
print "Fout: Je kunt geen bericht sturen naar een adres op het zelfde domein.";
exit;
}
$headers = "Content-Type: text/plain; harset=iso-8859-1\n";
$headers .= "Van: bezoeker bezoeker@contactformulier.nl>\n";
$recipient = $mijnadres;
$subject = "Contact via $mijnsite $datum $tijd";
$mssg = "Via: $paginanaam $scriptname $referer2\n";
$mssg .= "Browser: $browser\n";
$mssg .= "Referer: $referer\n";
$mssg .= "Verwerking: $scriptname2\n";
$mssg .= "=== AFZENDER ========\n";
$mssg .= "$name <$E-Mail> IP-adres: $ip\n";
$mssg .= "=== BEGIN BERICHT ======\n\n";
$mssg .= "$message\n\n";
$mssg .= "=== EINDE BERICHT ======\n";
$message = $mssg;
mail($recipient, $subject, $message, $headers);
header("location: http://www.startspace.nl/dankjewelvoorjebericht.php");
?>
Last edited by dJeez; 22-02-2009 at 20:01. Reason: Email adres maar verwijderd voor spambots...
no votes
-
-
21-02-2009, 20:08 #2Approved 9liver
- Registered
- 21/08/02
- Location
- Roeselare
- Posts
- 4,474
- iTrader
- 15 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/35
wat lukt precies niet ?
no votes
-
21-02-2009, 20:38 #3Member
- Registered
- 21/02/09
- Location
- West-Vlaanderen
- Posts
- 9
- iTrader
- 0
- Mentioned
- 0 Post(s)
E-mailproblemen vanuit m'n website
Als ik in m'n pagina met het contactformulier alles invul en dan op Send/verstuur klik, krijg ik een venster met wilt u het bestand "verwerking.php" (waaronder die pagina is opgeslaan) openen?
Wat ik wil bekomen, is dat die mail effectief verstuurd is en een "dankuwel"-pagina na het versturen van de mail.
Excuses voor het ontbreken van de uitleg over het probleem.
no votes
-
21-02-2009, 21:37 #4Crew Member
- Registered
- 01/09/02
- Location
- Peutie
- Posts
- 7,664
- iTrader
- 0
- Mentioned
- 4 Post(s)
- Reputation
- 13/105
Ondersteund uw webserver wel PHP?
Vanaf nu gaan we verder op BeyondGaming!
In deze thread wordt uitgelegd hoe je jouw account kan migreren.no votes
-
21-02-2009, 23:02 #5Approved 9-lifer
- Registered
- 18/07/02
- Location
- Sint-Pieters-Leeuw
- Posts
- 226
- iTrader
- 3 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/1
is dat wanneer ge offline aan t testen zijt op uw eigen pc, via wamp of zo?
heb dat hier ook voor, is iets met file extensions en hoe die php bestanden openen... als ik test vanop mijn webserver heb ik dat probleem niethoino votes
-
22-02-2009, 08:47 #6Member
- Registered
- 21/02/09
- Location
- West-Vlaanderen
- Posts
- 9
- iTrader
- 0
- Mentioned
- 0 Post(s)
E-mailproblemen vanuit m'n website
PHP ondersteund hij wel, maar heb hem inderdaad nog nt kunnen testen online. Ik hoop dat het enkel daaraan ligt. Er heeft precies niemand opmerkingen op mijn code. Ik veronderstel dat er geen fouten inzitten? Want ik ken er werkelijk zeer weinig van!
no votes
-
22-02-2009, 11:00 #7Approved 9liver
- Registered
- 21/08/02
- Location
- Roeselare
- Posts
- 4,474
- iTrader
- 15 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/35
Ge steekt variabelen vol, ge controleert ze, ge stelt een string samen en ge mailt .... niet zo veel mis mee inderdaad.... maar toegeven uw code is niet de mooiste al gezien nee
Toch iets dan: volgens mij maak je het nodeloos gecompliceerd ... heb je echt wel een referer en 20 andere zaken nodig als ge een mail leest? .... Een mail sturen kan eigenlijk met 5 lijntjes ofzo.
Plus: je controleert niet als de mailfunctie wel degelijk gelukt isno votes
-
22-02-2009, 17:44 #8
als je het thuis gebruikt en test, moet je thuis een php server staan hebben (bvb apache + php module)
vbn: wamp, xamp etc. Anders kan windows je php bestand niet lezen en interpreteren.* blub*no votes
-
22-02-2009, 19:27 #9Member
- Registered
- 21/02/09
- Location
- West-Vlaanderen
- Posts
- 9
- iTrader
- 0
- Mentioned
- 0 Post(s)
Als ik m'n site online test omtrent die e-mailverwerking krijg ik de volgende foutmelding:
Parse error: syntax error, unexpected '=' in /home/zwammer/public_html/citrofenwick/els/Contact/verwerking.php on line 126
De site staat trouwens online op: Fotoboek - Els Lapere > Home
Als je opmerkingen of tips hebt op m'n site anderzijds, altijd welkom! Want ik ben hier pas een dikke maand mee bezig en voorheen kende ik hier niets van! Dus wil ik graag bijleren!
no votes
-
22-02-2009, 19:35 #10Zwamtalent
- Registered
- 03/12/03
- Location
- Wvl
- Posts
- 11,395
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/40
Ik heb die site gehost voor haar. Naar mijn weten ondersteunt deze webspace php, dus dat zou geen probleem mogen zijn. In de map waar het php-bestand zich bevindt staat er een errorlog met het volgende in:
(verder ken ik bitterweinig van al die php-toestanden en zal ik me niet verder bemoeien[22-Feb-2009 11:47:31] PHP Parse error: syntax error, unexpected '=' in /home/zwammer/public_html/citrofenwick/els/Contact/verwerking.php on line 126
[22-Feb-2009 11:48:11] PHP Parse error: syntax error, unexpected '=' in /home/zwammer/public_html/citrofenwick/els/Contact/verwerking.php on line 126
[22-Feb-2009 11:49:18] PHP Parse error: syntax error, unexpected '=' in /home/zwammer/public_html/citrofenwick/els/Contact/verwerking.php on line 126
[22-Feb-2009 11:54:52] PHP Parse error: syntax error, unexpected '=' in /home/zwammer/public_html/citrofenwick/els/Contact/verwerking.php on line 126
[22-Feb-2009 12:02:23] PHP Parse error: syntax error, unexpected '=' in /home/zwammer/public_html/citrofenwick/els/Contact/verwerking.php on line 126
[22-Feb-2009 12:08:31] PHP Parse error: syntax error, unexpected '=' in /home/zwammer/public_html/citrofenwick/els/Contact/verwerking.php on line 126
[22-Feb-2009 12:23:53] PHP Parse error: syntax error, unexpected '=' in /home/zwammer/public_html/citrofenwick/els/Contact/verwerking.php on line 126
[22-Feb-2009 12:25:40] PHP Parse error: syntax error, unexpected '=' in /home/zwammer/public_html/citrofenwick/els/Contact/verwerking.php on line 126
)
no votes
-
22-02-2009, 19:45 #11Approved 9-lifer
- Registered
- 23/05/03
- Location
- Stavanger
- Posts
- 1,837
- iTrader
- 10 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/4
$E-Mail = $_POST['E-Mail']; //lijn 3
$EMail = $_POST['E-Mail'];
uiteraard de rest dan ook aanpassen waar ge die variabele gebruikt.
(nu krijgk ergens een fout op lijn 45, ben aant zien wat daar fout is)
-edit-
op lijn 44 zijt ge een ')' vergeten
dan 2 lijnen eronder een ';' achter de print statement
die code krijgt geen errors meer hier (kweet wel niet of ze werkt gelijk ge wilt, maar het geeft al geen errors meer)PHP Code:<?php
$name = $_POST['name'];
$EMail = $_POST['E-Mail'];
$message = $_POST['msg'];
$paginanaam = $_POST['paginanaam'];
$ip = $_POST['ip'];
$browser = $_POST['browser'];
$referer = $_POST['referer'];
$scriptname = $_POST['scriptname'];
$ip2 = $_SERVER["REMOTE_ADDR"];
$browser2 = $_SERVER['HTTP_USER_AGENT'];
$referer2 = $_SERVER['HTTP_REFERER'];
$scriptname2 = $_SERVER['SCRIPT_NAME'];
$jaar = date("Y");
$maand = date("m");
$dag = date("d");
$datum = $dag . " " . $maand . " " . $jaar;
$tijd = time("t");
$mijnadres = "elslapere@hotmail.com";
$mijnsite = "www.fotoboek-elslapere.be";
$xmail = array
("@cepk.info", "@ceprk.info", "@gawab.com", "@mail.ru", "@yandex.com", "@gates.com");
$xmaildomein = "";
function is_substr($needle, $haystack){
$pos = strpos($haystack, $needle);
if ($spos === false) {
return false;
} else {
return true;
}
}
if ( ( !$E-Mail ) ||
( strlen($_POST['E-Mail']) > 200 ) ||
( !preg_match ("#^[A-Za-z0-9](([_\.\-]?
[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)
\.([A-Za-z] {2,})$#", $EMail) ))
{
print "Fout: Ongeldig E-Mail Adres";
exit;
}
foreach ($xmail as $xmaildomein) {
if ( is_substr
($xmaildomein,$EMail))
{
print "Fout: Ongewenst E-Mail Adres";
exit;
}
}
if ( is_substr("http",$message))
{
print "Fout: gebruik geen http in je bericht";
exit;
}
if ( $referer !="")
{
if ( !eregi("^http:",$referer ) )
{
print "Fout: Ongeldige referer";
exit;
}
if ( is_substr(" ",$referer))
{
print "Fout: Ongeldige referer";
exit;
}
}
if ( ( !$name ) ||
( strlen($name) > 100 ) ||
( preg_match("/[:=@\<\>]/", $name) )
)
{
print "Fout: Ongeldige Naam";
exit;
}
if ( preg_match("#cc:#i", $message, $matches) )
{
print "Fout: Ongeldig Header Field gevonden";
exit;
}
if ( !$message )
{
print "Fout: Geen bericht";
exit;
}
if ( !$scriptname )
{
print "Fout: Ongeldige toegang";
exit;
}
if ( !$browser )
{
print "Fout: Ongeldige toegang";
exit;
}
if ( $browser != $browser2 )
{
print "Fout: Ongeldige toegang";
exit;
}
if ( $ip != $ip2 )
{
print "Fout: Ongeldige toegang";
exit;
}
if (eregi("\r", $EMail) || eregi("\n", $EMail))
{
print "Fout: Ongeldig E-Mail Adres";
}
if (FALSE) {
print "Fout: Je kunt geen bericht sturen naar een adres op het zelfde domein.";
exit;
}
$headers = "Content-Type: text/plain; harset=iso-8859-1\n";
$headers .= "Van: bezoeker bezoeker@contactformulier.nl>\n";
$recipient = $mijnadres;
$subject = "Contact via $mijnsite $datum $tijd";
$mssg = "Via: $paginanaam $scriptname $referer2\n";
$mssg .= "Browser: $browser\n";
$mssg .= "Referer: $referer\n";
$mssg .= "Verwerking: $scriptname2\n";
$mssg .= "=== AFZENDER ========\n";
$mssg .= "$name <$E-Mail> IP-adres: $ip\n";
$mssg .= "=== BEGIN BERICHT ======\n\n";
$mssg .= "$message\n\n";
$mssg .= "=== EINDE BERICHT ======\n";
$message = $mssg;
mail($recipient, $subject, $message, $headers);
header("location: http://www.startspace.nl/dankjewelvoorjebericht.php");
?>
Zijt ge in kladblok aant werken toevallig?
Ik zou een betere IDE zoeken, deze (typ)fouten kunt ge makkelijk vermijden.
no votes
-
22-02-2009, 19:47 #12Crew Member
- Registered
- 01/09/02
- Location
- Peutie
- Posts
- 7,664
- iTrader
- 0
- Mentioned
- 4 Post(s)
- Reputation
- 13/105
Er staat al minstens 1 fout in:
Je mag geen '-' teken in de naam van een variabele gebruiken, maak daar dus al eens gewoon het volgende van:PHP Code:$E-Mail = $_POST['E-Mail'];
Vergeet dit ook niet aan te passen in de rest van het script.PHP Code:$Email = $_POST['E-Mail'];
Vanaf nu gaan we verder op BeyondGaming!
In deze thread wordt uitgelegd hoe je jouw account kan migreren.no votes
-
22-02-2009, 21:50 #13Zwamtalent
- Registered
- 03/12/03
- Location
- Wvl
- Posts
- 11,395
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/40
ik heb zonet even snel die code vervangen door de code die tha_rippa1be voorstelde en nu geeft ze geen fouten meer, maar het mailtje wordt nog niet verstuurd. Hij zegt dat het emailadres ongeldig is.
Als ik dan dit delete:Fout: Ongeldig E-Mail Adres
Dan geeft hij de fout op de controle eronder:PHP Code:if ( ( !$EMail ) ||
( strlen($_POST['E-Mail']) > 200 ) ||
( !preg_match ("#^[A-Za-z0-9](([_\.\-]?
[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)
\.([A-Za-z] {2,})$#", $EMail) ))
{
print "Fout: Ongeldig E-Mail Adres";
exit;
}
Telkens als ik dus een controle verwijder, geeft hij de fout op de controle eronder.PHP Code:foreach ($xmail as $xmaildomein) {
if ( is_substr
($xmaildomein,$EMail))
{
print "Fout: Ongewenst E-Mail Adres";
exit;
}
}
Naar mijn weten had ze het script overgetypt in DW cs4.no votes
-
22-02-2009, 22:02 #14Approved 9-lifer
- Registered
- 23/05/03
- Location
- Stavanger
- Posts
- 1,837
- iTrader
- 10 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/4
no votes
-
01-03-2009, 22:24 #15Member
- Registered
- 21/02/09
- Location
- West-Vlaanderen
- Posts
- 9
- iTrader
- 0
- Mentioned
- 0 Post(s)
Bedankt voor alle tips tot noch toe!
Heb een nieuw script geprobeerd en dat lukt!
Alleen is het er eentje zonder spamcontrole. Mr 't zou toch wel handig zijn als er wel spamcontrole op zat. Dus heb ik geprobeerd om de spam-controle uit het vorige script over te nemen. Maar zonder succes. Ik krijg opnieuw foutmelding: "Fout: ongeldig e-mailadres." En als ik de spamcontrole er terug uithaal lukt het mailen vanuit de site opnieuw perfect!
Dit is wat ik overnam uit het vorige script? Kan iemand mij helpen om hier een goeie en degelijke spamcontrole van te maken? Of kent iemand een betere spamcontrole of weet waar ik die moet halen ofzo?PHP Code:// ongewenste emaildomeinen in een array:
$xmail = array("@cepk.info", "ceprk.info", "@gawab.com", "@mail.ru", "@yandex.com", "@gates.com");
$xmaildomein = "";
function is_substr($needle, $haystack){
$pos = strpos($haystack, $needle);
if ($pos === false) {
return false;
} else {
return true;
}
}
// Fouten en veiligheidscontroles
if ( ( !$email ) ||
( strlen($_POST['email']) > 200 ) ||
( !preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) )
)
{
print "Fout: Ongeldig E-Mail Adres";
exit;
}
// ongewenste emaildomeinen filteren
foreach ($xmail as $xmaildomein) {
if ( is_substr($xmaildomein,$email))
{
print "Fout: Ongewenst E-Mail Adres";
exit;
}
}
// filteren op http
if ( is_substr("http",$message))
{
print "Fout: Gebruik geen http in je bericht";
exit;
}
// referer controleren op geldigheid
if ( $referer != "")
{
if ( !eregi("^http:",$referer ) )
{
print "Fout: Ongeldige referer";
exit;
}
if ( is_substr(" ",$referer))
{
print "Fout: Ongeldige referer";
exit;
}
}
if ( ( !$name ) ||
( strlen($name) > 100 ) ||
( preg_match("/[:=@\<\>]/", $name) )
)
{
print "Fout: Ongeldige Naam";
exit;
}
if ( preg_match("#cc:#i", $message, $matches) )
{
print "Fout: Ongeldig Header Field Gevonden";
exit;
}
if ( !$message )
{
print "Fout: Geen Bericht";
exit;
}
if ( !$scriptname )
{
print "Fout: Ongeldige toegang";
exit;
}
if ( !$browser )
{
print "Fout: Ongeldige toegang";
exit;
}
if ( $browser != $browser2 )
{
print "Fout: Ongeldige toegang";
exit;
}
if ( $ip != $ip2 )
{
print "Fout: Ongeldige toegang";
exit;
}
if (eregi("\r",$email) || eregi("\n",$email)){
print "Fout: Ongeldig E-Mail Adres";
exit;
}
if (FALSE) {
print "Fout: Je kunt geen bericht sturen naar een adres op hetzelfde domein.";
exit;
}
Alvast hartelijk dank!no votes

