PDA

Volledige versie bekijken : contact form verzend niet?


jeroentjaaa
%Europe/Berlin %561 %2010, 14:28
Hoi Allemaal,

Ik heb een contact formulier met flash gemaakt, natuurlijk gekoppeld aan een php...

Als ik hem echter test blijft hij hangen bij het versturen...

Zou iemand mij kunnen helpen?

stop();
loadVariables("http://www.somedomain.com/send_email.php" ,this, "POST");
message_status.text = "versturen...";
var i = 0;
function check_status()
{
if( success == "yes" )
{
message_status.text = "Bericht verstuurt dank u wel";
play();
}
else if( success == "no" )
{
message_status.text = "Bericht niet verzonden, probeert u het nogmaals.";
gotoAndStop("stop");;
trace ("");
}
if( i >= 20 )
clearInterval(interval_id);
i++;
}
var interval_id = setInterval(check_status, 400);
<?php
$contact_name = $_POST['name'];
$contact_email = $_POST['email'];
$contact_subject = $_POST['subject'];
$contact_message = $_POST['message'];

if( $contact_name == true )
{
$sender = $contact_email;
$receiver = "ik@maastricht.nl";
$client_ip = $_SERVER['REMOTE_ADDR'];
$email_body = "Name: $contact_name \nEmail: $sender \nSubject: $contact_subject \nMessage: $contact_message \nIP: $client_ip";
$extra = "From: $sender\r\n" . "Reply-To: $sender \r\n" . "X-Mailer: PHP/" . phpversion();

if( mail( $receiver, $contact_subject, $email_body, $extra ) )

{
echo "success=yes";
}
else
{
echo "success=no";
}
}
?>
Ik heb dit script eerder gebruikt en toen werkte dit wel...
Iemand enig idee?

Alvast bedankt,
Jeroen

cornedor
%Europe/Berlin %857 %2010, 21:34
Heb je de flash debugger geinstaleerd? zoja krijg je dan een security error. als je geen flash debugger hebt geinstaleerd is het wel slim om te doen omdat je daar heel veel informatie mee kan vinden.

excited
%Europe/Berlin %923 %2010, 23:09
Wat bedoel je met blijft hangen? Wordt er aangegeven dat er niks is verstuurt of verstuurt hij niks zonder dat te melden? Als het laatste het geval is zou het goed kunnen dat jouw webhost php mail niet toe staat (vrijwel altijd het geval bij een gratis host).

Jan
%Europe/Berlin %012 %2010, 01:18
$contact_name = $_POST['name'];
if( $contact_name == true )

Werkt dat zo in php? Ik zou isset gebruiken maar misschien kan het zoals jij het doet (php is een gekke taal), maar het lijkt me dat je naam dan ook letterlijk "true" moet zijn.

if( mail( $receiver, $contact_subject, $email_body, $extra ) )

{

Een lege regel na een if is 'gevaarlijk' want je loopt de kans dat je hele if constructie daar dan ook eindigt.

if( i >= 20 )
clearInterval(interval_id);
i++;
}
var interval_id = setInterval(check_status, 400);

Ongeacht hoe snel de verbinding is neem jij aan dat er binnen 0.4*20 (8 seconden) een antwoord gaat zijn. Dat lijkt me op zich wel voldoende maar ik zou er toch niet erg op vertrouwen.

In plaats van loadVariables en die nogal onhandige manier van status checken zou je beter LoadVars gebruiken: http://www.flashfocus.nl/forum/showpost.php?p=345710&postcount=2

Als ik hem echter test blijft hij hangen bij het versturen...
Als je daarmee bedoelt dat in Firefox die melding onderaan in je statusbalk (bezig met versturen) nooit weggaat, dan hoef je je verder geen zorgen te maken. Dat is een bug in firefox icm flash zullen we maar zeggen. Zijn genoeg google hits voor te vinden, maar het behoeft geen oplossing.

Jan

PS: Misschien is het geen slecht idee om die url en je email adres uit je post te verwijderen ivm spam en andere misbruik van je mailform.

EDIT: zelf maar even voor je verwijderd. :)