หน้า: [1] 2
 
ผู้เขียน หัวข้อ: ทำ Contact Form ใน Flash  (อ่าน 12296 ครั้ง)
0 สมาชิก และ 1 ขาจร กำลังดูหัวข้อนี้
พยายามรื้อแงะแกะเกาไอ้ไฟล์ตัวนี้แล้ว แต่ยังไม่ประสบความสำเร็จ
พอดีเจองานที่ต้องแก้ Flash โดยที่ลูกค้าขอให้ใส่ Form Mail เข้าไปเพิ่ม (จริงๆหาเรื่องงานเข้าให้ตัวเองแท้ๆ)
ทีแรกก็คิดว่าง่ายๆอ่ะนะ ไปหา Source มาไล่อยู่ 2-3 เจ้า ก็ยังทำไม่ได้
พอดีลูกค้าไม่ได้เร่งงานอะไรมาก (ถ้าทำไม่ได้ สุดท้ายคงจ้างคนที่ทำเป็นทำอ่ะแหล่ะ)
แต่ทีนี้อยากจะรู้เอง ว่ามันเพราะอะไร และทำยังไง

ไฟล์ต้นฉบับอยู่ด้านล่างครับ จากเว็บ Kirupa
ประกอบไปด้วยไฟล์ .FLA (ที่เป็นโครงฟอร์มเมล์) และตัว Email.php (ที่เป็นโปรแกรมส่งเมล์)
ปัญหาก็คือมันส่งเมล์ไม่ไป  หมีโหด~ ลองไล่แล้วไล่อีก คิดว่าไม่มีอะไรแล้ว แต่มันก็ยังส่งไม่ไป
อยากจะรู้ปัญหาว่ามันเพราะอะไร แค่นั้น (รู้สึกไฟล์ที่แจกตัวนี้ จะมีคนที่เจอปัญหาเดียวกับผมอยู่มากมาย)
บันทึกการเข้า
โครงสร้างของไฟล์ Flash ตัวนี้ เป้นในรูปแบบง่ายๆ

1.) ตัวโครงสร้างเขาจะทำ Form ทั้งหมดเป็น MC (movie clip) โดยตั้งชื่อว่า "form"
โดยจะมี Fill ด้านในประมาณ 3-4 Fill ซึ่งกำหนดชื่อ Variable เอาไว้ในแต่ละ Fill

2.) ตัว Button จะมีคำสั่งส่งค่า Var ของ Fill ทั้งหมดที่อยู่ใน MC ชื่อ "form" ไปยังไฟล์ email.php

เท่าที่ดูมันไม่น่าจะผิดอะไร หรือว่าผิดแต่ไอ้เราโง่ก็ไม่รู้   น้องดำ
บันทึกการเข้า
มาที่ตัวไฟล์ email.php
ผมตะหงิดว่ามันอาจจะผิดที่ตัวนี้รึเปล่าไม่รู้
ตามหลักการง่ายๆ แค่เปลี่ยนชื่อ Email ที่เราต้องการให้ส่งถึง กับชื่อ Subject ก็น่าจะใช้การได้แล้ว
แต่ก็ยังใช้ไม่ได้ ....ลองปรับไฟล์ email.php บน Hosting ให้เป็น "777" ก็ยังไม่ได้อยู่ดี
สำหรับ php คือจนปัญญาที่จะงมกับมันนะ ค่อนข้างไม่ถนัดโปรแกรมเท่าที่ควร

อันนี้คือ code ไอ้ตัวสีแดงนี่คือให้ใส่ email ที่เราต้องการส่งหา กับชื่อหัวข้อที่บอก

แอบอ้าง
<?php
/***************************************************\
 * PHP 4.1.0+ version of email script. For more
 * information on the mail() function for PHP, see
 * http://www.php.net/manual/en/function.mail.php
\***************************************************/


// First, set up some variables to serve you in
// getting an email.  This includes the email this is
// sent to (yours) and what the subject of this email
// should be.  It's a good idea to choose your own
// subject instead of allowing the user to.  This will
// help prevent spam filters from snatching this email
// out from under your nose when something unusual is put.

$sendTo = "chung@hotmail.com";
$subject = "My Flash Email";

// variables are sent to this PHP page through
// the POST method.  $_POST is a global associative array
// of variables passed through this method.  From that, we
// can get the values sent to this page from Flash and
// assign them to appropriate variables which can be used
// in the PHP mail() function.


