Avatar billede peder77 Nybegynder
10. maj 2004 - 13:53 Der er 11 kommentarer og
1 løsning

simpel mailingliste

Hej

Jeg sidder og laver en opgave fra bogen introduktion til php... Jeg bliver ved at få en irreterende fejl

Parse error: parse error, unexpected '>' in /customers/web-peter.dk/web-peter.dk/httpd.www/test/formular.php on line 60

jeg har rettet og rettet men uden held.

Hjæælp

<?php
function doDB() {
    global $conn;
    $conn = mysql_connect ("localhost", "bruger", "pass") or die(mysql_error());
    mysql_select_db("testDB", $conn) or die(mysql_error());
}

Function emailChecker ($email){
    global $conn, $check_result;
   
    $check ="select id from subscribers where email = '$email'";
    $check_result = mysql_query ($check,$conn) or die (mysql_error());
   
if ($_POST[op] != "ds") {
    $display_block =" <form method=POST action=\"$_SERVER[PHP_SELF]\">
    <p><strong>Your E-Mail Address:</strong><br>
    <input type=text name=\"email\" size=40 maxlength=150>
   
    <p><strong>Action:</strong><br>
    <input type=radio name=\"action\" value=\"sub\"
        checked> subscribe
    <input type= radio name=\"action\" value=\"unsub\">
        unsubscribe
   
    <input type=\"hidden\" name=\"op\" value=\"ds\">
   
    <p><input type=submit name=\"submit\" value=\"Submit Form\"><p>
    </form>";
   
} else if (($_POST[op] == "ds") &&
            ($_POST[actino] == "sub")) {
           
    if ($_POST[email] == ""){
    header ("Location: manage.php");
    exit;
    }
   
    doDB();
    emailChecker($_POST[email]);
   
    if (mysql_num_rows($check_result) <1){
        $sql = "insert into subscribers
            values('', '$_POST[email]')";
            $result = mysql_query($sql,$conn) or die(mysql_error());
            $display_block = "<p>Tanks for signing up!</p>";
        } else {
        $display_block = "<P>You're already subscribed!</p>";
        }
    } else if (($_POST[op] == "ds") &&
                ($_POST[action] == "unsub")) {
               
            if ($_POST[email] == "") {
                header("Location: manage.php);
                    exit;
            }
    doDB();
    emailChecker($_POST[email]);
   
    if (mysql_num_rows($check_result) <1) {
        $display_block = "<p>Couldnt find your address</p><p> No action was taken.</p>";
    } else {
        $id = mysql_result($check_result, 0, "id");
        $sql = "delete from subscribers where id = '$id'";
        $result = mysql_query($sql, $conn')
            or die(mysql_error());
            $display_block = "<P>Youér subscribed!</P>";
        }
    }
?>
<html>
<head>
<title>tilmelding af nyhedsbrev</title>
</head>
<body>
<h1>Subscribe/unsubscribe</h1>
<?php echo "$display_block";?>
</body>
</html>
Avatar billede kimg Nybegynder
10. maj 2004 - 14:03 #1
Du mangler " her har jeg sat den ind

  if ($_POST[email] == "") {
                header("Location: manage.php");
                    exit;
            }
Avatar billede jakobdo Ekspert
10. maj 2004 - 14:12 #2
Du mangler lidt tegn i din kode: nemlig " på linie: header("Location: manage.php);
rigtige: header("Location: manage.php");

og et '
på linie: $result = mysql_query($sql, $conn')
skal være:
$result = mysql_query($sql, '$conn')

og } efter:$display_block = "<P>Youér subscribed!</P>";
        }
    }

så det bliver:
$display_block = "<P>Youér subscribed!</P>";
        }
    }
}
Avatar billede jakobdo Ekspert
10. maj 2004 - 14:32 #3
Eller måske det burde være et svar! :o)
Avatar billede peder77 Nybegynder
10. maj 2004 - 16:18 #4
ok. det hjalp.
Men jeg kan stadig ikke se formularen?!
http://www.web-peter.dk/test/formular.php
Avatar billede jakobdo Ekspert
10. maj 2004 - 16:22 #5
Så er spørgsmålet om du skal fjerne den sidste } som jeg foreslog, og sætte en efter funktionen:

function emailChecker ($email)
{
    global $conn, $check_result;
   
    $check ="select id from subscribers where email = '$email'";
    $check_result = mysql_query ($check,$conn) or die (mysql_error());
}
Avatar billede jakobdo Ekspert
10. maj 2004 - 16:30 #6
Prøv denne:

<?php
function doDB()
{
    global $conn;
    $conn = mysql_connect ("localhost", "bruger", "pass") or die(mysql_error());
    mysql_select_db("testDB", $conn) or die(mysql_error());
}

Function emailChecker ($email)
{
    global $conn, $check_result;
    $check ="select id from subscribers where email = '$email'";
    $check_result = mysql_query ($check,$conn) or die (mysql_error());
}
   
