Avatar billede jesperkh Nybegynder
05. december 2000 - 09:02 Der er 37 kommentarer og
1 løsning

Tip en ven funktion

Jeg har websiden: www.sogemaskiner.dk, og pt har jeg \"Tip en ven\" fra 1klik.dk....

Er der nogen der kan hjælpe med et cgi script, så jeg kan få min egen \"Tip en ven\"

Jeg ligger på en NT serv .... den skulle gerne kune sende til mere end en e-mail adr. ad gangen..... tjek om der er sendt til denne e-mail adr. før.... og da jeg bruger frame på min webside, så skal den helst kunne kodes til en fast URL...
Avatar billede breum Nybegynder
05. december 2000 - 14:21 #1
http://www.cgi101.com/scripts/#lk2

Her ligger et perlscript med vejledning
Avatar billede jesperkh Nybegynder
05. december 2000 - 18:13 #2
Hej breum

Jeg har download det link du henviser til... men er lige nu ved at læse et par artikler om hvordan perl fungere på webcafen.dk... så du slipper for alt for mange dume spørgsmål fra mig af....

Jeg vender tilbage sener...

mvh Jesper
Avatar billede breum Nybegynder
05. december 2000 - 22:39 #3
OK, men sig endelig til, hvis jeg skal hjælpe!
Avatar billede jesperkh Nybegynder
07. december 2000 - 16:36 #4
Jeg kommer nok til at bede om del hjælp for det her forstår jeg ikke ret meget af.....