// header information not including sendTo and Subject
// these all go in one variable.  First, include From:
$headers = "From: " . $_POST["firstName"] ." ". $_POST["lastname"] . "<" . $_POST["email"] .">\r\n";
// next include a replyto
$headers .= "Reply-To: " . $_POST["email"] . "\r\n";
// often email servers won't allow emails to be sent to
// domains other than their own.  The return path here will
// often lift that restriction so, for instance, you could send
// email to a hotmail account. (hosting provider settings may vary)
// technically bounced email is supposed to go to the return-path email
$headers .= "Return-path: " . $_POST["email"];

// now we can add the content of the message to a body variable
$message = $_POST["message"];


// once the variables have been defined, they can be included
// in the mail function call which will send you an email
mail($sendTo, $subject, $message, $headers);

?>

« แก้ไขครั้งสุดท้าย: 26 ส.ค. 2008, 00:00 น. โดย 8e88 » บันทึกการเข้า
ไอ้ตัวนี้คุ้นๆ ครับ ง่ะ เหมือนจะเคยใช้มาก่อน
แต่จำไม่ได้ว่าในที่สุดก็เปลี่ยนไปใช้ตัวอื่นหรือเปล่าเหมือนกัน

พี่ฉึ่งลองให้มันส่งไปที่ gmail ยังครับ เผื่อ hotmail มันตีเป็น junk
(แต่ถ้ามันตีเป็น junk จริงๆ ก็คงเป็นอันว่าไม่เวิร์กล่ะ)
บันทึกการเข้า

ทำมาหากินด้วยการเปิดร้านสกรีนเสื้อยืด จ้ะ
ไอ้ตัวนี้มีปัญหาอีกอย่างคือมันจะไปเข้า Junk อ่ะแหล่ะ แต่ทีนี้ยังทำให้มันส่งไม่ได้ คือปัญหา
ตอนนี้ลองเขียนเองอยู่อีกวิธี ดีที่ลูกค้าไม่เร่งมาก เลยมีเวลางมหน่อย  เกย์ออก

Action Script สำหรับ form mail
http://www.thaiflashdev.com/home/index.php?topic=1511.0
บันทึกการเข้า


ต้องมีเมลล์เซอร์เวอร์ด้วยนะครับ
บันทึกการเข้า

เราจะต้องการอะไรมากมายไปกว่า อะไรมากมาย
ทำไมมันยากกว่าที่คิดแฮะ ว่าจะทำซักหน่อยอดเรยตู

T T เวบพอร์ต ไม่มี contact ยังไงไม่รู้ไว้ผมจะหาทางต่อไป

 ชิ
บันทึกการเข้า

ถ้าทดสอบในเครื่องตัวเองต้องลง Mail Server ด้วยครับ ไม่งั้นมันจะส่งไม่ไปตอนนี้ผมใช้ตัว ArGoSoft อยู่ครับ หรือไม่ก็เอาไปลองที่ Server จริงเลยก็ได้ครับ
บันทึกการเข้า

<a href="http://www.kapom.com/bannerKapom.swf" target="_blank">http://www.kapom.com/bannerKapom.swf</a>
ตอนนี้โรงเรียนย้ายไปอยู่บ้านกลางเมืองแยก รัชดา-ลาดพร้าวแล้วนะคร๊าบบ
ผมทดสอบบน host ที่ผมใช้มันก็ส่งผ่านนะครับ

สงสัยว่า server ที่ใช้นี่รองรับ php และเค้ายอมให้ส่งเมลผ่าน php ใช่ไหมครับ

ผมว่าทดสอบส่งเมลก่อนดีกว่าครับ โดยลองสร้างไฟล์ตามนี้ เซฟใส่ชื่อ testmail.php (จริงๆอะไรก็ได้ครับ)

โค้ด:
<?php
if(mail("chung@hotmail.com","TEST MAIL FROM PHP SCRIPT","JUSTทดสอบ TEST","From: chungxxx@hotmail.com"))
echo 
"Sent";
else echo 
"Not Sent";
?>

