Avatar billede starofdk Nybegynder
12. juni 2007 - 15:35 Der er 10 kommentarer og
1 løsning

Nyhedsbrev formular der ikke vil virke.

Hejsa.

Jeg har fundet min gamle nyhedsbrevs formular frem til en ny side. Den har altid virket, men nu vil den simpelthen ikke på det nye domæne...

Hoved filen kan læses her:
http://www.starzoo.eu/maillist.txt

Her er feltet man skal skrive sig ind i:
http://www.starzoo.eu/nyhed.asp

Config.php er meget kort, så her er teksten:
<?
error_reporting(0);
$listfile = "list.txt";
$headerfile = "header.txt";
$footerfile = "footer.txt";
$welcome = "welcome.asp";
$goodbye = "goodbye.asp";
$error = "error.asp";
?>

Når man prøver at skrive sig ind går den direkte til error.asp, og der er intet kommet til list.txt som selvfølgelig er sat til 777 på ftp'en..
Avatar billede kimg Nybegynder
12. juni 2007 - 15:44 #1
Forkert kategori ;-)
Avatar billede kimg Nybegynder
12. juni 2007 - 15:46 #2
Bruger du både "asp" og "PHP" ?
Avatar billede starofdk Nybegynder
12. juni 2007 - 15:51 #3
Ja selve nyhedsformularen er php. Den har altid virket på en af mine asp hjemmesider..

Ville bare duplikere den over på endnu en asp side, men her vil den kun melde fejl
Avatar billede dkfire Nybegynder
12. juni 2007 - 15:59 #4
Tror det hænger sammen med at register_global ikke er sat.
Prøv at ændre dine variabler som du henter fra din form til $_POST['variabelnavn']
Avatar billede kimg Nybegynder
12. juni 2007 - 16:01 #5
<?
error_reporting(0);
include("config.php");

function checkmail ($_POST["email"])
{
    global $listfile;
    $fd = fopen ($listfile, "r");
    $contents = fread ($fd, filesize ($listfile));
    fclose ($fd);
   
    if (@stristr($contents,$_POST["email"]))
        $valid = "invalid";
    if (eregi("^[_\.0-9a-z-]+@([0-9a-z][-0-9a-z\.]+)\.([a-z]{2,3}$)", $_POST["email"]) && !isset($valid))
        $valid = "valid";
    else
        $valid = "invalid";
   
    return $valid;
}

if ($_POST["action"] == "subscribe" && isset($email))
{
    $valid = checkmail($_POST["email"]);
    if ($valid == "valid")
    {
        $fp = fopen($listfile, 'a+');
            flock($fp,2);
            fwrite($fp,"".strtolower($_POST["email"])."; ");
        fclose($fp);
        header ("Location: ".$welcome."");
        exit;               

    }
    else {
        header ("Location: ".$error."");
        exit;               
    }
}   
elseif ($_POST["action"] == "unsubscribe" && isset($_POST["email"]))
{
    $fd = fopen ($listfile, "r");
    $contents = fread ($fd, filesize ($listfile));
    fclose ($fd);
    $allpeople = "";
    $entries = explode("; ",$contents);
    for($i=0;$i<count($entries);$i++)
    {
        if (strtolower($_POST["email"]) == strtolower($entries[$i]))
            $found = "yes";
        elseif ($entries[$i] != "")
            $allpeople .= "".$entries[$i]."; ";
    }
    if ($found == "yes")
    {
        $fp = fopen($listfile, 'w');
            fwrite($fp,$allpeople);
        fclose($fp);
    }
    header ("Location: ".$goodbye."");
    exit;               
   
}
else
    header ("Location: ".$error."");
    exit;               
?>
Avatar billede starofdk Nybegynder
12. juni 2007 - 16:08 #6
KimG: Har uploadet det, men det giver samme resultat.
Avatar billede kimg Nybegynder
12. juni 2007 - 16:11 #7
<?
error_reporting(0);
include("config.php");

