nyheds e-mail

Tags:    php

Jeg er gået i gang med noget at mit første "rigtige" php-script, og er indtil nu lavet følgende:

Fold kodeboks ind/udKode 


Meen, er lidt små fejl i den, man kan ikke lige finde dem...

1) Tilmelder jeg en e-mail som allerede eksistere i databasen skriver den: "bjarne@vinperlen.dk er nu blevet tilmeldt vores nyhedsmail, og du kan til hver en tid framelde dig igen."

2) Framelder jeg en e-mail som allerede eksistere i databasen skriver den: "Den indtastede e-mail findes ikke i vores database"

- Der er sikkert flere fejl end den, men det var lige hvad jeg kunne finde...


mvh. Rune Thougaard
--



3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
if (!mysql_query("SELECT mail FROM newsmail WHERE mail = $email") == '$email')

mysql_query returnerer et resultat fra databasen. Det er altså ikke en string, og kan aldrig være lig med en string. Når du bruger single quotes, kan du ikke indsætte variabler i stringen. Men da du kun bruger en variabel, behøver du ikke at quote den, med mindre du vil sikre dig at den opfattes som en string.

if (musql_num_rows(mysql_query("SELECT mail FROM newsmail WHERE mail = $email")) == 0)



Jeg går udfra at du vil erstatte:
if (!mysql_query("SELECT mail FROM newsmail WHERE mail = $email") == '$email')
med
if (musql_num_rows(mysql_query("SELECT mail FROM newsmail WHERE mail = $email")) == 0)

Udover den lille taste fejl "musql" virker mit script stadig ikke efter hensigt, den kommer endda frem med en fejl meddelse:
Warning: mysql_num_rows():


mvh. Rune Thougaard
--



hvis du læser, hvad der står i fejlmeddelsen, kan du sikkert læse, at der er fejl i din query. af sikkerhedsgrunde skal du skrive

or die(mysql_error())

for at se hvad fejlen er.

altså
mysql_query("en fejl") or die(mysql_error());



t