Avatar billede visto Guru
15. december 2007 - 17:35 Der er 12 kommentarer og
1 løsning

To scripts søges: 1) mail-afsendelse, 2) nyhedsbrevtilmelding

Jeg skal skifte host og skal i den forbindelse have erstattet mine ASP-scripts med PHP-scripts.

På min hjemmeside ser HTML koden for mail-formen således ud:

<form method="POST" action="send.asp" name="Formmail1" id="form">
<p>Dit navn:<br>
<input type="text" name="Navn" size="30" maxlength="100"></p>

<p>Din mail-adresse (skal udfyldes):<br>
<input type="text" name="Email" size="30" maxlength="100"><br>
<br>
Emne:<br>
<input type="text" name="Emne" size="30" maxlength="100"><br>
</p>
<p>Besked:<br>
<textarea rows="8" name="Besked" cols="40"></textarea></p>
<p>
<input type="submit" value="Send besked" name="B1">
</p>
</p>
</form>

Dvs. her skal jeg have erstattet "send.asp" med en tilsvarende PHP fil.
ASP scriptet ser således ud:

<%
set msg = Server.CreateOBject( "JMail.Message" )
msg.Logging = true
msg.silent = true
msg.ContentType = "text/html"
msg.From = Request.Form("Email")
msg.FromName = Request.Form("Navn")
msg.AddRecipient "blabla@mitdomæne.dk", "mitdomæne.dk"
msg.Subject = "Formularbesked fra mitdomæne.dk"
msg.Body = "Fra: " & Request.Form("Navn") & "<br><br>Email: " & Request.Form("Email") & "<br><br>Emne: " & Request.Form("Emne") & "<br><br>Besked: " & Request.Form("Besked")
if not msg.Send("localhost" ) then
Response.write "<pre>" & msg.log & "</pre>"
else
Response.write "<p class=""besked""><br><br>Beskeden er sendt</p>"
end if
Set msg = Nothing
%>

Tilsvarende ser HTML for nyhedsbrevtil- og afmelding sådan ud:

<p>Dit navn:<br>
<input type="text" name="Navn" size="30" maxlength="100"></p>

<p>Din mail-adresse (skal udfyldes):<br>
<input type="text" name="Email" size="30" maxlength="100"><br>
<br></p>

<p><input type="radio" name="M" value="tilmeld" id="add" checked><label for="add"> Tilmeld</label><br />
<input type="radio" name="M" value="afmeld" id="mod"><label for="mod"> Afmeld</label></p>

og ASP-scriptet, som altså skal udskiftes:

<%
set msg = Server.CreateOBject( "JMail.Message" )
msg.Logging = true
msg.silent = true
msg.ContentType = "text/html"
msg.From = Request.Form("Email")
msg.FromName = Request.Form("Navn")
msg.AddRecipient "blabla@mitdomæne.dk", "mitdomæne.dk"
msg.Subject = "Ang. nyhedsbrev"
msg.Body = "Fra:<br>" & Request.Form("Navn") & "<br><br>Email:<br>" & Request.Form("Email") & "<br><br>Ønske:<br>" & Request.Form("M")
if not msg.Send("localhost" ) then
Response.write "<pre>" & msg.log & "</pre>"
else
Response.write "<p class=""besked""><br><br>Du får en bekræftelse, når din til- eller afmelding er registreret.</p>"
end if
Set msg = Nothing
%>

Kan I hjælpe med de PHP-scripts jeg skal bruge?

Er det kun scripts, der skal ændres - jeg mener: jeg kan vel godt beholde HTML koderne for de to forms?
Avatar billede visto Guru
15. december 2007 - 23:37 #1
Nu har jeg selv klaret spårgsmålet vedr. mail-form, så nu er der kun nyhedsbrevs-delen tilbage.
Avatar billede visto Guru
16. december 2007 - 20:27 #2
Det kommer bag på mig, at spørgsmålet skulle være så svært. Måske lidt visuelt kan hjælpe: Jeg skal bruge et PHP-script, der kan sende oplysningerne fra nedenstående webside til websidens mailadresse:
http://vinsiderne.dk/kontakt/nyhedsbrev/nyhedsbrev.htm