function checkmail ($_POST["email"])
{
    global $listfile;
    $fd = fopen ($listfile, "r");
    $contents = fread ($fd, filesize ($listfile));
    fclose ($fd);
   
    if (@stristr($contents,$_POST["email"]))
        $valid = "invalid";
    if (eregi("^[_\.0-9a-z-]+@([0-9a-z][-0-9a-z\.]+)\.([a-z]{2,3}$)", $_POST["email"]) && !isset($valid))
        $valid = "valid";
    else
        $valid = "invalid";
   
    return $valid;
}

if ($_POST["action"] == "subscribe" && isset($_POST["email"]))
{
    $valid = checkmail($_POST["email"]);
    if ($valid == "valid")
    {
        $fp = fopen($listfile, 'a+');
            flock($fp,2);
            fwrite($fp,"".strtolower($_POST["email"])."; ");
        fclose($fp);
        header ("Location: ".$welcome."");
        exit;               

    }
    else {
        header ("Location: ".$error."");
        exit;               
    }
}   
elseif ($_POST["action"] == "unsubscribe" && isset($_POST["email"]))
{
    $fd = fopen ($listfile, "r");
    $contents = fread ($fd, filesize ($listfile));
    fclose ($fd);
    $allpeople = "";
    $entries = explode("; ",$contents);
    for($i=0;$i<count($entries);$i++)
    {
        if (strtolower($_POST["email"]) == strtolower($entries[$i]))
            $found = "yes";
        elseif ($entries[$i] != "")
            $allpeople .= "".$entries[$i]."; ";
    }
    if ($found == "yes")
    {
        $fp = fopen($listfile, 'w');
            fwrite($fp,$allpeople);
        fclose($fp);
    }
    header ("Location: ".$goodbye."");
    exit;               
   
}
else
    header ("Location: ".$error."");
    exit;               
?>
Avatar billede kimg Nybegynder
12. juni 2007 - 16:11 #8
Manglede lige en
Avatar billede kimg Nybegynder
12. juni 2007 - 16:41 #9
Her denne virker jeg som lidt, jeg lavede bare lige en find and replace ;-)

<?
error_reporting(0);
include("config.php");

function checkmail ($email)
{
    global $listfile;
    $fd = fopen ($listfile, "r");
    $contents = fread ($fd, filesize ($listfile));
    fclose ($fd);
   
    if (@stristr($contents,$email))
        $valid = "invalid";
    if (eregi("^[_\.0-9a-z-]+@([0-9a-z][-0-9a-z\.]+)\.([a-z]{2,3}$)", $email) && !isset($valid))
        $valid = "valid";
    else
        $valid = "invalid";
   
    return $valid;
}

if ($_POST["action"] == "subscribe" && isset($_POST["email"]))
{
    $valid = checkmail($_POST["email"]);
    if ($valid == "valid")
    {
        $fp = fopen($listfile, 'a+');
            flock($fp,2);
            fwrite($fp,"".strtolower($_POST["email"])."; ");
        fclose($fp);
        header ("Location: ".$welcome."");
        exit;               

    }
    else {
        header ("Location: ".$error."");
        exit;               
    }
}   
elseif ($_POST["action"] == "unsubscribe" && isset($_POST["email"]))
{
    $fd = fopen ($listfile, "r");
    $contents = fread ($fd, filesize ($listfile));
    fclose ($fd);
    $allpeople = "";
    $entries = explode("; ",$contents);
    for($i=0;$i<count($entries);$i++)
    {
        if (strtolower($_POST["email"]) == strtolower($entries[$i]))
            $found = "yes";
        elseif ($entries[$i] != "")
            $allpeople .= "".$entries[$i]."; ";
    }
    if ($found == "yes")
    {
        $fp = fopen($listfile, 'w');
            fwrite($fp,$allpeople);
        fclose($fp);
    }
    header ("Location: ".$goodbye."");
    exit;               
   
}
else
    header ("Location: ".$error."");
    exit;               
?>
Avatar billede starofdk Nybegynder
12. juni 2007 - 16:59 #10
KimG: Den sidste virker perfekt. Jeg takker for hjælpen :)

Lav et svar for at få dine point.
Avatar billede kimg Nybegynder
12. juni 2007 - 17:01 #11
Du får et svar ;-)
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