Avatar billede jakethecake Nybegynder
13. oktober 2003 - 11:04 Der er 23 kommentarer og
1 løsning

Oprettelse af tilmeld/afmeld

Jeg søget et script som kan give brugere på vores websted mulighed for at tilmelde sig eller afmelde et nyhedsbrev. Jeg forestiller mig at listen over tilmeldte skal være tilgængeligt i  et samlet dokument. Er der nogen der ved om dette kan lade sig gøre?
Avatar billede krydset Nybegynder
13. oktober 2003 - 11:22 #1
Jeg har lige lavet et det kommer her

<?PHP
//tilmeld_news
function tilmeld_news() {
    include("dbconnect.php");
    $email = $_POST['email'];
   
    $result = mysql_query("SELECT * FROM mailing_liste WHERE email ='$email'");
    $row = mysql_fetch_array($result);
   
    if (mysql_num_rows($result) == 1) {
       
          echo "<table id='slet_email'>";
        echo "<tr>";
        echo "<td><strong>E-Mailen $email findes allerede</strong><br />Hvis du har fået ny E-Mail indtast venligst denne her<br /> E-Mail <strong>$email</strong> i slet feltet og tryk slet fra denne liste<td>";
        echo "</tr>";
        echo "</table>";



    } else {
       
       
          mysql_query("INSERT INTO mailing_liste (email) VALUES('$email')") or die(mysql_error());
        echo "<table id='slet_email'>";
        echo "<tr>";
        echo "<td>Du er nu oprettet i listen med <strong>$email</strong><br /> Tryk på slet din email fra listen for at framelde dig</td>";
        echo "</tr>";
        echo "</table>";
    }
}


if ($_GET['function'] == "tilmeld_news") {
    tilmeld_news();
}
?>



<?PHP

//Frameld_news
function frameld_news() {
    include("dbconnect.php");
    $slet_email = $_POST['slet_email'];
   
    $result = mysql_query("SELECT * FROM mailing_liste WHERE email ='$slet_email'");
    $row = mysql_fetch_array($result);
   
    if (mysql_num_rows($result) == 0) {
       
        echo "<table id='slet_email'>";
        echo "<tr>";
        echo "<td>Den email <strong>$slet_email</strong> du prøver at slette eksistere ikke<br />Prøv venligst igen</td>";
        echo "</tr>";
        echo "</table>";
    }else {
   
        mysql_query("DELETE FROM mailing_liste WHERE email = '$slet_email'") or die(mysql_error());
        echo "<table id='slet_email'>";
        echo "<tr>";
        echo "<td>E-Mailen <strong>$slet_email</strong> er slettet nu</td>";
        echo "</tr>";
        echo "</table>";
}
}
if($_GET['function'] == "frameld_news") {
    frameld_news();
}

?>



<!--NYHEDSBREV-->
<fieldset>
    <legend>Tilmeld Dig Nyheder</legend>
<div>
    <FORM action="main.php?function=tilmeld_news" method="POST">
    <label for="t1">E-Mail</label><input type="text" name="email" id="t1"/ size="10" value="  Din E-Mail"<br />
    <input type="submit" value="Tilføj din mail til listen" name="submit" id="submit"/ size="5">
    </FORM>
   
    <FORM action="main.php?function=frameld_news" method="POST">
    <label for="t1">E-Mail</label><input type="text" name="slet_email" id="t1"/ size="10" value="  Din E-Mail"<br />
    <input type="submit" value="Slet din mail fra listen" name="submit" id="submit"/ size="5">
    </FORM>
</div>
</fieldset>

Du skal osse lave en fil der hedder dbconnect.php med flg i

<?PHP

$mysql_db = "DIN DB NAVN";
$mysql_host = "localhost";
$mysql_user = "DB USERNAME";
$mysql_pass = "DB PASSWORD";


$DB = mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die(mysql_error());
mysql_select_db($mysql_db) or die(mysql_error());

?>

Det indsætter og opretter i db

derefter kan du lave en side der vis_emails.php som der skal være flg i.

<?PHP
include("dbconnect.php");
$result = mysql_query("select * from mailing_liste order by email") or
    die(mysql_error());
echo "<table id='test'>";
    while ($row = mysql_fetch_array($result))
{

echo "<tr>";
echo("<td>".$row['email']."</td>");
echo "</tr>";

}
echo "</table>";
?>

Mvh krydset

