Avatar billede hornbech Praktikant
16. september 2006 - 19:35 Der er 7 kommentarer og
1 løsning

Til og afmelde nyhedsbrev

Jeg vil gerne have at folk skal kunne til og afmelde nyhedsbreve.
Det skal være meget simpelt ikke noget med nogen database.

Det bedste er at de kan udfylde en form med navn adresse og email m.m og når de trykker tilmeld så bliver der sendt en mail med oplysningerne.

Der vil ikke være nok brugere til at jeg vil ofre tiden på en database.

På forhånd tak
René
Avatar billede apo Praktikant
16. september 2006 - 19:48 #1
Hvis du ikke vil bruge server-site scripting eller database, mener jeg ikke at du kan gøre andet end dette:

<a href="mailto:nyhedsbrev@ditsite.dk?subject=Tilmelding%20til%20nyhedsbrevet">Tilmeld dig nyhedsbrevet her</a>

Jeg mener ikke, at man kan afsende oplysninger fra en formular uden brug af server-site scripting.
Avatar billede apo Praktikant
16. september 2006 - 19:49 #2
Det er muligt, at man kan med javascript...
Avatar billede jesper-moeller Nybegynder
16. september 2006 - 19:57 #3
Har lige leget med et lille script til at til/framelde sig et nyhedsbrev.
Du er velkommen til at bruge det hvis du kan/vil

Scriptet er kun lavet til mailadressen

Scriptet laver en txt fil med alle adresserne (Den bør være read/write Owner only)

Tilpas informationerne mellem ******* linierne og sæt det hele ind på siden
Omdøb siden til .php

--------------------------------


<?php
// **************************************
$file = "componenter/listen.txt";
$mainmessage = "Insert your Email";
$errormessage1 = "Error: The Email is not valid";
$errormessage2 = "Error: The server dont exist";
$errormessage3 = "Your Email is already on the mailing list";
$errormessage4 = "Your Email is not on the mailing list";
$message1 = "Your Email has been added.<br>Thanks for joining.";
$message2 = "Your Email has been removed. ";
$from_email="John D <john@mydomain.com>";
$replayto="john@mydomain.com";
$mail_subject1="Confermation of your subscribtion to News Letter";
$mail_message1="Your email has been added to the News Letter list.
Thanks for joining.

Best regards
John D

---------------------------------------------------------------------
If its not you that  have subscribe to the News Letter list
Pleas go to http://www.mydomain.com/ to remove you from the list...
";
$mail_subject2="Confermation of your removal from News Letter";
$mail_message2="Your email has been removed from the News Letter list.

Best regards
John D

-----------------------------------------------------------------
If its not you that  have unsubscribe from the News Letter list
Pleas go to  http://www.mydomain.com/ to add you to the list...
";
// ************************
$message = $mainmessage;
$email = "";
$formcheck = 0;
if (!$_POST){make_form($message);
}else{
    $email=$_POST["email"];
    $email=strtolower($email);
    $action=$_POST["action"];
        if ($email==""){
            $message = $mainmessage;
            $formcheck = 1;
        }else{
            $emailcheck=trim($_POST["email"]);
            $pattern = "^([[:alnum:]]|_|\.|-)+@([[:alnum:]]|\.|-)+(\.)([a-z]{2,4})$";
                if (!eregi($pattern, $emailcheck)){
                    $message = $errormessage1;
                    $formcheck = 1;
                }else{
                    $email_server=substr($email,strpos($email, "@")+1);
                        if (checkdnsrr($email_server)!=1){
                            $message = $errormessage2;   
                            $formcheck = 1;
                        }
                }
        }
    if ($formcheck==0){
        if (file_exists($file)){
            $file_content=file_get_contents($file);
        }else{
            $cf = fopen($file, "w") or die("Error: file can not be create.<BR>Please check permissions.");
            fputs($cf, "News Mail subscribers\n");
            fclose($cf);
        }
    }
    if ($formcheck==0){
        if ($action=="subc"){
            if(strpos($file_content,"<$email>")>0){
                $message = $errormessage3;
                $formcheck = 1;
            }else{
                $cf = fopen($file, "a");
                fputs($cf, "\n<$email>");
                fclose($cf);
                mail($email, $mail_subject1, $mail_message1,"From: $from_email\nReply-To: $replayto\nContent-Type: text/plain");
                $message = $message1;
                $formcheck = 1;
                flush();
            }
        }
    }
    if ($formcheck==0){
        if ($action=="unsubc"){
            if(strpos($file_content,"<$email>")==0){
                $message = $errormessage4;
                $formcheck = 1;
            }else{
                $file_content=preg_replace ("/\n<$email>/","",$file_content);
                $cf = fopen($file, "w");
                fputs($cf, $file_content);
                fclose($cf);
                mail($email, $mail_subject2, $mail_message2,"From: $from_email\nReply-To: $replayto\nContent-Type: text/plain");
                $message = $message2;
                $formcheck = 1;
                flush();
            }
        }
    }
make_form($message);
}
function make_form($message){
?>
                        <form action="<? $PHP_SELF; ?>" method="post">
                            <table>
                                <tr>
                                    <td></td>
                                    <td colspan="3"><big style="font-weight: bold;">Sign up for News Letter</big></td>
                                    <td></td>
                                </tr>
                                <tr>
                                    <td></td>
                                    <td colspan="3">
                                    <!-- Message -->
<?php
    print ($message);
?>
                                    </td>
                                    <td></td>
                                </tr>
                                <tr>
                                    <td></td>
                                    <td colspan="3"><input name="email" size="30" type="text"></td>
                                    <td></td>
                                </tr>
                                <tr>
                                    <td></td>
                                    <td ><input name="action" value="subc" type="radio" checked>Subscribe</td>
                                    <td></td>
                                    <td ><input name="action" value="unsubc" type="radio" c>Unsubscribe</td>
                                    <td></td>
                                </tr>
                                <tr>
                                    <td></td>
                                    <td></td>
                                    <td><input value="Submit" type="submit"></td>
                                    <td></td>
                                    <td></td>
                                </tr>
                            </table>
                        </form>
<?php
}
?>
Avatar billede hornbech Praktikant
16. september 2006 - 19:57 #4
Jeg har forsøgt denne
Jeg har mit webhotel hos www.one.com