แล้วลองเรียกไฟล์นี้ผ่านเว็บเบราเซอร์ดูครับ ถ้าขึ้นมา Sent ก็แสดงว่าส่งได้ เดี๋ยวยังไงผมจะมาช่วยหาอีกทีนะครับ
บันทึกการเข้า
ตกลง แก้ไขได้ไม๊ครับ ผมก็เจอปัญหา คล้าย ๆ กัน คือส่งเมล์ไม่ไปเหมือนกัน
ผมก็เพิ่งจะเคยลอง เขียน Form Flash CS3 + PHP ก็เจอปัญหาอย่างที่ว่านี่หละครับ

อ้อ..ส่วน โค๊ด testmail.php ของคุณ dogdoyx

ผมลองที่ host ที่ผมใช้งานอยู่ มันแสดงผลอย่างนี้ครับ

Warning: mail(): Failed to connect to mailserver at "smtp.besthost19.com" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in d:\ip1\saunaplace.net\www\test\testmailform.php on line 2
Not Sent


เข้าใจว่าน่าจะเกี่ยวข้องกับ SMTP ของ Host ที่ใช้งานอยู่

ยังไงรอผู้รู้ช่วยไขข้อข้องใจด้วยครับ.. ฮิ้ววว
บันทึกการเข้า
บาง host เค้าจะมีการ set SMTP ที่แตกต่างออกไป เช่นไม่ได้ใช้ localhost หรือว่ากัน port 25 หรือ etc.
ตรงนี้คิดว่าต้องลองเช็คกับ admin ของ host ที่ใช้ ส่วนใหญ่ที่เคยเจอเค้าก็จะมีวิธี set แบบอ้อมให้มันใช้ได้
ทั้งนี้ก็ขึ้นกับระบบความปลอดภัยของ host ที่เค้าตั้งไว้ครับ
บันทึกการเข้า
ปกติผมใช้ตัวนี้เลยครับ ทดสอบแล้วใช้งานได้ๆ

ส่วนที่มันลง Junk ลองแก้ตรง

$headers = "From: " . $_POST["firstName"] ." ". $_POST["lastname"] . "<" . $_POST["email"] .">\r\n";

ให้เป็นอีเมลที่เรารู้จักอะครับ หรืออีเมลตัวเองก็ได้
ที่มันลง Junk เพราะมันไม่รู้จักอีเมลคนส่งมาอะครับ
บันทึกการเข้า

ขอบคุณมากครับสำหรับคำแนะนำ ของคุณ X Saint และอาจารย์ก่อ(กำลังจะเป็นอาจารย์เดือนหน้าแล้วนิ..ดัน ๆ)

แบบว่ารอเช็คมาหลายวันแล้ว..

ไอ้เรื่อง ขอให้ Hosting ช่วย Set SMTP ให้นี่..ผมหนักใจชะมัดเลย ส่งเมล์ไปแจงประมาณ 4 วันแล้วยังเฉย...

ผมจะรอดูอาทิตย์หน้าเนี๊ยะ ถ้าไม่ได้ คงเปลี่ยนที่ใหม่แล้วหละ

มีที่ไหน ที่ดี ๆ ราคาพอประมาณ แล้วก็ไม่มีปัญหาอย่างนี้บ้างไม๊ครับ ช่วยแนะนำกันหน่อยนะ...

ขอบคุณนะครับ.. เจ๋ง
บันทึกการเข้า
..ของพี่โอ้เอ้เลยครับ  เจ๋ง

(พี่โอ้เอ้ ขอค่าสปอนเซอร์หลังไมค์ด้วยนะครับ)
บันทึกการเข้า

..ของพี่โอ้เอ้เลยครับ  เจ๋ง

(พี่โอ้เอ้ ขอค่าสปอนเซอร์หลังไมค์ด้วยนะครับ)


ขอ link ของเวบให้หน่อยได้ไม๊ครับ แบบว่า Host ที่เช่าอยู่กำลังจะหมดสิ้นเดือนนี้อะ

วันนี้ผมโทรไปคุยกับ Technician Support เค๊าก็บอกว่าเดี๋ยวจัดการให้ แล้วให้ผมรอ

การติดต่อทั้งเมล์ ทั้งทางโทรศัพท์ ก็รอไปเถอะ...ยังไม่ติดต่อมาเลย เซ็งจัง...

ช่วยรบกวนแนะนำด้วยครับ ขอบคุณมากๆครับ...
บันทึกการเข้า
หน้า: [1] 2
 
 
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2007, Simple Machines | Thai language by ThaiSMF Valid XHTML 1.0! Valid CSS!