Hvis det ikke virker så bare skriv igen
Avatar billede krydset Nybegynder
13. oktober 2003 - 11:32 #2
du kan osse hente en zip fil med alle filerne i

www.pc-dk.dk/filer/mail.zip

husk osse at oprette en db der med et felt der hedder email
Avatar billede krydset Nybegynder
13. oktober 2003 - 11:34 #3
Du kan se det i action her på www.pc-dk.dk/field/ under tilmeld dig nyheder
Avatar billede jakethecake Nybegynder
13. oktober 2003 - 11:49 #4
Jeg er desværre ikke sikker på at vores webserver understøtter SQL og PHP og kiggede egentlig mere efter et CGI script.
Avatar billede krydset Nybegynder
13. oktober 2003 - 11:53 #5
Sorry så ikke kategorien, Hvad er det for en server altså styresystem??
Avatar billede amix Nybegynder
20. oktober 2003 - 11:21 #6
Jeg har fundet par scripts på hotscripts.com som du muligvis kan bruge:
http://www.hotscripts.com/Detailed/5267.html

Kig her for hele listen:
http://www.hotscripts.com/cgi-bin/search.cgi?bool=AND&query=newsletter&catid=1
Avatar billede amix Nybegynder
20. oktober 2003 - 11:22 #7
Og ja, det kan lade sig gøre...
Avatar billede jakethecake Nybegynder
30. december 2003 - 11:37 #8
Jeg leder mere efter et script som kan følgende men blot til en Windows platform:
"Automatic Mailing List will allow people to automatically subscribe and unsubscribe their e-mail address from your mailing list simply by sending you an e-mail. This CGI connects to any POP3 Mail account, checks each message for subscribe/unsubscribe requests, and then edits your mailing list e-mail file accordingly. The best part about using this system is that any e-mail that bounces back (after you send out a newsletter) can be automatically removed, making it easier to maintain a quality mailing list. Use AML to enhance an existing mailing list script, or see it do a great job by itself! "
Avatar billede kappel Nybegynder
29. februar 2004 - 11:12 #9
krydset >>
Jeg vil forsøge at det script du foreslår ovenover, men hvordan skal tabellen se ud? Hvilke felter og typer osv?


/kappel
Avatar billede kappel Nybegynder
29. februar 2004 - 11:44 #10
krydset >>
Skal der oprettes følgende filer?
- main.php
- connect.php
- vis_emails

jeg får fejl når jeg prøver tilmelde email:
The requested URL /news.php?function=news_tilmeld was not found on this server

JEg har kaldt main.php news.php istedet og ændret det alle steder!

----- her er news.php: ------
<?PHP
//news_tilmeld
function news_tilmeld() {
    include("connect.php");
    $email = $_POST['email'];
   
    $result = mysql_query("SELECT * FROM mailing_liste WHERE email ='$email'");
    $row = mysql_fetch_array($result);
   
    if (mysql_num_rows($result) == 1) {
       
          echo "<table id='slet_email'>";
        echo "<tr>";
        echo "<td><strong>E-Mailen $email findes allerede</strong><br />Hvis du har fået ny E-Mail indtast venligst denne her<br /> E-Mail <strong>$email</strong> i slet feltet og tryk slet fra denne liste<td>";
        echo "</tr>";
        echo "</table>";

    } else {
               
          mysql_query("INSERT INTO mailing_liste (email) VALUES('$email')") or die(mysql_error());
        echo "<table id='slet_email'>";
        echo "<tr>";
        echo "<td>Du er nu oprettet i listen med <strong>$email</strong><br /> Tryk på slet din email fra listen for at framelde dig</td>";
        echo "</tr>";
        echo "</table>";
    }
}
if ($_GET['function'] == "news_tilmeld") {
    news_tilmeld();
}
?>

<?PHP
//news_frameld
function news_frameld() {
    include("connect.php");
    $slet_email = $_POST['slet_email'];
   
    $result = mysql_query("SELECT * FROM mailing_liste WHERE email ='$slet_email'");
    $row = mysql_fetch_array($result);
   
    if (mysql_num_rows($result) == 0) {
       
        echo "<table id='slet_email'>";
        echo "<tr>";
        echo "<td>Den email <strong>$slet_email</strong> du prøver at slette eksistere ikke<br />Prøv venligst igen</td>";
        echo "</tr>";
        echo "</table>";
    }else {
   
        mysql_query("DELETE FROM mailing_liste WHERE email = '$slet_email'") or die(mysql_error());
        echo "<table id='slet_email'>";
        echo "<tr>";
        echo "<td>E-Mailen <strong>$slet_email</strong> er slettet nu</td>";
        echo "</tr>";
        echo "</table>";}
}
if($_GET['function'] == "news_frameld") {
    news_frameld();
}
?>
<!--NYHEDSBREV-->
<fieldset>
    <legend>Tilmeld Dig Nyheder</legend>