Og de skriver: Hvis du ønsker at sende e-mails fra din web-side via et script kan dette naturligvis godt lade sig gøre. Her skal du bruge vores interne smtp-serveradresse: mailout.one.com

Men jeg ved ikke helt hvad jeg skal ændre ved nedenstående kode


Tilmelding
<form action="http://formmail.DIN_UDBYDER.dk/formmail.pl" method="post">
<table class="transparent">
  <tr>
    <td>Dit navn</td>
    <td><input name=realname size=45></td>
  </tr>
  <tr>
    <td>Din e-mail</td>
    <td><input name=email size=45></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" value="Send"></td>
  </tr>
</table>
<input name="subject" type="hidden" value="Tilmelding til Nyhedsbreve">
<!-- Husk her skal du erstatte dit domæne -->
<input name="recipient" type="hidden" value="info@dit-domæne.dk">
<!-- eller en tak side kan du sætte ind som value -->
<input type="hidden" value="http://jubbi.dk" name="redirect">
<input name="required" type="hidden" value="email">
</form>
<a href="til_side_med_frameld.html">Frameld nyhedsbrev</a> (her linker du bare
til en frameld side, som er bygget p&aring; samme m&aring;de som din tilmelding.html blot skal
du &aelig;ndre value i subject til "Framelding af nyhedsbreve")
Avatar billede jesper-moeller Nybegynder
16. september 2006 - 20:09 #5
Mit script køre også hos www.one.com ... :-)
Avatar billede steak Nybegynder
17. september 2006 - 12:57 #6
Avatar billede hornbech Praktikant
17. september 2006 - 19:59 #7
Indtil videre fungerer "jesper-moellers" forslag rimeligt, jeg kunne godt bruge at der også blev sendt en mail til mig også når der er tilmeldt eller afmeldt brugere og ikke kun brugeren.
Så hvis du kommer med et svar så får du point
Avatar billede jesper-moeller Nybegynder
17. september 2006 - 20:15 #8
Du kan prøve at kopiere de to liner der sende mail

mail($email, $mail_subject1, $mail_message1,"From: $from_email\nReply-To: $replayto\nContent-Type: text/plain");
og
mail($email, $mail_subject2, $mail_message2,"From: $from_email\nReply-To: $replayto\nContent-Type: text/plain");

Til 2x2 liner
mail($email, $mail_subject1, $mail_message1,"From: $from_email\nReply-To: $replayto\nContent-Type:
mail($from_email, $mail_subject1, $email,"From: $from_email\nReply-To: $replayto\nContent-Type:

Og ligedan i den næste

der er de liner der sender mailen
$email = til , $mail_subject1 = emne , $mail_message1 = text
Osv. osv.
så ved at ændre hvem den sendes til (og evnt teksten) i den kan du lave det om. i dette tilfælde bliver $from_email til modtageren (dig)
Nu vil den så sende to mails .. den til dig med emailen på den der har tilmeldt sig

Har ikke teste men skulle virrke fint
du kan også lave feks en $mail_message3 til dine mails og sætte den ind i din mail
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