if ($_POST[op] != "ds")
{
    $display_block =" <form method=POST action=\"$_SERVER[PHP_SELF]\">
    <p><strong>Your E-Mail Address:</strong><br>
    <input type=text name=\"email\" size=40 maxlength=150>
    <p><strong>Action:</strong><br>
    <input type=radio name=\"action\" value=\"sub\" checked> subscribe
    <input type= radio name=\"action\" value=\"unsub\"> unsubscribe
    <input type=\"hidden\" name=\"op\" value=\"ds\">
    <p><input type=submit name=\"submit\" value=\"Submit Form\"><p>
    </form>";
   
}
else if (($_POST[op] == "ds") && ($_POST[actino] == "sub"))
{
    if ($_POST[email] == "")
    {
        header ("Location: manage.php");
        exit;
    }
   
  doDB();
  emailChecker($_POST[email]);
 
  if (mysql_num_rows($check_result) <1)
  {
        $sql = "insert into subscribers
        values('', '$_POST[email]')";
        $result = mysql_query($sql,$conn) or die(mysql_error());
        $display_block = "<p>Tanks for signing up!</p>";
    }
    else
    {
        $display_block = "<P>You're already subscribed!</p>";
    }
}
else if (($_POST[op] == "ds") && ($_POST[action] == "unsub"))
{
    if ($_POST[email] == "")
    {
        header("Location: manage.php");
        exit;
    }
  doDB();
  emailChecker($_POST[email]);
  if (mysql_num_rows($check_result) <1)
  {
    $display_block = "<p>Couldnt find your address</p><p> No action was taken.</p>";
  }
  else
  {
    $id = mysql_result($check_result, 0, "id");
    $sql = "delete from subscribers where id = '$id'";
    $result = mysql_query($sql, '$conn') or die(mysql_error());
        $display_block = "<P>Youér subscribed!</P>";
    }
}
?>
<html>
<head>
<title>tilmelding af nyhedsbrev</title>
</head>
<body>
<h1>Subscribe/unsubscribe</h1>
<?php echo "$display_block";?>
</body>
</html>
Avatar billede peder77 Nybegynder
10. maj 2004 - 16:34 #7
det ser heller ikke ud til at virke?
nu ser scriptet sådan her ud!

<?php
function doDB() {
    global $conn;
    $conn = mysql_connect ("localhost", "web_peter_dk", "2neDHzRR") or die(mysql_error());
    mysql_select_db("subscribers", $conn) or die(mysql_error());
}

Function emailChecker ($email){
    global $conn, $check_result;
   
    $check = "select id from subscribers where email = '$email'";
    $check_result = mysql_query ($check,$conn) or die (mysql_error());
   
if ($_POST[op] != "ds") {
    $display_block ="<form method=POST action=\"$_SERVER[PHP_SELF]\">
    <p><strong>Your E-Mail Address:</strong><br>
    <input type=text name=\"email\" size=40 maxlength=150>
   
    <p><strong>Action:</strong><br>
    <input type=radio name=\"action\" value=\"sub\"
        checked> subscribe
    <input type= radio name=\"action\" value=\"unsub\">
        unsubscribe
   
    <input type=\"hidden\" name=\"op\" value=\"ds\">
   
    <p><input type=submit name=\"submit\" value=\"Submit Form\"><p>
    </form>";
   
} else if (($_POST[op] == "ds") &&
            ($_POST[action] == "sub")) {
           
    if ($_POST[email] == "") {
    header("Location: manage.php");
    exit;
    }
   
    doDB();
    emailChecker($_POST[email]);
   
    if (mysql_num_rows($check_result) < 1){
        $sql = "insert into subscribers
            values('', '$_POST[email]')";
            $result = mysql_query($sql,$conn) or die(mysql_error());
            $display_block = "<p>Tanks for signing up!</p>";
        } else {
        $display_block = "<P>You're already subscribed!</p>";
        }
    } else if (($_POST[op] == "ds") &&
                ($_POST[action] == "unsub")) {
               
            if ($_POST[email] == "") {
                header("Location: manage.php");
                    exit;
            }
    doDB();
    emailChecker($_POST[email]);
   
    if (mysql_num_rows($check_result) < 1) {
        $display_block = "<p>Couldnt find your address</p><p> No action was taken.</p>";
    } else {
        $id = mysql_result($check_result, 0, "id");
        $sql = "delete from subscribers where id = '$id'";
        $result = mysql_query($sql, $conn)
            or die(mysql_error());
            $display_block = "<P>Youér subscribed!</P>";
      function emailChecker ($email)
{
    global $conn, $check_result;
   
    $check ="select id from subscribers where email = '$email'";
    $check_result = mysql_query ($check,$conn) or die (mysql_error());
}}
    }
}
?>
<html>
<head>
<title>tilmelding af nyhedsbrev</title>
</head>
<body>
<h1>Subscribe/unsubscribe</h1>
<?php echo "$display_block"; ?>
</body>
</html>
Avatar billede peder77 Nybegynder
10. maj 2004 - 16:35 #8
så den ikke.
den sidste her virker.
Kanont!
Avatar billede peder77 Nybegynder
10. maj 2004 - 16:35 #9
Tak for hjælpen:)
Avatar billede kimg Nybegynder
10. maj 2004 - 18:16 #10
Hvad var der galt med mit svar ;-(
Det var jo løsningen på dit spørgsmål.

Kim
Avatar billede jakobdo Ekspert
10. maj 2004 - 18:25 #11
Kim: Det var en af fejlene ja, men ikke løsning på hele spørgsmålet, der var flere skal jeg gerne afsløre! :o)
Avatar billede sleever Nybegynder
10. maj 2004 - 23:24 #12
Hey Peder77 gider du kontakte mig på B_S_V_J@hotmail.com ?
Benjamin
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