<div>
    <FORM action="news.php?function=news_tilmeld" method="POST">
    <label for="t1">E-Mail</label><input type="text" name="email" id="t1"/ size="10" value="  Din E-Mail"<br />
    <input type="submit" value="Tilføj din mail til listen" name="submit" id="submit"/ size="5">
    </FORM>
   
    <FORM action="news.php?function=news_frameld" method="POST">
    <label for="t1">E-Mail</label><input type="text" name="slet_email" id="t1"/ size="10" value="  Din E-Mail"<br />
    <input type="submit" value="Slet din mail fra listen" name="submit" id="submit"/ size="5">
    </FORM>
</div>
</fieldset>

----- og connect.php: ------
<?php
// Connection data
//$db = mysql_connect($server, $username, $password) or die(mysql_error("Cannot connect to database"));
// $db = mysql_select_db($database)
  // or die("Ingen database " . mysql_error());
$server = '';
$username = '';
$password = '';
$database = '';
?>
Den var allerede oprettet.

og til sidst news_vis_emails.php
<?PHP
include("connect.php");
$result = mysql_query("select * from mailing_liste order by email") or
    die(mysql_error());
echo "<table id='test'>";
    while ($row = mysql_fetch_array($result))
{

echo "<tr>";
echo("<td>".$row['email']."</td>");
echo "</tr>";

}
echo "</table>";
?>

Håber du vil hjælpe mig igennem :-)

/kappel
Avatar billede krydset Nybegynder
29. februar 2004 - 12:18 #11
Kan jeg få et link til siden
Avatar billede kappel Nybegynder
29. februar 2004 - 12:30 #12
http://super6.kappels.net - NEWS i menuen til venstre.

præcis sti: http://super6.kappels.net/sider/news.php og news_vis_emails.php
Avatar billede krydset Nybegynder
29. februar 2004 - 16:19 #13
lige nu er der en mysql fejl
Avatar billede kappel Nybegynder
29. februar 2004 - 16:33 #14
ikkr når den kører herfra!
http://super6.kappels.net/index.php?menu=news

hvilke felter skal der være i tabellen?
create table {
navn ...
email ...
}
Avatar billede kappel Nybegynder
29. februar 2004 - 16:37 #15
menuen er lavet udfra følgende:
<?php
if ( isset($_GET['id']) ) { // Tjekker om der er et id med i adresselinien

$_SESSION['id'] = $_GET['id'];
include("sider/spiller.php");

} else if ( isset($_GET['menu']) ){ //tjekker om $menu er sat

    //laver stien til filen der er defineret i $menu
    $menu_file = 'sider/'.$_GET['menu'].'.php';

    if ( file_exists($menu_file) ) { //Tjekker om filen eksisterer
        include($menu_file);
    } else { //Hvis filen ikke eksisterer inkluderes en fejlside:
        include('sider/fejl.php');
    }

} else { //Hvis $menu ikke er sat, inkluderes sider/news.php
    include('sider/velkommen.php');
}
?>

forstår ikke hvorfor den melder fejl.
Avatar billede kappel Nybegynder
29. februar 2004 - 16:39 #16
det er ellers et meget overskueligt script du har lavet, kender ikke så meget til function, men en genial ting at bruge ser det ud til.

/kappel
Avatar billede krydset Nybegynder
29. februar 2004 - 18:18 #17
Prøv news.php sådan her
----------------------------------------------

<?PHP
//news_tilmeld
if(isset($_POST['email'])) {
    include("connect.php");
    $email = $_POST['email'];

    $result = mysql_query("SELECT * FROM mailing_liste WHERE email ='$email'");
    $row = mysql_fetch_array($result);

    if (mysql_num_rows($result) == 1) {

          echo "<table id='slet_email'>";
        echo "<tr>";
        echo "<td><strong>E-Mailen $email findes allerede</strong><br />Hvis du har fået ny E-Mail indtast venligst denne her<br /> E-Mail <strong>$email</strong> i slet feltet og tryk slet fra denne liste<td>";
        echo "</tr>";
        echo "</table>";

    } else {

          mysql_query("INSERT INTO mailing_liste (email) VALUES('$email')") or die(mysql_error());
        echo "<table id='slet_email'>";
        echo "<tr>";
        echo "<td>Du er nu oprettet i listen med <strong>$email</strong><br /> Tryk på slet din email fra listen for at framelde dig</td>";
        echo "</tr>";
        echo "</table>";
    }
}


//news_frameld
if(isset($_POST['slet_email')) {
    include("connect.php");
    $slet_email = $_POST['slet_email'];

    $result = mysql_query("SELECT * FROM mailing_liste WHERE email ='$slet_email'");
    $row = mysql_fetch_array($result);

    if (mysql_num_rows($result) == 0) {

        echo "<table id='slet_email'>";
        echo "<tr>";
        echo "<td>Den email <strong>$slet_email</strong> du prøver at slette eksistere ikke<br />Prøv venligst igen</td>";
        echo "</tr>";
        echo "</table>";
    }else {

        mysql_query("DELETE FROM mailing_liste WHERE email = '$slet_email'") or die(mysql_error());
        echo "<table id='slet_email'>";
        echo "<tr>";
        echo "<td>E-Mailen <strong>$slet_email</strong> er slettet nu</td>";
        echo "</tr>";
        echo "</table>";}
}

?>


<!--NYHEDSBREV-->
<fieldset>
    <legend>Tilmeld Dig Nyheder</legend>
<div>
    <FORM action="news.php?function=news_tilmeld" method="POST">
    <label for="t1">E-Mail</label><input type="text" name="email" id="t1"/ size="10" value="  Din E-Mail"<br />
    <input type="submit" value="Tilføj din mail til listen" name="submit" id="submit"/ size="5">
    </FORM>

    <FORM action="news.php?function=news_frameld" method="POST">
    <label for="t1">E-Mail</label><input type="text" name="slet_email" id="t1"/ size="10" value="  Din E-Mail"<br />
    <input type="submit" value="Slet din mail fra listen" name="submit" id="submit"/ size="5">
    </FORM>
</div>
</fieldset>
Avatar billede kappel Nybegynder
29. februar 2004 - 18:54 #18
hvad tabellen hvordan skal den se ud?
Avatar billede kappel Nybegynder
29. februar 2004 - 18:56 #19
og skal jeg tilføje noget til news, når connect.php mangler:

$DB = mysql_connect($server, $user, $pass) or die(mysql_error());
mysql_select_db($db) or die(mysql_error());

når min connect.php ser således ud?
<?php
$server = '';
$username = '';
$password = '';
$database = '';
?>
Avatar billede kappel Nybegynder
29. februar 2004 - 21:20 #20
her virker det ikke: http://super6.kappels.net/index.php?menu=news

men det virker her: http://super6.kappels.net/sider/news.php

med eksemplet du gav, siger den stadig:

The requested URL /news.php?function=news_tilmeld was not found on this server.!!
Avatar billede krydset Nybegynder
29. februar 2004 - 21:33 #21
Hvorfor bruger du så ikke bare det der virker ??
Avatar billede kappel Nybegynder
01. marts 2004 - 18:14 #22
fordi så bliver det uden min opsætning og layout og så er der ligesom ingen ide med det!

/kappel
Avatar billede krydset Nybegynder
01. marts 2004 - 21:27 #23
Jamen er det ikke samme script på samme maskine eller hva???
Avatar billede kappel Nybegynder
01. marts 2004 - 21:46 #24
jo fuldstændig, det eneste er at det går igennem et stylesheet:

via:


<?php
if ( isset($_GET['id']) ) { // Tjekker om der er et id med i adresselinien

$_SESSION['id'] = $_GET['id'];
include("sider/spiller.php");

} else if ( isset($_GET['menu']) ){ //tjekker om $menu er sat

    //laver stien til filen der er defineret i $menu
    $menu_file = 'sider/'.$_GET['menu'].'.php';

    if ( file_exists($menu_file) ) { //Tjekker om filen eksisterer
        include($menu_file);
    } else { //Hvis filen ikke eksisterer inkluderes en fejlside:
        include('sider/fejl.php');
    }

} else { //Hvis $menu ikke er sat, inkluderes sider/news.php
    include('sider/velkommen.php');
}
?>
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