ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.com< กดยุบ (ห้องยกเลิกการใช้งาน)TWGท่านๆๆครับ CGI - Forms to mail มันจะทำผมแทบคลั่งละครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ท่านๆๆครับ CGI - Forms to mail มันจะทำผมแทบคลั่งละครับ  (อ่าน 3318 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
hohoho
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 27



ดูรายละเอียด
« เมื่อ: 12 กันยายน 2006, 21:30:43 »

มือใหม่สุดๆกับการทำฟอร์มทูเมล์ครั้งแรก ผมลองทำแล้วมันไม่ทำงานนะครับ ใครพอช่วยบอกทีนะครับว่าผมไปทำผิดตรงไหนเนี่ย




ตรงนี้ผมเขียน html ไว้อย่างนี้นะครับ

<form action="http://fusion.dns-systems.net/cgi-bin/Form.cgi" method="post">
          <input type="hidden" name="recipient" value="abc@abc.com">
          <p><span class="style103">Name :</span>            
            <input name="name" type="text" size="45">
</p>
          <p><span class="style103">Email :</span>            <input name="email" type="text" size="45"> </p>
          <p class="style102">Your Order Items or Your Suggestions: </p>
          <p>
            <textarea name="order" cols="60" rows="7"></textarea>         </p>
          <p><input name="" type="submit" value="SEND">&nbsp;</p>
        </form>



ตรงนี้ที่ server ผมใช้ แบบนี้นะครับ

#!/usr/bin/perl -wT
use CGI qw(:standard);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
use strict;

print header;
print start_htm("Results");

# Set the PATH environment variable to the same path
# where sendmail is located:

$ENV{PATH} = "/usr/sbin";

# open the pipe to sendmail
open (MAIL, "|/usr/sbin/sendmail -oi -t") or
    &dienice("Can't fork for sendmail: $!\n");

# change this to your own e-mail address
my $recipient = 'abc@abc.com';

# Start printing the mail headers
# You must specify who it's to, or it won't be delivered:

print MAIL "To: $recipient\n";

# From should probably be the webserver.

print MAIL "From: nobody\@abc.com\n";

# print a subject line so you know it's from your form cgi.

print MAIL "Subject: Form Data\n\n";

# Now print the body of your mail message.
foreach my $p (param()) {
    print MAIL "$p = ", param($p), "\n";
}

# Be sure to close the MAIL input stream so that the
# message actually gets mailed.

close(MAIL);

# Now print a thank-you page

print <<EndHTM;
<h2>Thank You</h2>
<p>Thank you for writing!</p>
<p>Return to our <a href="index.htm">home page</a>.</p>
EndHTM

print end_htm;

# The dienice subroutine handles errors.

sub dienice {
    my($errmsg) = @_;
    print "<h2>Error</h2>\n";
    print "<p>$errmsg</p>\n";
    print end_htm;
    exit;
}

สรุปมันไปผิดตรงไหนเนี่ยครับ ToT ขอบคุณล่วงหน้าเลยครับสำหรับทุกท่านที่ช่วยตอบ


**** ความรู้ในการเขียนนี่มั่วมาจากการหาใน google จนจะหมดแรงละครับ แต่อยากให้ให้สำเร็จจนได้นะครับ****
บันทึกการเข้า
th_____7@hotmail.com
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 62
ออฟไลน์ ออฟไลน์

กระทู้: 8,191



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 12 กันยายน 2006, 21:44:19 »

อ้างจาก: "hohoho"

**** ความรู้ในการเขียนนี่มั่วมาจากการหาใน google จนจะหมดแรงละครับ แต่อยากให้ให้สำเร็จจนได้นะครับ****


ผมไม่ทราบว่าเหตุผลที่ต้องเขียนเองเพราะต้องการพัฒนาทักษะในการเขียนโปรแกรม หรือว่าแค่ต้องการเอาไปใช้งาน

ถ้าแค่ต้องการนำไปใช้งานผมขออนุญาติแนะนำ script สำเร็จรูปซึ่งอยู่ในรูปแบบภาษา php

http://www.hotscripts.com/PHP/...ams/Form_Processors/index.html
บันทึกการเข้า
iamnewbies
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 28
ออฟไลน์ ออฟไลน์

กระทู้: 9,635



ดูรายละเอียด
« ตอบ #2 เมื่อ: 12 กันยายน 2006, 21:49:32 »

ใช้ php ง่ายกว่ามั้งคับ
บันทึกการเข้า

ุอิอิ  พลุบๆโพล่ๆ  เข้าๆออกๆ เสียวๆ
hohoho
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 27



ดูรายละเอียด
« ตอบ #3 เมื่อ: 12 กันยายน 2006, 23:27:08 »

คือจริงๆผมอยากได้แค่แบบฟอร์มให้ลูกค้ากรอกเมล์และเขียนออเดอร์นะครับ (กำลังทำเวปขายของนอกอีเบย์นะครับ) ก็เลยใช้ dream ร้างแบบฟอร์มขึ้นมา คราวนี้ปัญหาคือผมไม่รู้ว่าจะลิ้งค์ฟอร์มที่ว่ากับ serverยังไงดีนะครับ ใจจริงยังคิดว่าจะให้มันไปลง gmailเลยด้วยซ้ำ จะได้ไม่ยุ่งยากดี แต่ยังไงๆ ออเดอร์ก็ไม่ไปที่เมล์อยู่ดีนะครับ อีกอย่างโปรแกรมหลายๆอันมันเหมือนจะให้เราใช้ฟรีแต่มันก็ดักอีเมล์ลูกค้าไปด้วย ผมไม่อยากให้พวกเขาเจอสแปมเมล์นะครับ ใครพอรู้ทางออกปัญหานี้บ้างนะครับ เห็น server ที่ผมใช้มันรองรับ PHP Version 4.3 , CGI-BIN , MySQL v4.1 , UNLIMITED POP3 Mailboxes  เลยคิดจะลองทำดูนะครับ

ผมมือใหม่สุดๆจริงๆนะครับ
บันทึกการเข้า
kahn
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 59
ออฟไลน์ ออฟไลน์

กระทู้: 514



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 12 กันยายน 2006, 23:31:59 »

chmod 755 form.cgi  ครับ

<form action="http://fusion.dns-systems.net/cgi-bin/Form.cgi" method="post">
ตรงนี้ไม่ทราบว่าเก็บสคริบไว้ที่ http://fusion.dns-systems.net/cgi-bin/Form.cgi  หรือครับ ลองเข้าแล้วมัน 404 นะครับ ต้องเปลี่ยนเป้นที่เก็บสคริบไว้ http://www.yourdomain.com/cgi-bin/form.cgi ประมาณนี้ อย่าลืมเปลี่ยน Form.cgi   เป็น form.cgi นะครับ ตัวใหญ่เล้กมีผล
แล้วก็
<input type="hidden" name="recipient" value="abc@abc.com">
ตรงนี้เปลี่ยนเป็นเมล์ของตัวเองด้วยนะครับ  Smiley
บันทึกการเข้า

>>> โปรโมชั่น Blog Magic สุดคุ้ม นาน ๆ มีที ช้าอดนะจ้าาา คลิกเลย Blog Magic Support Forums << pm สอบถามรายละเอียดได้ที่ Support Forums จะตอบรวดเร็วกว่านะครับผม
hohoho
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 27



ดูรายละเอียด
« ตอบ #5 เมื่อ: 13 กันยายน 2006, 00:13:34 »

อ้างจาก: "kahn"
chmod 755 form.cgi
^^^^ มันคืออะไรหรือครับ

แล้วนี่แหละครับในเวปที่ผมใช้ โฮสต์อยู่ก็มี help บอกมาประมาณนี้นะครับ

โค๊ด:
FORM-TO-MAIL 
 
 
The Form-To-Mail script allows you to put a contact form on your web-site. The contents of this form are sent to a specified E-mail address on completion.

Please note that Form-To-Mail should NOT to be used for sending sensitive data such as credit card information!
To use a Form on your site, follow the instructions below:


Click 'install' on the previous page, and add the E-mail address that you want the form sent to.
Use the following example code to add a form to your web-site. You will need to alter the E-mail address in red:

 <form method="post" action="http://fusion.dns-systems.net/cgi-bin/Form.pl">
    <input type="hidden" name="recipient" value="your@address.com">
    First Name: <input type="text" name="firstname" size="30"><br>
    Surname: <input type="text" name="surname" size="30"><br>
    Message: <textarea name="message" rows="5" cols="30"></textarea><br>
    <input type="submit" value="Send">
 </form>
 More information about the form fields available can be found HERE

Back



Click 'install' on the previous page <<< อินสตอลอะไรละเนี่ย

ส่วนที่คุณ kahn บอกว่า

อ้างถึง
ต้องเปลี่ยนเป้นที่เก็บสคริบไว้ http://www.yourdomain.com/cgi-bin/form.cgi ประมาณนี้
อันนี้ผมไม่รู้ว่าเข้าใจถูกไหมนะครับ คือ โฮสต์ที่ผมใช้อยู่มันสามารถใช้ร่วมกับโดเมนได้หลายตัว เวปแต่ละเวปเลยแบ่งพื้นที่แบบนี้ ไฟล์ก็สร้างเป็นโฟลเดอร์ตามชื่อเวป แล้วก็เอาไปไว้ใน htdocs อันนี้ไม่มีปัญหาครับ ลองกับพวก adsense มาหลายอันละ แต่กับสคริปค์นี่ก็เอาไปไว้ ที่ cgi-bin ก็เอาไปไว้งั้นๆเลยไม่มีการสร้างโฟลเดอร์ที่ตั้งตามชื่อเวปคร่อมไว้นะครับ
บันทึกการเข้า
kahn
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 59
ออฟไลน์ ออฟไลน์

กระทู้: 514



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 13 กันยายน 2006, 00:51:12 »

chmod เป็นการเปลี่ยนค่า permission ของไฟล์ครับ ค่า 755 คือให้ execute ได้ ถ้าโฮสคุณสามารถ telnet หรือ ssh ได้ก็ใช้คำสั่ง chmod 755 filename  
ได้เลยครับ หรือใช้โปรแกรมพวก cuteftp คลิกขวาตรงชื่อไฟล์นั้นแล้วเลือก Property / CHMOD  ใส่ permission เป็น 755 ครับ ไฟล์ cgi ของคุณถึงจะทำงานได้

ส่วน help ของโฮสที่คุณว่ามา ผมว่ามันน่าจะเป็นสคริบที่เค้าเตรียมไว้ให้แล้วน่ะครับ สามารถใช้ได้เลย โดยกด Install แล้วใส่ email ของคุณลงไป หลังจากนั้นเอาโค๊ดนี้ไปแปะหน้าเวบของคุณเปลี่ยนตัวสีแดงเป็น email ของคุณที่ต้องการรับข้อความ

<form method="post" action="http://fusion.dns-systems.net/cgi-bin/Form.pl">
    <input type="hidden" name="recipient" value="your@address.com">
    First Name: <input type="text" name="firstname" size="30"><br>
    Surname: <input type="text" name="surname" size="30"><br>
    Message: <textarea name="message" rows="5" cols="30"></textarea><br>
    <input type="submit" value="Send">
 </form>
บันทึกการเข้า

>>> โปรโมชั่น Blog Magic สุดคุ้ม นาน ๆ มีที ช้าอดนะจ้าาา คลิกเลย Blog Magic Support Forums << pm สอบถามรายละเอียดได้ที่ Support Forums จะตอบรวดเร็วกว่านะครับผม
7
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 16
ออฟไลน์ ออฟไลน์

กระทู้: 1,353



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 13 กันยายน 2006, 01:20:37 »

ใช้ PHP ได้ก็บรรทัดเดียวเองครับ

<?php
mail("joecool@example.com", "My Subject", "Line 1\nLine 2\nLine 3");
?>

ผมเอาตัวอย่างมาจาก PHP Manual นะครับ ทดลองดู
บันทึกการเข้า

iamnewbies
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 28
ออฟไลน์ ออฟไลน์

กระทู้: 9,635



ดูรายละเอียด
« ตอบ #8 เมื่อ: 13 กันยายน 2006, 10:02:11 »

form mail ใช้งงานง่าย ไปใช่ของนาย matt ดีกว่ามั้งครับ


http://www.scriptarchive.com/formmail.html


ผมใช้ของ php 'ง่ายกว่า error น้อย

http://www.dtheatre.com/scripts/formmail.php

http://www.boaddrink.com/projects/phpformmail/
บันทึกการเข้า

ุอิอิ  พลุบๆโพล่ๆ  เข้าๆออกๆ เสียวๆ
hohoho
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 27



ดูรายละเอียด
« ตอบ #9 เมื่อ: 14 กันยายน 2006, 01:46:02 »

:evil:  ตอนนี้เอ๋อไปละครับ ลบออกหมดเล้วครับ ว่าจะเริ่มทำใหม่ตามที่ท่านๆได้เสนอแนะมาครับ เริ่มจากลิ้งค์ต่างๆของคุณเอกก่อนเลยครับ  :idea: ยังไงก็ต้องเสร็จให้ได้อะครับเจ้า form to mail เนี้ย ยังไงก็ขอบคุณทุกท่านมากเลยครับ ที่มาช่วยตอบ ยังไงแล้วไม่ต้องห่วงครับเด๋ยวมีคำถามอีกจะหน้าด้านมาถามใหม่ครับ  Tongue

...............24 ชม.ที่ผ่านไป ได้หัวฟูๆมาอย่างเดียวเลย   :cry:
บันทึกการเข้า
hohoho
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 27



ดูรายละเอียด
« ตอบ #10 เมื่อ: 14 กันยายน 2006, 06:48:35 »

เอาง่ายๆละครับ ในhostบอกไว้อย่างไรก็ทำตามนั้นเลยครับ

โค๊ด:
<form method="post" action="http://fusion.dns-systems.net/cgi-bin/Form.pl"> 
    <input type="hidden" name="recipient" value="your@address.com">
    First Name: <input type="text" name="firstname" size="30"><br>
    Surname: <input type="text" name="surname" size="30"><br>
    Message: <textarea name="message" rows="5" cols="30"></textarea><br>
    <input type="submit" value="Send">
 </form>


สมมติผมทำฟอร์มแบบนี้เสร็จ ตรงเมล์ก็แก้เป็นเมล์ที่ผมต้องการแล้ว คราวนี้ที่ โฮสต์ ผมต้องทำอะไรบ้างละครับ เพราะลองอัพโหลดแล้วลองกรอกข้อความไป เช็คดูว่าใช้ได้หรือเปล่า แล้วเจออย่างนี้นะครับ

Error: Invalid Recipient
Please make sure you have added this address to your control panel, and you have included a recipient field in your form.

แน่นอนว่า domainผมก็ต้องไปจัดการเรียบร้อยแล้ว ส่วน recipient field  ผมก็ทดลองใช้ hotmailที่ผมใช้งานได้อยู่นะครับ เลยไม่เข้าใจว่าทำอะไรผิดกันแน่ งงงงงงง  :oops:
บันทึกการเข้า
hohoho
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 27



ดูรายละเอียด
« ตอบ #11 เมื่อ: 14 กันยายน 2006, 07:00:48 »

เอ๊ะหรือว่า ต้องสร้าง Form.pl หลอกๆไปไว้ที่ cgi bin แบบเป็นไฟล์ปล่าวๆ ใช้ notepad สร้างใช่ปล่าวครับ T_T งงจนสติเบลอละครับ
บันทึกการเข้า
iamnewbies
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 28
ออฟไลน์ ออฟไลน์

กระทู้: 9,635



ดูรายละเอียด
« ตอบ #12 เมื่อ: 14 กันยายน 2006, 09:24:51 »

โค๊ด:
<input type="hidden" name="recipient" value="your@address.com"> 


ใส่ชื่อคนรับอีเมล คืออีเมลเรานะครับ

<input type="hidden" name="recipient" value="your@hotmail.com">

ไฟล์ frommail เปลี่ยนเป้น 755 มั้งครับ
บันทึกการเข้า

ุอิอิ  พลุบๆโพล่ๆ  เข้าๆออกๆ เสียวๆ
tosakp
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 113
ออฟไลน์ ออฟไลน์

กระทู้: 1,960



ดูรายละเอียด
« ตอบ #13 เมื่อ: 14 กันยายน 2006, 09:36:07 »

ลองดูที่นี่ครับ เป็นภาษาไทย  ใน Code มี comment เป็นภาษาไทยด้วย

http://www.codetukyang.com/php/scripts/formmail.htm
บันทึกการเข้า

hohoho
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 27



ดูรายละเอียด
« ตอบ #14 เมื่อ: 17 กันยายน 2006, 06:21:49 »

ขอบคุณทุกๆคนมากเลยครับ ตอนนี้สำเร็จแล้วครับ ด้วยคำแนะนำของทุกท่าน ขอบคุณมากๆๆๆเลยครับ  Smiley
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์