Her den jeg har downloadet:
#!c:\\perl\\bin\\perl.exe
#
# tell a friend cgi
# © 2000 Jackie Hamilton - http://www.cgi101.com/
#
# This script is generic; all of the configuration is done in the HTML form.
# Required fields in the HTML form are:
#        name : the name of the person suggesting the site.
# suggest_from : the email address of the person suggesting the site.
#  suggest_to : the email address to send the suggestion to.
#          url : the URL of the site being suggested.
#
# Optional fields:
#      subject : the subject line of the suggestion mail.
#  automessage : the path of a file on the server to include in the
#                suggestion mail.
#      message : a textarea for the suggester to write a message to the
#                suggestee.
#      ok_url : the url to redirect to after successfully recommending a site.
#
# configuration stuff:
# location of sendmail:
$mailprog = \"/usr/sbin/sendmail\";
#
# list of domains authorized to call this script:  you really SHOULD set this
# to avert inappropriate use or spam.
@allowed_domains =(\"www.cgi101.com\"); 

&chkdomain;

# main
#
%f = &parseform;

# now do some error-checking.
%reqs = (\"name\", \"your name.\", \"suggest_from\", \"your e-mail address.\",
\"suggest_to\", \"the e-mail address of the person you\'re suggesting this site to.\", \"url\", \"the URL of the site being suggested (typically this is a hidden field in the form)\");

$errmsg = \"\";
foreach $i (keys %reqs) {
  if ($f{$i} eq \"\") {
      $errmsg .= \"You must enter $reqs{$i}.<br>\\n\";
  }
}
if ($errmsg ne \"\") {
  &dienice($errmsg);
}
if ($f{suggest_from} !~ /[\\w\\-]+\\@[\\w\\-]+\\.[\\w\\-]+/) {
  &dienice(\"Your e-mail address ($f{suggest_from}) doesn\'t appear to be valid.\");
}
if ($f{suggest_to} !~ /[\\w\\-]+\\@[\\w\\-]+\\.[\\w\\-]+/) {
    &dienice(\"Recipient address `$f{suggest_to}\' doesn\'t appear to be valid.\");
}

# now we can prepare the message.
@msg = ();
push(@msg,\"Web site recommendation from $f{name} ($f{suggest_from}):\\n\\n    $f{url}\\n\\n\");

if ($f{message} ne \"\") {
  push(@msg,$f{message} . \"\\n\\n\");
}

if ($f{automessage} ne \"\") {
  if (-e $f{automessage}) {
      open(INF,$f{automessage});
      @grok = <INF>;
      close(INF);
      push(@msg,@grok);
      push(@msg,\"\\n\\n\");
  }
}

if ($f{subject} eq \"\") {
  $subject = \"Web site recommendation: $f{url}\";
} else {
  $subject = $f{subject};
}

&sendmail($f{suggest_from},$f{suggest_to},$subject,@msg);
if (exists $f{ok_url} and $f{ok_url} ne \"\") {
    print \"Location:$f{ok_url}\\n\\n\";
} else {
  &thanks;
}

sub thanks {
  &dohdr;
# You may reconfigure the HTML inside the Endthanks block.
  print <<Endthanks;
  <center>
  <h2>Thank You</h2>
  Thank you for suggesting $f{url}!  Your message has been sent.<p>
  </center>
Endthanks
  &dofooter;
}

sub sendmail {
    my($from,$to,$subject,@msg) = @_;
    open(MAIL,\"|$mailprog -t\");
    print MAIL \"To: $to\\n\";
    print MAIL \"From: $from\\n\";
    print MAIL \"Subject: $subject\\n\\n\";
    print MAIL <<EndMail;
@msg
EndMail
    close(MAIL);
}

sub parseform {
    read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'});
    @pairs = split(/&/, $buffer);

    foreach $pair (@pairs) {
        ($name, $value) = split(/=/, $pair);
        $value =~ tr/+/ /;
        $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(\"C\", hex($1))/eg;
        $FORM{$name} = $value;
    }
    return %FORM;
}

sub dienice {
    ($msg) = @_;
    &dohdr;
    print \"<h2>Error</h2>\\n\";
    print $msg;
    &dofooter;
    exit;
}

sub dohdr {
    print \"Content-type:text/html\\n\\n\";
    print <<EndHdr;
<html><head><title>Results</title></head>
<body bgcolor=#ffffff text=#000000>
EndHdr
}

sub dofooter { print \"</body></html>\\n\"; }

sub chkdomain {
  if (@allowed_domains == () ) {
    return
  }
  my($isok) = 0;
  my($referer) = $ENV{\'HTTP_REFERER\'};
  $referer =~ tr/A-Z/a-z/;
  foreach $i (@allowed_domains) {
    if ($referer =~ /$i/) {
      return 1;
    }
  }
  &dienice(\"Referring page ($referer) is not authorized to call this script!\");
}



Først skal jeg have lagt en fast url som CGI\'en henviser til....

så går jeg udfra at den skal have en SMTP adr og sende mailen den laver på..

Hvis vi nu starter med det...
Avatar billede breum Nybegynder
07. december 2000 - 16:50 #5
Du bor på en NT server, så er første linie :
#!c:\\perl\\bin\\perl.exe
ligegyldig, men lad den bare stå

Det næste du skal er at rette
$mailprog = \"/usr/sbin/sendmail\";

til det sted sendmail ligger på din server
Avatar billede jesperkh Nybegynder
07. december 2000 - 16:56 #6
er det en SMTP adr. eller en Jmailer
Avatar billede breum Nybegynder
07. december 2000 - 16:57 #7
hvis ikke du har sendmail, men kun SMPT skal du nok bruge
http://bignosebird.com/carchive/birdcast.shtml
Der er udviklet til windows og SMPT

eller

http://willmaster.com/master/recommend/
Avatar billede breum Nybegynder
07. december 2000 - 16:59 #8
http://bignosebird.com/carchive/birdcast.shtml er let at få til at bruge en SMTP-server

Avatar billede jesperkh Nybegynder
07. december 2000 - 17:16 #9
Det må jo så være den her du mener:

#!/usr/bin/perl
use Socket;
$|=1;
################################################################## 
#  birdcast.cgi Version 2.0
#  updated May 2, 1999
#  (C)1998, 1999 Bignosebird.com                                         
#  This software is FREEWARE! Do with it as you wish. It is yours 
#  to share and enjoy. Modify it, improve it, and have fun with it!
#  It is distributed strictly as a learning aid and bignosebird.com
#  disclaims all warranties- including but not limited to:         
#  fitness for a particular purpose, merchantability, loss of     
#  business, harm to your system, etc... ALWAYS BACK UP YOUR       
#  SYSTEM BEFORE INSTALLING ANY SCRIPT OR PROGRAM FROM ANY         
#  SOURCE!
################################################################## 

# CONFIGURATION NOTES

#
# $SCRIPT_NAME is the full URL of this script, including the
# http part, ie, \"http://domainname.com/cgi-bin/birdcast.cgi\";
#
# $SITE_NAME is the \"name\" of your web site.
# $SITE_URL is the URL of your site (highest level)
# $END_LINE is the very last line printed in the e-mail.
#
# $MAXNUM is the number of possible people a person can refer
# your URL to at one time. If you call the script using the
# GET method, then this is also the number of entry blanks
# created for recipient names and addresses.
#
# $SMTP_SERVER is the name of your e-mail gateway server, or
# SMTP host. On most systems, \"localhost\" will work just fine.
# If not, change \"localhost\" to whatever your ISP\'s SMTP
# server name is, ie, smtp.isp.net or mail.isp.net

# $SEND_MAIL is the full path to your server\'s sendmail program
# If you do not wish to use Sockets for some reason and need
# to use sendmail, uncomment the $SEND_MAIL line and comment
# the $SMTP_SERVER line.

# okaydomains is a list of domains from which you want to allow
# the script to be called from.  Leave it commented to leave the
# script unrestricted. If you choose to use it, be sure to list
# your site URL with and without the www.

#  Use either $SMTP_SERVER
  $SMTP_SERVER=\"localhost\";
#
#    OR
#
#  $SEND_MAIL=\"/usr/lib/sendmail -t\";
#
#      BUT NEVER BOTH!!!!!!

#  @okaydomains=(\"http://yourdomain.com\", \"http://www.yourdomain.com\");

  $SCRIPT_NAME=\"http://yourdomain.com/cgi-bin/birdcast.cgi\";
  $SITE_NAME=\"The Name of Your Site\";
  $SITE_URL=\"http://yourdomain.com/\";
  $ENDLINE=\"\";
  $MAXNUM=5;
  $LOGFILE=\"reflog.txt\";

  if ($SENDMAIL ne \"\")
    {&test_sendmail;}


  &valid_page;    #if script is called from offsite, bounce it!
  &decode_vars;
  if ( $ENV{\'REQUEST_METHOD\'} ne \"POST\")
    {
      &draw_request;
      exit;
    }
  &do_log;
  &process_mail;
  print \"Location: $JUMP_TO\\n\\n\";

##################################################################
sub process_mail
{
for ($i=1;$i<$MAXNUM+1;$i++)
    {
      $recipname=\"recipname_$i\";
      $recipemail=\"recipemail_$i\";
      if ($fields{$recipemail} eq \"\")
        {
        next;
        }
      if (&valid_address == 0)
        {
        next;
        }

#BNB SAYS! You can modify the Subject line below.

$subject = \"Suggestion from $fields{\'send_name\'}\";

#BNB SAYS! Modify the lines below between the lines marked
# with __STOP_OF_MAIL__ to customize your e-mail message
# DO NOT remove the lines that contain __STOP_OF_MAIL__!
# If you enter any hardcoded e-mail addresses, BE SURE TO
# put the backslash before the at sign, ie, me\\@here.net

$msgtxt = <<__STOP_OF_MAIL__;           
Hi $fields{$recipname},

$fields{\'send_name\'} stopped by $SITE_NAME
and suggested that you visit the following URL:

  $JUMP_TO

__STOP_OF_MAIL__

      if ($fields{\'message\'} ne \"\")
      {
        $msgtxt .= \"Here is their message....\\n\";
        $msgtxt .= \"$fields{\'message\'}\\n\\n\";
      }
      $msgtxt .= \"$SITE_NAME\\n\";
      $msgtxt .= \"$ENDLINE\\n\";
      $msgtxt .= \"$SITE_URL\\n\\n\";
      $mailresult=&sendmail($fields{send_email}, $fields{send_email}, $fields{$recipemail}, $SMTP_SERVER, $subject, $msgtxt);

      if ($mailresult ne \"1\")
      {print \"Content-type: text/html\\n\\n\";
      print \"MAIL NOT SENT. SMTP ERROR: $mailresult\\n\";
      exit
      }

    }
}

##################################################################
sub draw_request
{
print \"Content-type: text/html\\n\\n\";

#BNB SAYS! Here is the part that draws the page that asks the
#reader to enter e-mail addresses and names. Tailor it to meet
# your needs if necessary. DO NOT disturb the lines with
# __REQUEST__ on them.

print <<__REQUEST__;
<BODY BGCOLOR=\"#FFFFFF\">
<CENTER>
<P>                                                             
<TABLE WIDTH=550 BGCOLOR=\"CCE6FF\">
<TR>
<TD>
<FONT FACE=\"ARIAL\" SIZE=4 COLOR=\"#009999\">
  <B>
  <CENTER>
  SUGGEST THIS PAGE TO A FRIEND...<P>
  <A HREF=\"$ENV{\'HTTP_REFERER\'}\">$ENV{\'HTTP_REFERER\'}</A>
  </CENTER>
  </B>
  </FONT>
  <BLOCKQUOTE>
<FONT FACE=\"ARIAL\" SIZE=2 COLOR=\"#000000\">
  If you have a friend that you would like to recommend this page to,
  or if you just want to send yourself a reminder, here is the easy
  way to do it!
  <P>
  Simply fill in the e-mail address of the person(s) you wish to tell
  about $SITE_NAME, your name and e-mail address (so they do
  not think it is spam or reply to us with gracious thanks),
  and click the <B>SEND</B> button.
  If you want to, you can also enter a message that will be included
  on the e-mail.
  <P>
  After sending the e-mail, you will be transported back to the
  page you recommended!
</FONT>
<FORM METHOD=\"POST\" ACTION=\"$SCRIPT_NAME\">
  <INPUT TYPE=\"HIDDEN\" NAME=\"call_by\" VALUE=$ENV{\'HTTP_REFERER\'}>
  <TABLE BORDER=0 CELLPADDING=1 CELLSPACING=0 >
    <TR>
    <TD>&nbsp;</TD>
    <TD ALIGN=CENTER><B>Name</B></TD>
    <TD ALIGN=CENTER><B>E-Mail Address</B><TD>
    </TR>
    <TR>
    <TD><B>You</B></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"send_name\"></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"send_email\"></TD>
    </TR>
__REQUEST__
    for ($i=1;$i<$MAXNUM+1;$i++)
    {
    print <<__STOP_OF_ROW__;           
    <TR>
    <TD><B>Friend $i</B></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipname_$i\"></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipemail_$i\"></TD>
    </TR>
__STOP_OF_ROW__
    }
    print <<__REQUEST2__;           
  <TR>
  <TD>&nbsp;</TD>
  <TD ALIGN=CENTER COLSPAN=2>
  <B>Your Message</B><BR>
<textarea name=\"message\" wrap=virtual rows=5 cols=35></textarea>
    <BR>
    <INPUT TYPE=\"submit\" VALUE=\"SEND\">
    </TD>
    </TR>
  </TABLE>
  </FORM>
  </BLOCKQUOTE>
  <CENTER>
    <FONT SIZE=\"-1\">
    Free recommendation script created by<BR>
    </FONT>
    <A HREF=\"http://bignosebird.com/\"><B>BigNoseBird.Com</B></A><BR>
    <FONT SIZE=\"-1\">
    <I>The Strangest Name in Free Web Authoring Resources<I><BR>
    </FONT>
    <P>
  </CENTER>
  </TD>
  </TR>
  </TABLE>
__REQUEST2__
}

##################################################################
#  NOTHING TO MESS WITH BEYOND THIS POINT!!!!
##################################################################
sub decode_vars
{
$i=0;
  if ( $ENV{\'REQUEST_METHOD\'} eq \"GET\")
  {
    $temp=$ENV{\'QUERY_STRING\'};
  }
  else
    {
      read(STDIN,$temp,$ENV{\'CONTENT_LENGTH\'});
    }
  @pairs=split(/&/,$temp);
  foreach $item(@pairs)
  {
    ($key,$content)=split(/=/,$item,2);
    $content=~tr/+/ /;
    $content=~s/%(..)/pack(\"c\",hex($1))/ge;
    $content=~s/\\012//gs;
    $content=~s/\\015/ /gs;
    $fields{$key}=$content;
  }
  if ($fields{\'call_by\'} eq \"\")
    {
    $JUMP_TO = $ENV{\'HTTP_REFERER\'};
    }
  else
    {
    $JUMP_TO = $fields{\'call_by\'};
    }
}

##################################################################
sub valid_address
{
  $testmail = $fields{$recipemail};
  if ($testmail =~ /(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)/ ||
  $testmail !~ /^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$/)
  {
    return 0;
  }
  else
    {
        return 1;
    }
}

sub valid_page
{
if (@okaydomains == 0) {return;}
  $DOMAIN_OK=0;                                       
  $RF=$ENV{\'HTTP_REFERER\'};                           
  $RF=~tr/A-Z/a-z/;                                   
  foreach $ts (@okaydomains)                           
  {                                                   
    if ($RF =~ /$ts/)                                 
      { $DOMAIN_OK=1; }
  }                                                   
  if ( $DOMAIN_OK == 0)                               
    { print \"Content-type: text/html\\n\\n Sorry, cant run it from here....\";   
      exit;
    }                                                 
}


##################################################################
sub test_sendmail
{
  @ts=split(/ /,$MAIL_PROGRAM);
  if ( -e $ts[0] )
  {
    return;
  }
  print \"Content-type: text/html\\n\\n\";
  print \"<H2>$ts[0] NOTFOUND. PLEASE CHECK YOUR SCRIPT\'S MAIL_PROGRAM VARIABLE</H2>\";
  exit;
}

sub do_log
{
open (ZL,\">>$LOGFILE\");
$date=localtime(time);
for ($i=1;$i<$MAXNUM+1;$i++)
    {
      $recipname=\"recipname_$i\";
      $recipemail=\"recipemail_$i\";
      if ($fields{$recipemail} eq \"\")
        {
        next;
        }
      if (&valid_address == 0)
        {
        next;
        }
    $logline=\"$date\\|$JUMP_TO\\|$fields{\'send_email\'}\\|$fields{$recipemail}\\|\\n\";
    print ZL $logline;
  }
  close(ZL);
}

###################################################################
#Sendmail.pm routine below by Milivoj Ivkovic
###################################################################
sub sendmail  {

# error codes below for those who bother to check result codes <gr>

# 1 success
# -1 $smtphost unknown
# -2 socket() failed
# -3 connect() failed
# -4 service not available
# -5 unspecified communication error
# -6 local user $to unknown on host $smtp
# -7 transmission of message failed
# -8 argument $to empty
#
#  Sample call:
#
# &sendmail($from, $reply, $to, $smtp, $subject, $message );
#
#  Note that there are several commands for cleaning up possible bad inputs - if you
#  are hard coding things from a library file, so of those are unnecesssary
#

    my ($fromaddr, $replyaddr, $to, $smtp, $subject, $message) = @_;

    $to =~ s/[ \\t]+/, /g; # pack spaces and add comma
    $fromaddr =~ s/.*<([^\\s]*?)>/$1/; # get from email address
    $replyaddr =~ s/.*<([^\\s]*?)>/$1/; # get reply email address
    $replyaddr =~ s/^([^\\s]+).*/$1/; # use first address
    $message =~ s/^\\./\\.\\./gm; # handle . as first character
    $message =~ s/\\r\\n/\\n/g; # handle line ending
    $message =~ s/\\n/\\r\\n/g;
    $smtp =~ s/^\\s+//g; # remove spaces around $smtp
    $smtp =~ s/\\s+$//g;

    if (!$to)
    {
    return(-8);
    }

if ($SMTP_SERVER ne \"\")
  {
    my($proto) = (getprotobyname(\'tcp\'))[2];
    my($port) = (getservbyname(\'smtp\', \'tcp\'))[2];

    my($smtpaddr) = ($smtp =~
            /^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/)
    ? pack(\'C4\',$1,$2,$3,$4)
        : (gethostbyname($smtp))[4];

    if (!defined($smtpaddr))
    {
    return(-1);
    }

    if (!socket(MAIL, AF_INET, SOCK_STREAM, $proto))
    {
    return(-2);
    }

    if (!connect(MAIL, pack(\'Sna4x8\', AF_INET, $port, $smtpaddr)))
    {
    return(-3);
    }

    my($oldfh) = select(MAIL);
    $| = 1;
    select($oldfh);

    $_ = <MAIL>;
    if (/^[45]/)
    {
    close(MAIL);
    return(-4);
    }

    print MAIL \"helo $SMTP_SERVER\\r\\n\";
    $_ = <MAIL>;
    if (/^[45]/)
    {
    close(MAIL);
    return(-5);
    }

    print MAIL \"mail from: <$fromaddr>\\r\\n\";
    $_ = <MAIL>;
    if (/^[45]/)
    {
    close(MAIL);
    return(-5);
    }

    foreach (split(/, /, $to))
    {
    print MAIL \"rcpt to: <$_>\\r\\n\";
    $_ = <MAIL>;
    if (/^[45]/)
    {
        close(MAIL);
        return(-6);
    }
    }

    print MAIL \"data\\r\\n\";
    $_ = <MAIL>;
    if (/^[45]/)
    {
    close MAIL;
    return(-5);
    }

  }

  if ($SEND_MAIL ne \"\")
  {
    open (MAIL,\"| $SEND_MAIL\");
  }

    print MAIL \"To: $to\\n\";
    print MAIL \"From: $fromaddr\\n\";
    print MAIL \"Reply-to: $replyaddr\\n\" if $replyaddr;
    print MAIL \"X-Mailer: Perl Powered Socket Mailer\\n\";
    print MAIL \"Subject: $subject\\n\\n\";
    print MAIL \"$message\";
    print MAIL \"\\n.\\n\";

if ($SMTP_SERVER ne \"\")
  {
    $_ = <MAIL>;
    if (/^[45]/)
    {
    close(MAIL);
    return(-7);
    }

    print MAIL \"quit\\r\\n\";
    $_ = <MAIL>;
  }

    close(MAIL);
    return(1);
}
Avatar billede breum Nybegynder
07. december 2000 - 18:32 #10
ja
Avatar billede breum Nybegynder
07. december 2000 - 18:34 #11
der er ting der skal rettes

hvis serveren ikke selv er SMTP host skal du rette
$SMTP_SERVER=\"localhost\";

til f.eks
$SMTP_SERVER=\"mail.get2net.dk\";
eller hvad din mailserver nu hedder
Avatar billede breum Nybegynder
07. december 2000 - 18:35 #12
i linierne med # kan du læse hvad du ellers skal rette for at det virker på din server.

Avatar billede breum Nybegynder
07. december 2000 - 18:37 #13
der er en installationsvejledning på
http://bignosebird.com/carchive/birdcast/README.TXT

glem dog alt om chmod 755, det er kun for UNIX servere
Avatar billede breum Nybegynder
07. december 2000 - 18:39 #14
på http://bignosebird.com/cgi-bin/birdcast.cgi kan du se hvordan scriptet f.eks kan se ud men meget kan jo tilrettes som du ønsker.
Avatar billede jesperkh Nybegynder
07. december 2000 - 20:00 #15
Jeg har lagt den her op på min seve:
#!/usr/bin/perl
use Socket;
$|=1;

  $SMTP_SERVER=\"smtp.mail.dk\";
  $SCRIPT_NAME=\"http://sogemaskiner.dk/tipven.cgi\";
  $SITE_NAME=\"WWW:SOGEMASKINER.DK\";
  $SITE_URL=\"http://sogemaskiner.dk/\";
  $ENDLINE=\"\";
  $MAXNUM=5;
  $LOGFILE=\"reflog.txt\";

  if ($SENDMAIL ne \"\")
    {&test_sendmail;}


  &valid_page;    #if script is called from offsite, bounce it!
  &decode_vars;
  if ( $ENV{\'REQUEST_METHOD\'} ne \"POST\")
    {
      &draw_request;
      exit;
    }
  &do_log;
  &process_mail;
  print \"Location: $JUMP_TO\\n\\n\";

##################################################################
sub process_mail
{
for ($i=1;$i<$MAXNUM+1;$i++)
    {
      $recipname=\"recipname_$i\";
      $recipemail=\"recipemail_$i\";
      if ($fields{$recipemail} eq \"\")
        {
        next;
        }
      if (&valid_address == 0)
        {
        next;
        }

#BNB SAYS! You can modify the Subject line below.

$subject = \"Suggestion from $fields{\'send_name\'}\";

#BNB SAYS! Modify the lines below between the lines marked
# with __STOP_OF_MAIL__ to customize your e-mail message
# DO NOT remove the lines that contain __STOP_OF_MAIL__!
# If you enter any hardcoded e-mail addresses, BE SURE TO
# put the backslash before the at sign, ie, me\\@here.net

$msgtxt = <<__STOP_OF_MAIL__;           
Hi $fields{$recipname},

$fields{\'send_name\'} stopped by $SITE_NAME
and suggested that you visit the following URL:

  $JUMP_TO

__STOP_OF_MAIL__

      if ($fields{\'message\'} ne \"\")
      {
        $msgtxt .= \"Here is their message....\\n\";
        $msgtxt .= \"$fields{\'message\'}\\n\\n\";
      }
      $msgtxt .= \"$SITE_NAME\\n\";
      $msgtxt .= \"$ENDLINE\\n\";
      $msgtxt .= \"$SITE_URL\\n\\n\";
      $mailresult=&sendmail($fields{send_email}, $fields{send_email}, $fields{$recipemail}, $SMTP_SERVER, $subject, $msgtxt);

      if ($mailresult ne \"1\")
      {print \"Content-type: text/html\\n\\n\";
      print \"MAIL NOT SENT. SMTP ERROR: $mailresult\\n\";
      exit
      }

    }
}

##################################################################
sub draw_request
{
print \"Content-type: text/html\\n\\n\";

#BNB SAYS! Here is the part that draws the page that asks the
#reader to enter e-mail addresses and names. Tailor it to meet
# your needs if necessary. DO NOT disturb the lines with
# __REQUEST__ on them.

print <<__REQUEST__;
<BODY BGCOLOR=\"#FFFFFF\">
<CENTER>
<P>                                                             
<TABLE WIDTH=550 BGCOLOR=\"CCE6FF\">
<TR>
<TD>
<FONT FACE=\"ARIAL\" SIZE=4 COLOR=\"#009999\">
  <B>
  <CENTER>
  SUGGEST THIS PAGE TO A FRIEND...<P>
  <A HREF=\"$ENV{\'HTTP_REFERER\'}\">$ENV{\'HTTP_REFERER\'}</A>
  </CENTER>
  </B>
  </FONT>
  <BLOCKQUOTE>
<FONT FACE=\"ARIAL\" SIZE=2 COLOR=\"#000000\">
  If you have a friend that you would like to recommend this page to,
  or if you just want to send yourself a reminder, here is the easy
  way to do it!
  <P>
  Simply fill in the e-mail address of the person(s) you wish to tell
  about $SITE_NAME, your name and e-mail address (so they do
  not think it is spam or reply to us with gracious thanks),
  and click the <B>SEND</B> button.
  If you want to, you can also enter a message that will be included
  on the e-mail.
  <P>
  After sending the e-mail, you will be transported back to the
  page you recommended!
</FONT>
<FORM METHOD=\"POST\" ACTION=\"$SCRIPT_NAME\">
  <INPUT TYPE=\"HIDDEN\" NAME=\"call_by\" VALUE=$ENV{\'HTTP_REFERER\'}>
  <TABLE BORDER=0 CELLPADDING=1 CELLSPACING=0 >
    <TR>
    <TD>&nbsp;</TD>
    <TD ALIGN=CENTER><B>Name</B></TD>
    <TD ALIGN=CENTER><B>E-Mail Address</B><TD>
    </TR>
    <TR>
    <TD><B>You</B></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"send_name\"></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"send_email\"></TD>
    </TR>
__REQUEST__
    for ($i=1;$i<$MAXNUM+1;$i++)
    {
    print <<__STOP_OF_ROW__;           
    <TR>
    <TD><B>Friend $i</B></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipname_$i\"></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipemail_$i\"></TD>
    </TR>
__STOP_OF_ROW__
    }
    print <<__REQUEST2__;           
  <TR>
  <TD>&nbsp;</TD>
  <TD ALIGN=CENTER COLSPAN=2>
  <B>Your Message</B><BR>
<textarea name=\"message\" wrap=virtual rows=5 cols=35></textarea>
    <BR>
    <INPUT TYPE=\"submit\" VALUE=\"SEND\">
    </TD>
    </TR>
  </TABLE>
  </FORM>
  </BLOCKQUOTE>
  <CENTER>
    <FONT SIZE=\"-1\">
    Free recommendation script created by<BR>
    </FONT>
    <A HREF=\"http://bignosebird.com/\"><B>BigNoseBird.Com</B></A><BR>
    <FONT SIZE=\"-1\">
    <I>The Strangest Name in Free Web Authoring Resources<I><BR>
    </FONT>
    <P>
  </CENTER>
  </TD>
  </TR>
  </TABLE>
__REQUEST2__
}

##################################################################
#  NOTHING TO MESS WITH BEYOND THIS POINT!!!!
##################################################################
sub decode_vars
{
$i=0;
  if ( $ENV{\'REQUEST_METHOD\'} eq \"GET\")
  {
    $temp=$ENV{\'QUERY_STRING\'};
  }
  else
    {
      read(STDIN,$temp,$ENV{\'CONTENT_LENGTH\'});
    }
  @pairs=split(/&/,$temp);
  foreach $item(@pairs)
  {
    ($key,$content)=split(/=/,$item,2);
    $content=~tr/+/ /;
    $content=~s/%(..)/pack(\"c\",hex($1))/ge;
    $content=~s/\\012//gs;
    $content=~s/\\015/ /gs;
    $fields{$key}=$content;
  }
  if ($fields{\'call_by\'} eq \"\")
    {
    $JUMP_TO = $ENV{\'HTTP_REFERER\'};
    }
  else
    {
    $JUMP_TO = $fields{\'call_by\'};
    }
}

##################################################################
sub valid_address
{
  $testmail = $fields{$recipemail};
  if ($testmail =~ /(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)/ ||
  $testmail !~ /^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$/)
  {
    return 0;
  }
  else
    {
        return 1;
    }
}

sub valid_page
{
if (@okaydomains == 0) {return;}
  $DOMAIN_OK=0;                                       
  $RF=$ENV{\'HTTP_REFERER\'};                           
  $RF=~tr/A-Z/a-z/;                                   
  foreach $ts (@okaydomains)                           
  {                                                   
    if ($RF =~ /$ts/)                                 
      { $DOMAIN_OK=1; }
  }                                                   
  if ( $DOMAIN_OK == 0)                               
    { print \"Content-type: text/html\\n\\n Sorry, cant run it from here....\";   
      exit;
    }                                                 
}


##################################################################
sub test_sendmail
{
  @ts=split(/ /,$MAIL_PROGRAM);
  if ( -e $ts[0] )
  {
    return;
  }
  print \"Content-type: text/html\\n\\n\";
  print \"<H2>$ts[0] NOTFOUND. PLEASE CHECK YOUR SCRIPT\'S MAIL_PROGRAM VARIABLE</H2>\";
  exit;
}

sub do_log
{
open (ZL,\">>$LOGFILE\");
$date=localtime(time);
for ($i=1;$i<$MAXNUM+1;$i++)
    {
      $recipname=\"recipname_$i\";
      $recipemail=\"recipemail_$i\";
      if ($fields{$recipemail} eq \"\")
        {
        next;
        }
      if (&valid_address == 0)
        {
        next;
        }
    $logline=\"$date\\|$JUMP_TO\\|$fields{\'send_email\'}\\|$fields{$recipemail}\\|\\n\";
    print ZL $logline;
  }
  close(ZL);
}

###################################################################
#Sendmail.pm routine below by Milivoj Ivkovic
###################################################################
sub sendmail  {

# error codes below for those who bother to check result codes <gr>

# 1 success
# -1 $smtphost unknown
# -2 socket() failed
# -3 connect() failed
# -4 service not available
# -5 unspecified communication error
# -6 local user $to unknown on host $smtp
# -7 transmission of message failed
# -8 argument $to empty
#
#  Sample call:
#
# &sendmail($from, $reply, $to, $smtp, $subject, $message );
#
#  Note that there are several commands for cleaning up possible bad inputs - if you
#  are hard coding things from a library file, so of those are unnecesssary
#

    my ($fromaddr, $replyaddr, $to, $smtp, $subject, $message) = @_;

    $to =~ s/[ \\t]+/, /g; # pack spaces and add comma
    $fromaddr =~ s/.*<([^\\s]*?)>/$1/; # get from email address
    $replyaddr =~ s/.*<([^\\s]*?)>/$1/; # get reply email address
    $replyaddr =~ s/^([^\\s]+).*/$1/; # use first address
    $message =~ s/^\\./\\.\\./gm; # handle . as first character
    $message =~ s/\\r\\n/\\n/g; # handle line ending
    $message =~ s/\\n/\\r\\n/g;
    $smtp =~ s/^\\s+//g; # remove spaces around $smtp
    $smtp =~ s/\\s+$//g;

    if (!$to)
    {
    return(-8);
    }

if ($SMTP_SERVER ne \"\")
  {
    my($proto) = (getprotobyname(\'tcp\'))[2];
    my($port) = (getservbyname(\'smtp\', \'tcp\'))[2];

    my($smtpaddr) = ($smtp =~
            /^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/)
    ? pack(\'C4\',$1,$2,$3,$4)
        : (gethostbyname($smtp))[4];

    if (!defined($smtpaddr))
    {
    return(-1);
    }

    if (!socket(MAIL, AF_INET, SOCK_STREAM, $proto))
    {
    return(-2);
    }

    if (!connect(MAIL, pack(\'Sna4x8\', AF_INET, $port, $smtpaddr)))
    {
    return(-3);
    }

    my($oldfh) = select(MAIL);
    $| = 1;
    select($oldfh);

    $_ = <MAIL>;
    if (/^[45]/)
    {
    close(MAIL);
    return(-4);
    }

    print MAIL \"helo $SMTP_SERVER\\r\\n\";
    $_ = <MAIL>;
    if (/^[45]/)
    {
    close(MAIL);
    return(-5);
    }

    print MAIL \"mail from: <$fromaddr>\\r\\n\";
    $_ = <MAIL>;
    if (/^[45]/)
    {
    close(MAIL);
    return(-5);
    }

    foreach (split(/, /, $to))
    {
    print MAIL \"rcpt to: <$_>\\r\\n\";
    $_ = <MAIL>;
    if (/^[45]/)
    {
        close(MAIL);
        return(-6);
    }
    }

    print MAIL \"data\\r\\n\";
    $_ = <MAIL>;
    if (/^[45]/)
    {
    close MAIL;
    return(-5);
    }

  }

  if ($SEND_MAIL ne \"\")
  {
    open (MAIL,\"| $SEND_MAIL\");
  }

    print MAIL \"To: $to\\n\";
    print MAIL \"From: $fromaddr\\n\";
    print MAIL \"Reply-to: $replyaddr\\n\" if $replyaddr;
    print MAIL \"X-Mailer: Perl Powered Socket Mailer\\n\";
    print MAIL \"Subject: $subject\\n\\n\";
    print MAIL \"$message\";
    print MAIL \"\\n.\\n\";

if ($SMTP_SERVER ne \"\")
  {
    $_ = <MAIL>;
    if (/^[45]/)
    {
    close(MAIL);
    return(-7);
    }

    print MAIL \"quit\\r\\n\";
    $_ = <MAIL>;
  }

    close(MAIL);
    return(1);
}
og lagt en webside op http://sogemaskiner.dk/tipven.htm

men det virker ikke
Avatar billede breum Nybegynder
07. december 2000 - 20:42 #16
idet jeg går ud fra at du ikke råder over smtp.mail.dk er dette forkert, formentlig er der også flere fejl, men det er ikke let for andre at se, prøv at se hvad der står i din error log, der står hvor fejlen opstår
Avatar billede jesperkh Nybegynder
09. december 2000 - 19:07 #17
# $SEND_MAIL is the full path to your server\'s sendmail program
# If you do not wish to use Sockets for some reason and need
# to use sendmail, uncomment the $SEND_MAIL line and comment
# the $SMTP_SERVER line.

hvad er >>Sockets<<
Avatar billede breum Nybegynder
10. december 2000 - 14:50 #18
Sockets er det du bruger hvis du sender mail igennem en SMTP-server.

Jeg troede du ville bruge SMTP og ikke sendmail, jeg ved ikke hvor sendmail (eller et andet mail-program) gemmer sit mailprogram, selv kører jeg unix.
Du siger du kører NT, er det din egen server eller et webhotel andetsteds?
Kører der en SMTP-server på samme maskine?
Avatar billede jesperkh Nybegynder
11. december 2000 - 10:20 #19
Jeg ligger på et webhotel, på en NT serv....

SMTP.mail.dk er den SMTP, jeg bruger når jeg sender e-mail fra Outlook ekspres gennem Teledanmark...

jeg sendte i går en e-mail til Golden Plannet, det webhotel jeg ligger på... for at finde udaf hvad min SMTP adr. helt præsis er på min mailboks der...

Da jeg ikke blev særlig meget kloger af følgende:

>>SMTP server (udgående post): Den server hvor igennem du sender din post. Vi tilbyder at ekspedere din mail, men det vil alt andet lige være mere effektivt at benytte SMTP serveren hos din dial-in udbyder. Det skyldes at du med dit modem eller faste forbindelse er koblet direkte op til disse, hvor du hos os skal ud igennem nettet for at kommunikere med vores mailservere. Dette har ingen indflydelse på den afsender adresse du signalerer til omverdenen (se næste afsnit).
Det er en forudsætning for at benytte Golden Planet\'s SMTP server, at din afsender adresse er oprettet som forward eller mailbox på din installation (af sikkerhedsmæssige årsager).<<

i deres onlin manual...

og  i online manualen står der følgende om opsætning i Outlook....

>>Serveren til indgående post er en POP3 server. Server til indgående post er:

1) Hvis du har valgt videresende til f.eks. din dial-in udbyder er det dennes POP3 server - f.eks. post1.tele.dk
2) Hvis du har valgt at lagre posten i en POP3 postkasse på din virtuelle server hos The Golden Planet, skal du skrive dit domænenavn (www.) som POP3 server.

Server til udgående post er SMTP serveren hos din dial-in udbyder alternativt firmanavn.dk (se evt. info her). Tryk næste.

Navn på POP3 konto er enten dit brugernavn hos din dial-in udbyder (igen alt efter opsætning), eller hvis du har valgt at benytte en POP3 postkasse på din virtuelle server, skal du skrive det som brugernavn/ditdomain.dk. Der skal ikke være markeret i \"Log på med godkendelse af sikker adgangskode\". Tryk næste.<<

Det har jeg prøvet at sætte outlook op til.. udfra logiken om at hvis jeg kunne få SMTP, til at virke der... så kunne jeg sætte den ind cgi\'et.. og hvis cgi\'et stadig ikke virket.. så må fejlen jo ligge et andet sted end STMP adr...

Jeg kun ikke få  outlook til at sende post og har derfor som omtalt, sendt en e-mail til Golden Planet og bedt dem forklare hvorfor det ikke virker....



Avatar billede breum Nybegynder
11. december 2000 - 11:36 #20
Hmmmmm du skal nok gøre dem det klart at du vil have et script til at sende mail, for \"....., men det vil alt andet lige være mere effektivt at benytte SMTP serveren hos din dial-in udbyder. Det skyldes at du med dit modem eller faste forbindelse er koblet direkte op til disse, hvor du hos os skal ud igennem nettet for at kommunikere med vores mailservere. Dette har ingen ind.......\" gælder jo kun hvis du kobler op hjemmefra, det er noget andet.

Spørg dem hellere: \"Hvilken metode anbefaler i når man skal have et perl-script til at sende en email?\"

hvad er adressen på golden-planet?, så kan det være at jeg kan finde ud ad noget for dig!

Avatar billede jesperkh Nybegynder
11. december 2000 - 13:13 #21
nu har jeg faktisk et svar fra dem... vi kan bruge til noget...
>> hvis du bruger mail.gpserver.com skulle der ikke være noget i
vejen for at brugeren skriver sin egen e-mail adresse som afsender,
da mail.gpserver.com checker at mailen kommer fra en af vores
egne _IP-adresser_, altså uafhængigt af afsenderadressen. <<

Hvis jeg forstår det rigtigt, så skal jeg bruge:mail.gpserver.com , som SMTP serv... den vil sende e-mailen fra \"tip en ven cgi\", dog betinget af at det script der prøver på at sende en e-mail, ligger på min webhotel plads/deres IP-adress... og det skal den jo....
Avatar billede breum Nybegynder
11. december 2000 - 13:14 #22
korrekt
Avatar billede breum Nybegynder
11. december 2000 - 13:17 #23
hvis du ikke vil have at der i mailen skal stå adressen på den side hvor venneboxen er kan du rette
$JUMP_TO = $ENV{\'HTTP_REFERER\'};
til
$JUMP_TO = \"http://www.soegemaskiner.dk\";
Avatar billede jesperkh Nybegynder
11. december 2000 - 14:02 #24
Nu lige for at sikker, at jeg har fatte det her rigtigt... laver jeg lige en lille liste over hvad jeg gør....

$SMTP_SERVER=\"localhost\"; Ændre jeg til    $SMTP_SERVER=\"mail.gpserver.com\";

#  @okaydomains=(\"http://yourdomain.com\", \"http://www.yourdomain.com\"); Fjerner jeg havelåge og ændre til:    @okaydomains=(\"http://sogemaskiner.dk\", \"http://www.sogemaskiner.dk\");

  $SCRIPT_NAME=\"http://yourdomain.com/cgi-bin/birdcast.cgi\"; Skal jeg lave mappe der hedder cgi-bin på min serv plads ? eller er det nok og bare ligge birdcast.cgi op på servpladsen og ændre den til:  $SCRIPT_NAME=\"http://sogemaskiner.dk/birdcast.cgi\";

  $SITE_NAME=\"The Name of Your Site\"; Ændre jeg til:  $SITE_NAME=\"Danske Søgemaskiner\";

  $SITE_URL=\"http://yourdomain.com/\"; Ændre jeg til:  $SITE_URL=\"http://sogemaskiner.dk/\";

Dette skulle være nok til at se om den virker... jeg går udfra at man kan vente med at rette e-mail inhold og html

så jeg gemmer den og upload den med FTP, sat til ASSI... og ligge denne side (http://sogemaskiner.dk/a.htm op med kalde link :<A HREF=\"http://sogemaskiner.dk/birdcast.cgi\">Tell your friends about this page</A>


Avatar billede jesperkh Nybegynder
11. december 2000 - 14:08 #25
I online manualen hos Golden planet,står der:

Perl CGI scripts

Forudsætningen for  at benytte Perl til egne CGI scripts, er at det er understøttet på den løsning du har valgt. Hvis dette ikke er tilfældet kan du kontakte support for at få opgraderet.

Bemærk at du ikke som udgangspunkt kan bruge Perl scripts der er skrevet til Linux/Unix.

Vi benytter ActivePerl, som du finder yderligere information omkring her: http://www.activestate.com/support

Hvis dit script skal sende mail, kan du benytte mail.firmanavn.dk (hvor firmanavn.dk naturligvis udskiftes med dit domænenavn). Husk blot at du skal have en fast afsender som er opretet som brugernavn på serveren - se evt. info om mail.

Normalt er det nok at give et script .pl for at afvikle det på serveren, men har du brug for at angive stien til perl er der

#!c:\\perl\\bin\\perl.exe

Betyder det at jeg skal omdøbe \"birdcast.cgi\" til birdcast.pl\" og hvad betyder \".pl\"

Avatar billede breum Nybegynder
11. december 2000 - 14:29 #26
cgi står for common gateway interface
pl står for perl

Nogle få steder skal perlscripts hedde .pl for at virke, men det er meget få steder!

imidlertid kan du roligt omdøbe \"birdcast.cgi\" til \"tipven.pl\" det tager det ingen skade af så skal du blot huste at rette $SCRIPT_NAME=\"http://sogemaskiner.dk/tipven.cgi\";
til
$SCRIPT_NAME=\"http://sogemaskiner.dk/tipven.pl\";
Avatar billede jesperkh Nybegynder
11. december 2000 - 14:51 #27
Hold da helt kæft... det virker prøve lige og gå her ind.. http://sogemaskiner.dk/a.htm og tryk så på det link der er der (den skal lkaldes der fra for at virke)

For at ændre det den skriver i toppen: http://sogemaskiner.dk/a.htm var det:$JUMP_TO = $ENV{\'HTTP_REFERER\'};
til
$JUMP_TO = \"http://www.soegemaskiner.dk\";
Avatar billede breum Nybegynder
11. december 2000 - 14:59 #28
Ja og den øvrige text i programmet kan du også ændre
Avatar billede breum Nybegynder
11. december 2000 - 15:05 #29
og du behøver ikke at kalde det som et link
hvis du kommer dette på en html side så virker det formentlig også!




<FORM METHOD=\"POST\" ACTION=\"http://sogemaskiner.dk/birdcast.pl\">
  <INPUT TYPE=\"HIDDEN\" NAME=\"call_by\" VALUE=http://sogemaskiner.dk>
  <TABLE BORDER=0 CELLPADDING=1 CELLSPACING=0 >
    <TR>
    <TD>&nbsp;</TD>
    <TD ALIGN=CENTER><B>Navn</B></TD>
    <TD ALIGN=CENTER><B>E-Mail Addresse</B><TD>
    </TR>
    <TR>
    <TD><B>Dig selv</B></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"send_name\"></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"send_email\"></TD>
    </TR>
    <TR>
    <TD><B>Ven 1</B></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipname_1\"></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipemail_1\"></TD>
    </TR>
    <TR>
    <TD><B>Ven 2</B></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipname_2\"></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipemail_2\"></TD>
    </TR>
    <TR>
    <TD><B>Ven 3</B></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipname_3\"></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipemail_3\"></TD>
    </TR>
    <TR>
    <TD><B>Ven 4</B></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipname_4\"></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipemail_4\"></TD>
    </TR>
    <TR>
    <TD><B>Ven 5</B></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipname_5\"></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipemail_5\"></TD>
    </TR>
  <TR>
  <TD>&nbsp;</TD>
  <TD ALIGN=CENTER COLSPAN=2>
  <B>Din besked</B><BR>
<textarea name=\"message\" wrap=virtual rows=5 cols=35></textarea>
    <BR>
    <INPUT TYPE=\"submit\" VALUE=\"SEND\">
    </TD>
    </TR>
  </TABLE>
  </FORM>
Avatar billede okay Nybegynder
11. december 2000 - 15:05 #30
kigger lidt rundt, og ser om jeg kan finde en til dig !!
Avatar billede breum Nybegynder
11. december 2000 - 15:06 #31
Og sådan her hvis man kun skal oplyse en modtager:


<FORM METHOD=\"POST\" ACTION=\"http://sogemaskiner.dk/birdcast.pl\">
  <INPUT TYPE=\"HIDDEN\" NAME=\"call_by\" VALUE=http://sogemaskiner.dk>
  <TABLE BORDER=0 CELLPADDING=1 CELLSPACING=0 >
    <TR>
    <TD>&nbsp;</TD>
    <TD ALIGN=CENTER><B>Navn</B></TD>
    <TD ALIGN=CENTER><B>E-Mail Addresse</B><TD>
    </TR>
    <TR>
    <TD><B>Dig selv</B></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"send_name\"></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"send_email\"></TD>
    </TR>
    <TR>
    <TD><B>Ven 1</B></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipname_1\"></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipemail_1\"></TD>
    </TR><TR>
  <TD>&nbsp;</TD>
  <TD ALIGN=CENTER COLSPAN=2>
  <B>Din besked</B><BR>
<textarea name=\"message\" wrap=virtual rows=5 cols=35></textarea>
    <BR>
    <INPUT TYPE=\"submit\" VALUE=\"SEND\">
    </TD>
    </TR>
  </TABLE>
  </FORM>
Avatar billede jesperkh Nybegynder
11. december 2000 - 17:11 #32
hvis jeg vælger <FORM METHOD=\"POST\" ACTION=\"http://sogemaskiner.dk/birdcast.pl\"> ovs. på en html side, skal jeg så fjerne det her:

##################################################################
sub draw_request
{
print \"Content-type: text/html\\n\\n\";

#BNB SAYS! Here is the part that draws the page that asks the
#reader to enter e-mail addresses and names. Tailor it to meet
# your needs if necessary. DO NOT disturb the lines with
# __REQUEST__ on them.

print <<__REQUEST__;
<BODY BGCOLOR=\"#FFFFFF\">
<CENTER>
<P>                                                             
<TABLE WIDTH=550 BGCOLOR=\"CCE6FF\">
<TR>
<TD>
<FONT FACE=\"ARIAL\" SIZE=4 COLOR=\"#009999\">
  <B>
  <CENTER>
  SUGGEST THIS PAGE TO A FRIEND...<P>
  <A HREF=\"$ENV{\'HTTP_REFERER\'}\">$ENV{\'HTTP_REFERER\'}</A>
  </CENTER>
  </B>
  </FONT>
  <BLOCKQUOTE>
<FONT FACE=\"ARIAL\" SIZE=2 COLOR=\"#000000\">
  If you have a friend that you would like to recommend this page to,
  or if you just want to send yourself a reminder, here is the easy
  way to do it!
  <P>
  Simply fill in the e-mail address of the person(s) you wish to tell
  about $SITE_NAME, your name and e-mail address (so they do
  not think it is spam or reply to us with gracious thanks),
  and click the <B>SEND</B> button.
  If you want to, you can also enter a message that will be included
  on the e-mail.
  <P>
  After sending the e-mail, you will be transported back to the
  page you recommended!
</FONT>
<FORM METHOD=\"POST\" ACTION=\"$SCRIPT_NAME\">
  <INPUT TYPE=\"HIDDEN\" NAME=\"call_by\" VALUE=$ENV{\'HTTP_REFERER\'}>
  <TABLE BORDER=0 CELLPADDING=1 CELLSPACING=0 >
    <TR>
    <TD>&nbsp;</TD>
    <TD ALIGN=CENTER><B>Name</B></TD>
    <TD ALIGN=CENTER><B>E-Mail Address</B><TD>
    </TR>
    <TR>
    <TD><B>You</B></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"send_name\"></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"send_email\"></TD>
    </TR>
__REQUEST__
    for ($i=1;$i<$MAXNUM+1;$i++)
    {
    print <<__STOP_OF_ROW__;           
    <TR>
    <TD><B>Friend $i</B></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipname_$i\"></TD>
    <TD><INPUT TYPE=\"TEXT\" NAME=\"recipemail_$i\"></TD>
    </TR>
__STOP_OF_ROW__
    }
    print <<__REQUEST2__;           
  <TR>
  <TD>&nbsp;</TD>
  <TD ALIGN=CENTER COLSPAN=2>
  <B>Your Message</B><BR>
<textarea name=\"message\" wrap=virtual rows=5 cols=35></textarea>
    <BR>
    <INPUT TYPE=\"submit\" VALUE=\"SEND\">
    </TD>
    </TR>
  </TABLE>
  </FORM>
  </BLOCKQUOTE>
  <CENTER>
    <FONT SIZE=\"-1\">
    Free recommendation script created by<BR>
    </FONT>
    <A HREF=\"http://bignosebird.com/\"><B>BigNoseBird.Com</B></A><BR>;
    <FONT SIZE=\"-1\">
    <I>The Strangest Name in Free Web Authoring Resources<I><BR>
    </FONT>
    <P>
  </CENTER>
  </TD>
  </TR>
  </TABLE>
__REQUEST2__
}

##################################################################

fra scriptet.... ???

Avatar billede jesperkh Nybegynder
11. december 2000 - 17:40 #33
hvor får $ENV{\'HTTP_REFERER\'... sin værdi fra ???
Avatar billede breum Nybegynder
11. december 2000 - 22:07 #34
$ENV{\'HTTP_REFERER\'} indeholder den side der har linket til scriptet
Avatar billede jesperkh Nybegynder
12. december 2000 - 10:42 #35
vil det sige at den får sin værdi fra:<INPUT TYPE=\"HIDDEN\" NAME=\"call_by\" VALUE=http://sogemaskiner.dk> ..??

Hvad med mit spørmål om jeg skal fjerne html koderne fra scriptet, hvis jeg vælger og kalde den fra en <FORM> på en anden html side...????
Avatar billede breum Nybegynder
12. december 2000 - 11:54 #36
Hvis du i HTML-formen har en :<INPUT TYPE=\"HIDDEN\" NAME=\"call_by\" VALUE=http://sogemaskiner.dk> så bliver JUMP_TO til denne, hvis du ikke skriver linien \"mærker\" den hvilken side der har henvist til scriptet.
Det vil sige den side hvor formen er på. 

Så det var ikke helt dækkende hvad jeg skrev tidligere om $JUMP_TO = \"http://www.soegemaskiner.dk\";

Behold scriptet som det var og lav rettelsen i den linie du selv nævner
<INPUT TYPE=\"HIDDEN\" NAME=\"call_by\" VALUE=http://sogemaskiner.dk>
Avatar billede jesperkh Nybegynder
12. december 2000 - 12:05 #37
Du ærligt fortjent din 200 point... og jeg er blevet meget kloger på CGI verden..... og takker for hjælpen...

mvh

Jesper
Avatar billede breum Nybegynder
12. december 2000 - 12:12 #38
Velbekomme, glad for at kunne hjælpe!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester