Alleen bij IE8 foutmelding bij bevestiging formulier (Ajax)
http://www.wennekes.info/claro-projekte/contact.php
Ik krijg bij verzenden ieder keer een melding
"De website http://www.wennekes.info/claro-projekte/contact.php kan niet worden geopend.
Heb helaas alleen IE8, wellicht doet ie het bij 7 ook. Lager interesseert me niet.
De bewerking wordt afgebroken"
De broncode voor het verzenden van de mail is
Iemand bekend met dit probleem?
Ik heb een probleem op Ik krijg bij verzenden ieder keer een melding
"De website http://www.wennekes.info/claro-projekte/contact.php kan niet worden geopend.
Heb helaas alleen IE8, wellicht doet ie het bij 7 ook. Lager interesseert me niet.
De bewerking wordt afgebroken"
De broncode voor het verzenden van de mail is
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
$recipient=$_REQUEST["recipient"];
$subject=$_REQUEST["subject"];
$ipadress=$_REQUEST["ipadress"];
$code=$_REQUEST["code"];
$enccode=$_REQUEST["enccode"];
$Naam=$_REQUEST["Naam"];
$Adres=$_REQUEST["Adres"];
$Postcode=$_REQUEST["Postcode"];
$Woonplaats=$_REQUEST["Woonplaats"];
$Telefoon=$_REQUEST["Telefoon"];
$Email=$_REQUEST["Email"];
$vraag=$_REQUEST["vraag"];
$bericht="";
$bericht=$bericht."IP-adres: $ipadress\n\n";
$bericht=$bericht."Naam: $Naam\n";
$bericht=$bericht."Adres: $Adres\n";
$bericht=$bericht."Postcode: $Postcode\n";
$bericht=$bericht."Woonplaats: $Woonplaats\n";
$bericht=$bericht."Tel.: $Telefoon\n";
$bericht=$bericht."E-mail: $Email\n\n";
$bericht=$bericht."$vraag\n";
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Datum in het verleden
header('Content-type: text/html');
if(mail($recipient, "$subject", $bericht, "From: "."$Email")) {
// Bericht is verzonden
echo "Your message is succesfully send.\n\n$bericht\n\n$Email";
} else {
// Bericht niet verzonden
echo "Something went wrong.";
}
?>
$recipient=$_REQUEST["recipient"];
$subject=$_REQUEST["subject"];
$ipadress=$_REQUEST["ipadress"];
$code=$_REQUEST["code"];
$enccode=$_REQUEST["enccode"];
$Naam=$_REQUEST["Naam"];
$Adres=$_REQUEST["Adres"];
$Postcode=$_REQUEST["Postcode"];
$Woonplaats=$_REQUEST["Woonplaats"];
$Telefoon=$_REQUEST["Telefoon"];
$Email=$_REQUEST["Email"];
$vraag=$_REQUEST["vraag"];
$bericht="";
$bericht=$bericht."IP-adres: $ipadress\n\n";
$bericht=$bericht."Naam: $Naam\n";
$bericht=$bericht."Adres: $Adres\n";
$bericht=$bericht."Postcode: $Postcode\n";
$bericht=$bericht."Woonplaats: $Woonplaats\n";
$bericht=$bericht."Tel.: $Telefoon\n";
$bericht=$bericht."E-mail: $Email\n\n";
$bericht=$bericht."$vraag\n";
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Datum in het verleden
header('Content-type: text/html');
if(mail($recipient, "$subject", $bericht, "From: "."$Email")) {
// Bericht is verzonden
echo "Your message is succesfully send.\n\n$bericht\n\n$Email";
} else {
// Bericht niet verzonden
echo "Something went wrong.";
}
?>
Iemand bekend met dit probleem?
Gewijzigd op 09/12/2010 12:58:17 door Rene Wennekes
Met andere browsers wordt het formulier leeggemaakt, bij het behandelen van de response. Bij IE8 doet het dat dus niet.
Juist?
Edit:
Zeg, wordt de mail gestuurd (met IE8)?
Kwestie van het probleem te isoleren en te zien tot waar alles wel goed loopt en waar het fout begint te lopen.
Gewijzigd op 09/12/2010 13:14:42 door Kris Peeters
Als ik dan op ok druk ..... alles weg en foutmelding.
Kan het probleem dus ook niet isoleren. Alles ziet er goed uit.
En overige, ff, opera, safari, perfectemundo (of course).
Heb ook al in ie8 advanced options, friendly http berichten uitgeschakeld en zo, helpt allemaal niks.
Ook alle code in de <head> maakt ook geen verschil.
Gewijzigd op 09/12/2010 13:35:29 door Rene Wennekes
Maar volgens mij ga je al eerder de fout in ;) en dat is dat je je captcha met JS genereerd ;)
Dit regeltje JS is het enige dat ik in firebug hoef in te voeren om de captcha te krijgen :
document.getElementById('captcha').src.split('=')[1]
O en als ik :
document.getElementById('code').value = document.getElementById('captcha').src.split('=')[1]
in mn Firebug doe word hij direct ingevuld zonder dat ik er iets voor heb hoeven doen
Werkt ook prima in de IE debugger trouwens.
PS: je weet dat IE een js debugger onder f12 heeft zitten? (geen goeie maar beter dan niets)
Gewijzigd op 09/12/2010 14:10:13 door Jacco Engel
geen enkel systeem is waterdicht. Maar laten we aannemen dat niet de hele wereld zo clever is als jij ;-)
Ik heb zo het idee dat het probleem bij IE8 of de standaardinstelling kan liggen. Aan de code lijkt het niet te liggen.
Het schijnt dat deze melding niet bij iedereen voorkomt.
Zelf heb ik niks aan mijn ie instellingen veranderd.
Behalve dan de updates die je krijgt van Microschoft.
Nee niet de hele wereld nee, maar mensen die misbruik van het form gaan maken die zijn nog veel slimmer ;)
Wordt alert(xmlHttp.responseText) uitgevoerd?
Wie weet kan het ook liggen aan
if (xmlHttp.responseText != "Something went wrong.")
Misschien is er ergens een spatie tussengeglipt of zo.
Probeer eens je respons in een getal te gieten.
...
Zie eens of dat helpt
En nog geen verandering.
Overigens zodra ik de oplossing heb worden deze bestanden uiteraard verplaatst.
Zeker als Jacco, bedoelt uit goede hart om me te wijzen op veiligheid, de mensen slimmer maakt dan zou moeten.
Ik zit wel te denken aan een php regel in het verwerkings php script zodat deze niet misbruikt kan worden.
Jaco, weet jij een manier in php om te kijken of een script wordt aangeroepen vanuit een ander domein zodat ik kan exit-en?
Toevoeging op 09/12/2010 14:27:16:
Rene Wennekes op 09/12/2010 14:23:02:
Zeker als Jacco, bedoelt uit goede hart om me te wijzen op veiligheid, de mensen slimmer maakt dan zou moeten.
Ik maak mensen niet slimmer dan zou moeten , ik maak jou iets slimmer dan dat je op dit moment bent ;) dr is een groot verschil :) (niet lullig bedoeld :))
Overigens ga je niets aan referer hebben omdat je hele form gewoon met js kan worden ingevuld en verstuurd, houd dus in dat de referer dan altijd zal kloppen :)
Gewijzigd op 09/12/2010 14:28:11 door Jacco Engel
Dat er enkelen zijn die viagra mailtjes willen versturen ....
Maar 100% beveiliging bestaat er niet.
Maar dit zijdraadje wil ik nu stoppen met discussie. Dus bij deze.
Ik wil nu verder gaan zodat ik weet waar het probleem ligt (client/server-wat?)
Dus Jacco, bedankt voor je bijdrage, maar nu ff geen beveiligingsdiscussie meer.
Verder mis ik formulier controle?
Oh? Sinds wanneer? Volgens mij bedoel je gewoon $_SERVER['REMOTE_ADDR']?
Plus variabele uit de quotes.
Verder kan je het AJAX gedeelte het beste met JQuery doen. Of een dergelijk javascript framework. En gebruik firebug eens om te controleren of de AJAX request goed wordt uitgevoerd?
Gewijzigd op 09/12/2010 15:24:15 door Niels K
Dat wordt dan
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function handleStateChange(data) { // in dit geval is de naam niet zo super gekozen, maar ja ...
alert(data); // De uitvoer van contactsendmail.php zou hier moeten verschijnen.
if (data != "Something went wrong.") {
document.forms[0].reset(); //Wissen van formulier om te voorkomen dat deze nog eens verzonden wordt (spammen).
}
}
function doRequestUsingPOST() {
// ... begin van de functie is onveranderd
queryString = queryString + "&vraag=" + vraag;
var url = "contactsendmail.php?timeStamp=" + new Date().getTime();
$.ajax({
type: "POST",
url: url,
data: queryString,
success: handleStateChange
});
} // End of function doRequestUsingPOST()
alert(data); // De uitvoer van contactsendmail.php zou hier moeten verschijnen.
if (data != "Something went wrong.") {
document.forms[0].reset(); //Wissen van formulier om te voorkomen dat deze nog eens verzonden wordt (spammen).
}
}
function doRequestUsingPOST() {
// ... begin van de functie is onveranderd
queryString = queryString + "&vraag=" + vraag;
var url = "contactsendmail.php?timeStamp=" + new Date().getTime();
$.ajax({
type: "POST",
url: url,
data: queryString,
success: handleStateChange
});
} // End of function doRequestUsingPOST()
Uiteraard jQuery downloaden en in je site laden ...
Gewijzigd op 09/12/2010 15:33:43 door Kris Peeters
Hier kunnen overigs een paar elementen niet geladen worden in IE8