Dette er hvad der resterer for at spørgsmålet er besvaret.
Avatar billede Slettet bruger
16. december 2007 - 22:01 #3
Hej visto ... nu er jeg så her igen - hvad er det du skriver om - er det din side du henviser til (vinsiderne)- eller er det bare en tilsvarende du vil have lavet ?
Den er jo lavet i Frontpage

Lidt forvirret for jeg ser at du også har oprettet spørgsmål om samme på php-fusion, er det phpfusion det skal køre sammen med ?
Avatar billede visto Guru
16. december 2007 - 22:35 #4
Ja, vinsiderne.dk er min side, men det er en fejl at der henvises til den ovenfor. Jeg havde rettet det til "mitdomæne" i første afdeling, men glemte det i anden, så der fik jeg for første gang uheldigvis kastet mail-adressen synligt på nettet. Øv!
Frontpage er jo uvedkommende, ved ikke hvad du mener. Jeg skriver og tilføjer en masse koder manuelt, herunder de forms og scripts der er på tale ovenfor. Lader blot FP klare det grove.

Og ja, jeg har oprettet spørgsmålet adskillige steder i ind- og udland. Det er det sidste jeg mangler svar på for at kunne skifte host og søsætte et nyt diskussionsforum.
Jeg skal ikke køre noget sammen med phpfusion (aner ikke hvem der er), har oprettet spørgsmålet der, fordi jeg fandt et php-forum.
Avatar billede visto Guru
16. december 2007 - 22:36 #5
Det der var en fejl var, at jeg i script nr. 2 i det oprindelige spørgsmål henviste til vinisderne inkl. mail-adresse, selvfølgelig ikke ang. det visuelle skrevet 20:27:52.
Avatar billede Slettet bruger
16. december 2007 - 22:53 #6
@..visto... Jeg tror så du skal se på dette link,der er vist det du skal bruge.
http://www.phplist.com/
phplist is an open-source newsletter manager. phplist is free to download

jeg har ingen erfaring med det men kigget i koden, og det ser interessant ud, du kan faktisk se her i configurationen hvad den kan/gør. Der er en meget fint beskrivelse af de enkelte ting i config.php filen.
Avatar billede Slettet bruger
16. december 2007 - 23:01 #7
Det ser ud til at der er mange finesser i dette script bl. a. 'cronnjob' Periodiske job
Med periodiske job (cronjob) kan du nemt oprette scripts der bliver kørt på forskellige tidspunkter.

Læs evt. mere om dette på dit nye webhost 'GIGAHOST' som også tilbyder dette, det er der ikke mange webudbydere der har.
Avatar billede visto Guru
17. december 2007 - 20:41 #8
Jeg får nok ikke tid på denne side af jul til at kigge på noget, der er mere eller mindre avanceret. Mit ønske er at få det site til at køre på den nye host senest 1. juledag (så det er begyndt at haste lidt nu), og her har jeg mest af alt bare brug for, at der er præcis de samme "services", som der aktuelt er på sitet. Og min nuværende måde at håndtere nyhedsbreve på er dybt primitiv: Folk udfylder formularen med (som det ses på sitet) 1) navn, 2) mail-adresse, 3) de vælger om de vil tilmelde eller afmelde. Når de trykker på send knappen får de en besked på skærmen om, at de vil få svar når registreringen er foretaget, og jeg modtager en helt banal mail med de leverede oplysninger, som jeg så håndterer helt manuelt. Det er ikke en pind smart, og det kunne da godt trænge til en renovering, men det bliver af tidsmæssige grunde ikke lige nu, og jeg vil ikke lade mit hostskifte og lanceringen af det færdige diskussionsforum afvente dette.
Så jeg har blot brug for et script der kan præcis det samme som det tidligere citerede ASP-script:

<%
set msg = Server.CreateOBject( "JMail.Message" )
msg.Logging = true
msg.silent = true
msg.ContentType = "text/html"
msg.From = Request.Form("Email")
msg.FromName = Request.Form("Navn")
msg.AddRecipient "blabla@mitdomæne.dk", "mitdomæne.dk"
msg.Subject = "Ang. nyhedsbrev"
msg.Body = "Fra:<br>" & Request.Form("Navn") & "<br><br>Email:<br>" & Request.Form("Email") & "<br><br>Ønske:<br>" & Request.Form("M")
if not msg.Send("localhost" ) then
Response.write "<pre>" & msg.log & "</pre>"
else
Response.write "<p class=""besked""><br><br>Du får en bekræftelse, når din til- eller afmelding er registreret.</p>"
end if
Set msg = Nothing
%>
Avatar billede Slettet bruger
17. december 2007 - 22:02 #9
Der er så ingen grund til at lave det i PHP på nuværende, ved at bruge et PHP-script som det jeg sendte dig link til, er det jo meningen at kundens/brugerens sendte oplysninger gemmes i en database, hvor du så senere kan bestemme at sende ham nyhedsmail og andre relevante ting, da du nu midlertidigt .vil behandle mails manuelt kan du nøjes med at bruge en alm malform i HTML og dem findes der en masse af på nettet som du kan tilrette med dine egne data
Avatar billede visto Guru
17. december 2007 - 22:21 #10
Ja formen kan jo - som den også er på mit site aktuelt - være html, men som jeg forstår det, skal der vel et script til at sørge for ekspederingen af de indtastede data, så de ender i min mailboks. Sådan husker jeg det, da jeg lavede kombinationen af HTML-form og ASP script til at klare jobbet.
Er jeg helt galt afmarcheret?
Jeg kan ikke lige se hvordan html-kode alene skulle kunne formidle data fra en hjemmeside til min mailboks...
Avatar billede Slettet bruger
17. december 2007 - 23:38 #11
Jeg har lavet et eksempel her udfra et tidligere script jeg har brugt - du må så selv  indsætte dine aktuelle data.

filens navn skal ende på .php ( tilmeld.php )

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

<?php
if ($send)
  {
    // Mailen sendes til denne adresse.
    $recipient = "din@mail.dk";
    // Emne
    $subject = "Mail fra dit_domain's mailform";

    $message .= "Navn: $navn\n";
    $message .= "Adresse: $adr\n";
    $message .= "Postnr: $pnr\n";
    $message .= "By: $by\n";
    $message .= "Telefon: $tlf\n";
    $message .= "Mail: $mail\n";
    $message .= "WWW: $url\n";
    $message .= "AT: $menu\n";
    $message .= "Besked: $besked\n";


    $headers = "X-Mailer: http://www.dit-domain.dk\r\nFrom: " . $mail . "\r\n";


}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
      <title>Nyhedsbrev</title>
<meta name="Generator" content=" ">
</head>
  <body bgcolor="#C0C0C0" text="#000000" link="#0000FF" vlink="#660066" alink="#FF0000">
  <center>
      <h4> Vi udsender et nyhedsbrev en gang imellem, enten når der dukker noget virkelig bemærkelsesværdigt op på forhandlernes vinhylder, når vi tildeler en vin fem stjerner, når der kommer nye typer indhold på vores vinsider, eller når der er andet interessant at fortælle.
Der går typisk ca. to uger mellem hvert nyhedsbrev.

Du kan til- og afmelde dig nyhedsbrevet herunder.<br></h4>
      <hr width="90%" style="border:dotted;">
