samgonzales
asked on
NEED HELP PLEASE !!
Dear xperts,
I have this script for form processing which is suppose to send me the data from a form, send a reply to the customer, add their e-mail address to a text file so that I can use it for my mailing list (After it has checked that the e-mail is not allready in the text file). Anyway the problem is that it does not add e-mail addresses to the text file and only sends the auto responder e-mail and not the e-mail which is intended for myself. I have included the script below so you can have a look of what I am doing wrong. Any help would be apreciated. Remember I am not an expert on CGI scripts !!
#!/usr/local/bin/perl
$|++;
use CGI;
$query = new CGI;
$fullname=$query->param('f ullname');
$email=$query->param('emai l');
$problem=$query->param('pr oblem');
open(MAIL, "|/var/qmail/bin/qmail-inj ect");
print MAIL "From: $fullname<$e-mail>\n";
print MAIL "To: krooga\@runbox.com\n";
print MAIL "Subject: Customer needs help !!!\n";
print MAIL "\n";
print MAIL "Full Name : $fullname\n";
print MAIL "eMail : $email\n";
print MAIL "Problem : $problem\n";
close MAIL;
open(MAIL,"|/var/qmail/bin /qmail-inj ect");
print MAIL "To: $email\n";
print MAIL "From: support\@krooga.co.uk\n";
print MAIL "Subject: RE: Krooga support\n";
print MAIL "Thank-you for contacting us at krooga.co.uk,\n";
print MAIL "we have received your Question/Comment and\n\n";
print MAIL "we are working hard to respond to you as fast\n";
print MAIL "as possible. You should receive an answer from\n";
print MAIL "us very soon.\n\n";
print MAIL "Thanks again,\n\n";
print MAIL "The Krooga Suport Team\n";
print MAIL "http://www.krooga.co.uk\n\n";
close MAIL;
open (LIST, ">>/data1/hypermart.net/kr ooga/suppo rt/maillis t.txt");
@lines = <LIST>;
foreach $line (@lines)
{
$foundacopy = 0;
foreach $line2 (@lines)
{
if($line2 eq $line)
{
$foundacopy = 1;
}
}
if($foundacopy==0)
{ # prints only if no copy has been found
print LIST "$email\n";
}
}
close (LIST);
print "Content-type: text/html\n\n";
open(HANDLE,"/data1/hyperm art.net/kr ooga/suppo rt/thanks. htm") || print "could not open thanks";
while(<HANDLE>) {
$_=~s/grfx/..\/grfx/g;
print $_;
}
Thanx
Sam ;-)
I have this script for form processing which is suppose to send me the data from a form, send a reply to the customer, add their e-mail address to a text file so that I can use it for my mailing list (After it has checked that the e-mail is not allready in the text file). Anyway the problem is that it does not add e-mail addresses to the text file and only sends the auto responder e-mail and not the e-mail which is intended for myself. I have included the script below so you can have a look of what I am doing wrong. Any help would be apreciated. Remember I am not an expert on CGI scripts !!
#!/usr/local/bin/perl
$|++;
use CGI;
$query = new CGI;
$fullname=$query->param('f
$email=$query->param('emai
$problem=$query->param('pr
open(MAIL, "|/var/qmail/bin/qmail-inj
print MAIL "From: $fullname<$e-mail>\n";
print MAIL "To: krooga\@runbox.com\n";
print MAIL "Subject: Customer needs help !!!\n";
print MAIL "\n";
print MAIL "Full Name : $fullname\n";
print MAIL "eMail : $email\n";
print MAIL "Problem : $problem\n";
close MAIL;
open(MAIL,"|/var/qmail/bin
print MAIL "To: $email\n";
print MAIL "From: support\@krooga.co.uk\n";
print MAIL "Subject: RE: Krooga support\n";
print MAIL "Thank-you for contacting us at krooga.co.uk,\n";
print MAIL "we have received your Question/Comment and\n\n";
print MAIL "we are working hard to respond to you as fast\n";
print MAIL "as possible. You should receive an answer from\n";
print MAIL "us very soon.\n\n";
print MAIL "Thanks again,\n\n";
print MAIL "The Krooga Suport Team\n";
print MAIL "http://www.krooga.co.uk\n\n";
close MAIL;
open (LIST, ">>/data1/hypermart.net/kr
@lines = <LIST>;
foreach $line (@lines)
{
$foundacopy = 0;
foreach $line2 (@lines)
{
if($line2 eq $line)
{
$foundacopy = 1;
}
}
if($foundacopy==0)
{ # prints only if no copy has been found
print LIST "$email\n";
}
}
close (LIST);
print "Content-type: text/html\n\n";
open(HANDLE,"/data1/hyperm
while(<HANDLE>) {
$_=~s/grfx/..\/grfx/g;
print $_;
}
Thanx
Sam ;-)
i think i have missed something here - but aren't u comparing the same array against itself???
@lines = <LIST>;
foreach $line (@lines) ####### here
{
$foundacopy = 0;
foreach $line2 (@lines) ####### here
{
if($line2 eq $line)
{
$foundacopy = 1;
}
}
if($foundacopy==0)
{ # prints only if no copy has been found
print LIST "$email\n";
}
}
close (LIST);
@lines = <LIST>;
foreach $line (@lines) ####### here
{
$foundacopy = 0;
foreach $line2 (@lines) ####### here
{
if($line2 eq $line)
{
$foundacopy = 1;
}
}
if($foundacopy==0)
{ # prints only if no copy has been found
print LIST "$email\n";
}
}
close (LIST);
ASKER
Do you think you could repost the complete script because i don't really understand what to do here. I am a newbie to CGI and perl I only install them.
Thanks
Sam ;-)
Thanks
Sam ;-)
#!/usr/local/bin/perl
$|++;
use CGI;
$query = new CGI;
$fullname=$query->param('f ullname');
$email=$query->param('emai l');
$problem=$query->param('pr oblem');
open(MAIL, "|/var/qmail/bin/qmail-inj ect");
print MAIL "From: $fullname<$email>\n";
print MAIL "To: krooga\@runbox.com\n";
print MAIL "Subject: Customer needs help !!!\n";
print MAIL "\n";
print MAIL "Full Name : $fullname\n";
print MAIL "eMail : $email\n";
print MAIL "Problem : $problem\n";
close MAIL;
open(MAIL,"|/var/qmail/bin /qmail-inj ect");
print MAIL "To: $email\n";
print MAIL "From: support\@krooga.co.uk\n";
print MAIL "Subject: RE: Krooga support\n";
print MAIL "\n";
print MAIL "Thank-you for contacting us at krooga.co.uk,\n";
print MAIL "we have received your Question/Comment and\n\n";
print MAIL "we are working hard to respond to you as fast\n";
print MAIL "as possible. You should receive an answer from\n";
print MAIL "us very soon.\n\n";
print MAIL "Thanks again,\n\n";
print MAIL "The Krooga Suport Team\n";
print MAIL "http://www.krooga.co.uk\n\n";
close MAIL;
open (LIST, "+>>/data1/hypermart.net/k rooga/supp ort/mailli st.txt");
@lines = <LIST>;
foreach $line (@lines)
{
$foundacopy = 0;
foreach $line2 (@lines)
{
if($line2 eq $line)
{
$foundacopy = 1;
}
}
if($foundacopy==0)
{ # prints only if no copy has been found
print LIST "$email\n";
}
}
close (LIST);
print "Content-type: text/html\n\n";
open(HANDLE,"/data1/hyperm art.net/kr ooga/suppo rt/thanks. htm") || print "could not open thanks";
while(<HANDLE>) {
$_=~s/grfx/..\/grfx/g;
print $_;
}
$|++;
use CGI;
$query = new CGI;
$fullname=$query->param('f
$email=$query->param('emai
$problem=$query->param('pr
open(MAIL, "|/var/qmail/bin/qmail-inj
print MAIL "From: $fullname<$email>\n";
print MAIL "To: krooga\@runbox.com\n";
print MAIL "Subject: Customer needs help !!!\n";
print MAIL "\n";
print MAIL "Full Name : $fullname\n";
print MAIL "eMail : $email\n";
print MAIL "Problem : $problem\n";
close MAIL;
open(MAIL,"|/var/qmail/bin
print MAIL "To: $email\n";
print MAIL "From: support\@krooga.co.uk\n";
print MAIL "Subject: RE: Krooga support\n";
print MAIL "\n";
print MAIL "Thank-you for contacting us at krooga.co.uk,\n";
print MAIL "we have received your Question/Comment and\n\n";
print MAIL "we are working hard to respond to you as fast\n";
print MAIL "as possible. You should receive an answer from\n";
print MAIL "us very soon.\n\n";
print MAIL "Thanks again,\n\n";
print MAIL "The Krooga Suport Team\n";
print MAIL "http://www.krooga.co.uk\n\n";
close MAIL;
open (LIST, "+>>/data1/hypermart.net/k
@lines = <LIST>;
foreach $line (@lines)
{
$foundacopy = 0;
foreach $line2 (@lines)
{
if($line2 eq $line)
{
$foundacopy = 1;
}
}
if($foundacopy==0)
{ # prints only if no copy has been found
print LIST "$email\n";
}
}
close (LIST);
print "Content-type: text/html\n\n";
open(HANDLE,"/data1/hyperm
while(<HANDLE>) {
$_=~s/grfx/..\/grfx/g;
print $_;
}
change open(MAIL, "|/var/qmail/bin/qmail-inj ect");
to open(MAIL, "|/var/qmail/bin/qmail-inj ect -t");
to open(MAIL, "|/var/qmail/bin/qmail-inj
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
This is giving me a giving me a headache i tried it but it doesn't seem to be working....I changed my pw for hypermart can u please log on into my account and get the script working !! The details r as follows :
Username - krooga
Password - thanks
http://krooga.hypermart.net/support/maillist.txt
http://krooga.hypermart.net/cgi-bin/easyform.cgi
http://krooga.hypermart.net/contactus.htm
Thanks
Sam ;-)
Username - krooga
Password - thanks
http://krooga.hypermart.net/support/maillist.txt
http://krooga.hypermart.net/cgi-bin/easyform.cgi
http://krooga.hypermart.net/contactus.htm
Thanks
Sam ;-)
I'll have a look
Try it now.
use CGI::Carp 'fatalsToBrowser'; # Remove when script works 100%
after
use CGI;
open (LIST, "+>>/data1/hypermart.net/k
@lines = <LIST>;
chomp @lines;
print LIST "$email\n" unless grep {$e-mail eq $_} @lines;
close (LIST);
print MAIL "From: $fullname<$email>\n"; and not e-mail
There should be a
print MAIL "\n";
after the Subject for the second email. I don't know why you are not receiving the email sent to yourself.
Put the || die $! after each open