Avatar billede stengaard Praktikant
22. februar 2005 - 22:09 Der er 32 kommentarer og
1 løsning

hvad gør jeg forkert med mit script til et nyhedsbrev

hvad gør jeg forkert med mit script til et nyhedsbrev i php/mysql den tilfører ikke mail  adresser i mysql


først table:

CREATE TABLE mailliste (
  id int(11) NOT NULL auto_increment,
  mail varchar(120) default NULL,
  ip varchar(20) default NULL,
  tid varchar(20) default NULL,
  PRIMARY KEY  (id),
  KEY id (id)
) TYPE=MyISAM;

index.php med til/fra - melding:

<?



$filename = "index.php";

$sql_host = "******";

$sql_user = "******";

$sql_passwd = "******";

$db = "db";

mysql_connect($sql_host,$sql_user,$sql_passwd);

mysql_select_db($db);


if (!$mode) {

?>
<form action="<? print $filename; ?>?mode=on" method="post">

<input type="text" name="mail" size="30">  <SELECT name="valg"><option value="Tilmeld" selected>Tilmeld!<option value="Afmeld">Afmeld</select>

<br><input type="submit" value="Submit">

</form>

<?

}





if ($mode == "on") {



    if ($valg == "Tilmeld") {

    // $mail

    // On E-mail er der allerede

    $res = mysql_query("SELECT * FROM mailliste WHERE mail = '$mail'");

    $antal = mysql_num_rows($res);

        if ($antal == "") {

        // $ip, $mail, $dato

        $ip = $REMOTE_ADDR;

        $tid = date("Y-m-d H:i:s");

        mysql_query("INSERT INTO mailliste (id,ip,mail,tid) VALUES ('','$ip','$mail','$tid')");

        print "Din E-mail er blevet tilføjet";

                            }

        else {

        print "E-mail adressen er allerede tilføjet";

        }

    } // End of tilmeld





    if ($valg == "Afmeld") {

    mysql_query("DELETE FROM mailliste WHERE mail = '$mail'");

    print "E-mail adresse afmeldt";

    }



} // End of valg.