<form method="post" onsubmit="return checkform(this);">
        <h2>Brugers data</h2>
        <table>
        <tr><td>
    Navn:</td><td><input type="text" size="30" maxlength="30" name="navn"></td></tr>
        <tr><td>
    Adresse:</td><td><input type="text" size="30" maxlength="30" name="adr"></td></tr>
        <tr><td>
    Postnr :</td><td><input type="text" size="30" maxlength="4" name="pnr"></td></tr>
        <tr><td>
    By:</td><td><input type="text" size="30" maxlength="30" name="by"></td></tr>
        <tr><td>
    Telefon:</td><td><input type="text" size="30" maxlength="8" name="tlf"></td></tr>
        <tr><td>
    E-mail:</td><td><input type="text" size="30" maxlength="40" name="mail"></td></tr>
        <tr><td>
    www/URL:</td><td><input type="text" size="30" maxlength="40" name="url"></td></tr>
        </table>
      <hr width="90%" style="border:dotted;">
        <h2><font face="Verdana, Arial, Helvetica" size="2">V&aelig;lg Tilmelding/Afmelding:Nyhedsbrev</font></h2>

        </p>
        <dl>
            <dd>
            <font face="Verdana, Arial, Helvetica" size="2">
            <select name="menu">
            <option value="0" selected> V&aelig;lg her !</option>
            <option value="Tilmelding">Tilmelding</option>
            <option value="Afmelding">Afmelding</option>

            </select></font>
            </dd>
        </dl>
        <p>
      <hr width="90%" style="border:dotted;">
      <table>
      <tr><td>
        Dine bemærkninger  :</td></table>
        <td>
        <textarea wrap="physical" rows="5" cols="60" name="besked"></textarea></td></tr>
<br><p>
        <font face="Verdana">
        <input type="submit" value="Indsend formular" name="send">
        <input type="reset" value="Nulstil felter" name="reset"></font></p>
      </form>
  </body>
</html>
Avatar billede visto Guru
18. december 2007 - 19:30 #12
>ibtage: Tak for dit bud. Tilfældet ville, at jeg, samtidig med at du har lavet dit, modtog en hjælpende hånd fra Gigahost, som jeg i desperation over ikke at kunne komme videre, havde spurgt om de kunne hjælpe, fordi det var det sidste jeg manglede for at kunne flytte over til dem. Og minsandten, så har de sendt et lille script (selv om jeg endnu ikke er tilmeldt hos dem - support på forhånd, og endda ud over det som har med selve hostingen at gøre; det er sørme flot), et script der gør præcis det samme som det gamle. Det virker ikke perfekt (man får ingen fejlbesked, hvis man ikke har udfyldt mail-adresse, men det kan jeg altid tage fat på, når jeg får tid.) Men jeg kan dog få besked om til- og afmeldinger via mine radio-buttons.
Så jeg vælger at bruge det. Og kan dermed komme videre med mit hostskift osv.

Din indsats og hjælpsomhed, ibtage, fortjener dog point, så læg et svar.

Til orientering er her scriptet, som jeg går videre med. (Der kommer nok senere et spørgsmål om, hvordan jeg får det til at give besked, hvis mail-feltet ikke er udfyldt eller er udfyldt uden @.)

<?

$subject  = "Ang. nyhedsbrev";
$recipient = 'info@mit_domæne.dk';
$message  = "Fra: <br /> ".htmlspecialchars($_REQUEST['Navn'])."<br /><br /> Email: <br />";
$message  .= htmlspecialchars($_REQUEST['Email'])."<br /><br /> Ønske: <br
/>".htmlspecialchars($_REQUEST['M']);
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers  .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers  .= 'From: mit_domæne.dk' . "\r\n";

if(mail($recipient, $subject, $message, $headers)){
    ?><p class="besked"><br><br>Du får en bekræftelse, når din
    til- eller afmelding er registreret.</p><?
} else {
    ?><p class="besked"><strong>Fejl:</strong> Mailen kunne ikke sendes.</p><?
}
?>
Avatar billede Slettet bruger
18. december 2007 - 20:50 #13
Jeg lægger et svar og ønker dig held og lykke
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