Avatar billede jjensen Juniormester
09. juli 2000 - 13:26 Der er 16 kommentarer og
1 løsning

Fortæl en ven-form

Håber nogen kan hjælpe:
http://www.dht.dk ligger der, i venstre frame, en form til at lægge en e-mail adresse og sit eget navn - ved at trykke send får e-mailen tilsendt en standard besked...

Det eneste jeg kan finde i koden ang. dette er følgende:
<FORM ACTION="http://www.dht.dk/takforbesked.php" METHOD="POST">
<INPUT TYPE="hidden" NAME="subject" VALUE="DHT Kontaktformular">
<TABLE BORDER="0">
        <TR>
        <TD VALIGN="TOP">
        <FONT FACE="tahoma" SIZE="-2" COLOR="black">
        <center><b>Fortæl en <br>ven om os</b></center>
        </FONT></TD>
        </tr>
        <tr>
        <TD VALIGN="TOP" ALIGN="LEFT">
        <INPUT TYPE="TEXT" NAME="modtager" value="en@ven.dk" size="8">
        <INPUT TYPE="TEXT" NAME="afsender" value="Dit navn" size="8">
        <center><input type=image src="../images/sendbesked.gif" border="0" name="sub"></center>
       
        </TD>
        </TR>

</table>
        </FORM>

Men jeg mangler standardbeskeden??? Jeg ligger selv hos DHT, og burde altså have adgang til denne service også...

Mvh,
John
Avatar billede tigerdyr Nybegynder
09. juli 2000 - 14:40 #1
Du skal bare bruge en E-mail komponent og en SMTP server...

Nu er DHT godt i nok PHP, som jeg ikke kan endnu, men ellers kan du jo også lave det i enten ASP, JSP eller CGI (og sikkert flere andre)... så længe det er et server-side script og du har en SMTP.
Avatar billede jjensen Juniormester
09. juli 2000 - 15:45 #2
-> Tigerdyr: Jeg er desværre ikke kompetent i noget af det du anbefaler :-(

Eksempler fra både dig og andre, er defor meget velkomne...
Avatar billede mpj Nybegynder
09. juli 2000 - 16:04 #3
Hvad er det du vil have?
Avatar billede jjensen Juniormester
09. juli 2000 - 18:16 #4
Jeg har vist ikke udtrykt mig helt klart - Sorry: Jeg mangler en form, af en slags, hvor brugeren kan indtaste en e-mail adresse, således e-mail adressen får en forudbestemt besked automatisk. (På engelsk hedder de ofte bare "tell a friend", underforstået; om dette site)

Se eks på: http://www.dht.dk ligger der, i venstre frame, en form til at lægge en e-mail adresse og sit eget navn - ved at trykke send får e-mailen tilsendt en standard besked...
Avatar billede coolidk Nybegynder
09. juli 2000 - 18:47 #5
Hvad med Mailto ?

-dEnnis
Avatar billede jjensen Juniormester
09. juli 2000 - 20:23 #6
Det jeg mangler er kode-eksempler.......

/John
Avatar billede hatecaps Nybegynder
09. juli 2000 - 20:44 #7
standardbeskeden ligger i php skriptet (eller skriptet læser det fra en fil).

for at kunne bestemme hvad den besked skal indeholde ,er du nødt til at have adgang til selve skriptet (ikke bare brugen af det).

Det eneste rigtige for at løse dit problem er nok at lave et skript selv, hvor du selv bestemmer indholdet af den besked der sendes af sted.
Avatar billede jjensen Juniormester
09. juli 2000 - 20:49 #8
-> hatecaps: Hmm OK! Er det noget der er et større arbejde? er det evt. noget du kan hjælpe med?

Evt. bare et eksempel, så kan jeg sikkert godt finde ud af rette til osv.

/John
Avatar billede tigerdyr Nybegynder
09. juli 2000 - 21:33 #9
Hvilke(n) Asp e-mail komponent har du adgang til på din server ??
Så kan det ret nemt laves!
Avatar billede jjensen Juniormester
09. juli 2000 - 21:41 #10
Jeg er ikke sikker jeg har adgang til noget asp - se evt. http://www.dht.dk/support/ - der fremgår kun noget om SSI, Perl & CGI og PHP
Avatar billede tigerdyr Nybegynder
09. juli 2000 - 22:12 #11
http://www.dht.dk/support/formmail.shtml

Du har en formmail til din rådighed!
Om du kan lave den med det, kan jeg ikke lige gennemskue (den tager jo normalt en statisk e-mail som modtager og du vil bruge dynamisk)... og i php kan jeg ikke hjælpe, beklager!
Avatar billede hatecaps Nybegynder
10. juli 2000 - 19:20 #12
ok, du har adgang til CGI (perl) og sendmail. Det er alt hvad du behøver for at køre et skript.

det du nu skal gøre er at lave et perl skript som :
læser den e-mail adresse brugeren indtaster,
indføjer det navn brugeren indtaster i en prefabrikeret tekst,
og til sidst sender hele skidtet til den angevne modtager.

skriptet er ret simpelt, du kan læse alt hvad du har brug for mange steder , f.eks http://www.cgi101.com
Avatar billede jjensen Juniormester
10. juli 2000 - 20:06 #13
-> hatecaps - det lyder helt rigtigt som du har linet det op - desværre, virker det for mig uoverskueligt at sætte mig ind i detaljerne omkring at lave et sådant script.  - Men Thanx anyway :-)

Jeg må forsøge anden vej for at få mit problem løst...

Kender nogen en side hvor der evt. ligger noget kode a lá det jeg skal bruge?
Avatar billede jjensen Juniormester
10. juli 2000 - 20:32 #14
Jeg fandt et eksempel på hatecaps foreslaa: cgi101.com

Men har lidt problemer med selve scriptet - Hvad gør denne linie:
# location of sendmail:
$mailprog = "/usr/sbin/sendmail";

Det er vel her det går galt? Se evt. http://www.global-gateway.com/tellafriend.htm

#!/usr/bin/perl
#
# 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.global-gateway.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!");
}

Avatar billede hatecaps Nybegynder
10. juli 2000 - 20:53 #15
# location of sendmail:
$mailprog = "/usr/sbin/sendmail";

sætter stien til sendmail på den server, og ifølge dht er det den rigtige, altså er det ikke der det går galt, men snarerer her : @allowed_domains =("www.global-gateway.com"); 

her skal du skrive dit domæne navn i stedet for www.global-gateway.com
Avatar billede jjensen Juniormester
10. juli 2000 - 20:58 #16
Det er domænet der skal bruges!

Jeg læste også på dht's side: http://www.dht.dk/support/perl.shtml at man skulle oploade i Ascii, det har jeg så gjort, men kan stadig ikke få det til at virke!
Se evt. resultat, efter at trykke send på: http://www.global-gateway.com/tellafriend.htm

på DHT's support side står desuden noget om CHMOD755, jeg ikke rigtig forstår...
Avatar billede jjensen Juniormester
10. juli 2000 - 21:58 #17
Jeg flytter spørgsmålet over i perl - tak for hjælpen indtil videre...
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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