?>
Avatar billede detox Nybegynder
22. februar 2005 - 22:13 #1
Måske skal:

        if ($antal == "") {

være:

        if ($antal == 0) {
Avatar billede tigertool Nybegynder
22. februar 2005 - 22:14 #2
får du beskeden:

Din E-mail er blevet tilføjet
Avatar billede tigertool Nybegynder
22. februar 2005 - 22:15 #3
tror faktisk detox har ret, igen igen :)
Avatar billede stengaard Praktikant
22. februar 2005 - 22:19 #4
nej
Avatar billede tigertool Nybegynder
22. februar 2005 - 22:20 #5
?
Avatar billede stengaard Praktikant
22. februar 2005 - 22:20 #6
og der er heller ikke nogen mail i PhpMyAdmin
Avatar billede tigertool Nybegynder
22. februar 2005 - 22:22 #7
Prøv lige om din SQL virker i PHPMyAdmin
Avatar billede detox Nybegynder
22. februar 2005 - 22:23 #8
Vil det sige at du kun får indsat id, ip og tid?
Avatar billede stengaard Praktikant
22. februar 2005 - 22:27 #9
det gør den for kører meget andet i sql
og nej indet i table hverken id,ip, mail eller tid
Avatar billede detox Nybegynder
22. februar 2005 - 22:31 #10
Prøv at sætte denne øverst i scriptet:

<?
error_reporting(E_ALL);
?>
Avatar billede detox Nybegynder
22. februar 2005 - 22:31 #11
Og lad os se evt. fejlmeldinger.
Avatar billede stengaard Praktikant
22. februar 2005 - 22:35 #12
Notice: Undefined variable: mode in /customers/lkongen.dk/lkongen.dk/httpd.www/newsletter/index.php on line 108

fejl linie 108 -    if (!$mode) {


Notice: Undefined variable: mode in /customers/lkongen.dk/lkongen.dk/httpd.www/newsletter/index.php on line 127

fejl linie 127 -    if ($mode == "on") {
Avatar billede tigertool Nybegynder
22. februar 2005 - 22:36 #13
prøv at smide en
<input type='hidden' name='mode' value='on'> i stedet
Avatar billede stengaard Praktikant
22. februar 2005 - 22:39 #14
<form action="<? print $filename; ?>?mode=on" method="post">

til

<input type='hidden' name='mode' value='on'>
Avatar billede tigertool Nybegynder
22. februar 2005 - 22:40 #15
<form action="<?=$filename?>" method="post">
<input type='hidden' name='mode' value='on'>

således
Avatar billede tigertool Nybegynder
22. februar 2005 - 22:42 #16
Og lige:

if (!$mode) {

til:

if (!isset($mode)) {
Avatar billede detox Nybegynder
22. februar 2005 - 22:44 #17
Mon ikke register_globals = Off? Prøv på denne måde:

<?
$filename = "index.php";
$sql_host = "******";
$sql_user = "******";
$sql_passwd = "******";
$db = "db";
mysql_connect($sql_host,$sql_user,$sql_passwd);
mysql_select_db($db);

if (isset($_GET['mode']) && $_GET['mode'] == "on") {
    if ($_POST['valg'] == "Tilmeld") {

    // $mail
   
    // On E-mail er der allerede

    $res = mysql_query("SELECT * FROM mailliste WHERE mail = '$_POST[mail]'");
    $antal = mysql_num_rows($res);

        if ($antal == 0) {

        $ip = $_SERVER['REMOTE_ADDR'];
        $tid = date("Y-m-d H:i:s");
        mysql_query("INSERT INTO mailliste (id,ip,mail,tid) VALUES ('','$ip','$_POST[mail]','$tid')");
        print "Din E-mail er blevet tilføjet";
                          }
        else {
        print "E-mail adressen er allerede tilføjet";
        }
    } // End of tilmeld

    if ($_POST['valg'] == "Afmeld") {
        mysql_query("DELETE FROM mailliste WHERE mail = '$_POST[mail]'");
      print "E-mail adresse afmeldt";
    }
} // End of valg.
else {
?>
<form action="<? print $filename; ?>?mode=on" method="post">
<input type="text" name="mail" size="30">  <SELECT name="valg"><option value="Tilmeld" selected>Tilmeld!<option value="Afmeld">Afmeld</select>
<br><input type="submit" value="Submit">
</form>

<?
}?>
Avatar billede stengaard Praktikant
22. februar 2005 - 22:44 #18
en fejl

Notice: Undefined variable: mode in /customers/lkongen.dk/lkongen.dk/httpd.www/newsletter/index.php on line 128

linie 128 - if ($mode == "on") {
Avatar billede tigertool Nybegynder
22. februar 2005 - 22:45 #19
Skal der ikke benyttes $_POST i dette tilfælde?
Avatar billede stengaard Praktikant
22. februar 2005 - 22:46 #20
ok
Avatar billede tigertool Nybegynder
22. februar 2005 - 22:46 #21
Vi kan jo se om register_globals = Off ved en:

<?
phpinfo();
?>
Avatar billede stengaard Praktikant
22. februar 2005 - 22:47 #22
i starten af scriptet
Avatar billede tigertool Nybegynder
22. februar 2005 - 22:47 #23
phpinfo(); i en fil for sig - og så smid en url til den.
Avatar billede stengaard Praktikant
22. februar 2005 - 22:49 #24
en masse blå felter med en masse tekst i
Avatar billede tigertool Nybegynder
22. februar 2005 - 22:50 #25
Jep - men kan jeg få en url således at jeg lige kan se resultatet?
Avatar billede stengaard Praktikant
22. februar 2005 - 22:50 #26
ikke helt med
Avatar billede detox Nybegynder
22. februar 2005 - 22:51 #27
Kunne du teste mit indlæg: 22:44:10 og give lidt feedback?
Avatar billede stengaard Praktikant
22. februar 2005 - 22:54 #28
Avatar billede tigertool Nybegynder
22. februar 2005 - 22:55 #29
Detox > register_globals Off Off

Så burde dit indlæg 22:44:10 virke korrekt!
Avatar billede tigertool Nybegynder
22. februar 2005 - 22:56 #30
stengaard > Tak, nu må du gerne fjerne phpinfo(); koden igen.
Avatar billede stengaard Praktikant
22. februar 2005 - 23:02 #31
jeg takker det virker
Avatar billede detox Nybegynder
22. februar 2005 - 23:14 #32
Velbekommen
Avatar billede tigertool Nybegynder
22. februar 2005 - 23:14 #33
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