ThaiSEOBoard.com

< กดยุบ (ห้องยกเลิกการใช้งาน) => TWG => ข้อความที่เริ่มโดย: hohoho ที่ 12 กันยายน 2006, 21:30:43



หัวข้อ: ท่านๆๆครับ CGI - Forms to mail มันจะทำผมแทบคลั่งละครับ
เริ่มหัวข้อโดย: hohoho ที่ 12 กันยายน 2006, 21:30:43
มือใหม่สุดๆกับการทำฟอร์มทูเมล์ครั้งแรก ผมลองทำแล้วมันไม่ทำงานนะครับ ใครพอช่วยบอกทีนะครับว่าผมไปทำผิดตรงไหนเนี่ย


(http://www.upfile.us/stores/a.gif)

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

<form action="http://fusion.dns-systems.net/cgi-bin/Form.cgi" method="post">
          <input type="hidden" name="recipient" value="[email protected]">
          <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>

(http://www.upfile.us/stores/a40db1.gif)

ตรงนี้ที่ 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 = '[email protected]';

# 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 จนจะหมดแรงละครับ แต่อยากให้ให้สำเร็จจนได้นะครับ****


หัวข้อ: Re: ท่านๆๆครับ CGI - Forms to mail มันจะทำผมแทบคลั่งละครับ
เริ่มหัวข้อโดย: [email protected] ที่ 12 กันยายน 2006, 21:44:19
อ้างจาก: "hohoho"

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


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

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

http://www.hotscripts.com/PHP/Scripts_and_Programs/Form_Processors/index.html


หัวข้อ: ท่านๆๆครับ CGI - Forms to mail มันจะทำผมแทบคลั่งละครับ
เริ่มหัวข้อโดย: iamnewbies ที่ 12 กันยายน 2006, 21:49:32
ใช้ php ง่ายกว่ามั้งคับ


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

ผมมือใหม่สุดๆจริงๆนะครับ


หัวข้อ: ท่านๆๆครับ CGI - Forms to mail มันจะทำผมแทบคลั่งละครับ
เริ่มหัวข้อโดย: kahn ที่ 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="[email protected]">
ตรงนี้เปลี่ยนเป็นเมล์ของตัวเองด้วยนะครับ  :)


หัวข้อ: ท่านๆๆครับ CGI - Forms to mail มันจะทำผมแทบคลั่งละครับ
เริ่มหัวข้อโดย: hohoho ที่ 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="[email protected]">
    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 ก็เอาไปไว้งั้นๆเลยไม่มีการสร้างโฟลเดอร์ที่ตั้งตามชื่อเวปคร่อมไว้นะครับ


หัวข้อ: ท่านๆๆครับ CGI - Forms to mail มันจะทำผมแทบคลั่งละครับ
เริ่มหัวข้อโดย: kahn ที่ 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="[email protected]">
    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>


หัวข้อ: ท่านๆๆครับ CGI - Forms to mail มันจะทำผมแทบคลั่งละครับ
เริ่มหัวข้อโดย: 7 ที่ 13 กันยายน 2006, 01:20:37
ใช้ PHP ได้ก็บรรทัดเดียวเองครับ

<?php
mail("[email protected]", "My Subject", "Line 1\nLine 2\nLine 3");
?>

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


หัวข้อ: ท่านๆๆครับ CGI - Forms to mail มันจะทำผมแทบคลั่งละครับ
เริ่มหัวข้อโดย: iamnewbies ที่ 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/


หัวข้อ: ท่านๆๆครับ CGI - Forms to mail มันจะทำผมแทบคลั่งละครับ
เริ่มหัวข้อโดย: hohoho ที่ 14 กันยายน 2006, 01:46:02
:evil:  ตอนนี้เอ๋อไปละครับ ลบออกหมดเล้วครับ ว่าจะเริ่มทำใหม่ตามที่ท่านๆได้เสนอแนะมาครับ เริ่มจากลิ้งค์ต่างๆของคุณเอกก่อนเลยครับ  :idea: ยังไงก็ต้องเสร็จให้ได้อะครับเจ้า form to mail เนี้ย ยังไงก็ขอบคุณทุกท่านมากเลยครับ ที่มาช่วยตอบ ยังไงแล้วไม่ต้องห่วงครับเด๋ยวมีคำถามอีกจะหน้าด้านมาถามใหม่ครับ  :P

...............24 ชม.ที่ผ่านไป ได้หัวฟูๆมาอย่างเดียวเลย   :cry:


หัวข้อ: ท่านๆๆครับ CGI - Forms to mail มันจะทำผมแทบคลั่งละครับ
เริ่มหัวข้อโดย: hohoho ที่ 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="[email protected]">
    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:


หัวข้อ: ท่านๆๆครับ CGI - Forms to mail มันจะทำผมแทบคลั่งละครับ
เริ่มหัวข้อโดย: hohoho ที่ 14 กันยายน 2006, 07:00:48
เอ๊ะหรือว่า ต้องสร้าง Form.pl หลอกๆไปไว้ที่ cgi bin แบบเป็นไฟล์ปล่าวๆ ใช้ notepad สร้างใช่ปล่าวครับ T_T งงจนสติเบลอละครับ


หัวข้อ: ท่านๆๆครับ CGI - Forms to mail มันจะทำผมแทบคลั่งละครับ
เริ่มหัวข้อโดย: iamnewbies ที่ 14 กันยายน 2006, 09:24:51
โค๊ด:
<input type="hidden" name="recipient" value="[email protected]"> 


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

<input type="hidden" name="recipient" value="[email protected]">

ไฟล์ frommail เปลี่ยนเป้น 755 มั้งครับ


หัวข้อ: ท่านๆๆครับ CGI - Forms to mail มันจะทำผมแทบคลั่งละครับ
เริ่มหัวข้อโดย: tosakp ที่ 14 กันยายน 2006, 09:36:07
ลองดูที่นี่ครับ เป็นภาษาไทย  ใน Code มี comment เป็นภาษาไทยด้วย

http://www.codetukyang.com/php/scripts/formmail.htm


หัวข้อ: ท่านๆๆครับ CGI - Forms to mail มันจะทำผมแทบคลั่งละครับ
เริ่มหัวข้อโดย: hohoho ที่ 17 กันยายน 2006, 06:21:49
ขอบคุณทุกๆคนมากเลยครับ ตอนนี้สำเร็จแล้วครับ ด้วยคำแนะนำของทุกท่าน ขอบคุณมากๆๆๆเลยครับ  :)