15. marts 2004 - 12:19Der er
9 kommentarer og 2 løsninger
Check for email i database
Hej. Da jeg er meget ny i SQL har jeg indtil nu været nødsaget til kun at bruge andres "scripts" på min hjemmeside og det har også fungeret meget fint. Jeg har for nyligt installeret et newsletter script hvor folk kan tilmelde sig mit nyhedsbrev.
Nu vil jeg imidlertidigt gerne udvide det lidt. Min ide er at sektioner af min side kun skal være tilgængelige hvis man er medlem af min nyhedsliste. Det jeg har brug for er en lille form hvor den besøgende kan indtaste sin email adresse. Derefter skal den søge i min database for at se om emailen ligger der. Hvis ja, skal den sende til een side (f.eks. videre til den sektion brugeren ønskede at se i første omgang), hvis den ikke er der, skal den sende brugeren til en anden side (f.eks. en side hvor han kan tilmelde sig nyhedsbrevet). Hvis der er nogen der kan hjælpe mig med det ville jeg være dybt taknemmelig :).
Den tabel som den skal lede efter email adressen hedder "pmnl_address".
Det virker altsammen temmeligt kompliceret, med password og alt muligt. Det jeg leder efter er egentligt bare et script der tager en indtastet email adresse og siger:
1] Hvis den findes i tabellen, gå til "side1.htm" 2] Hvis den ikke findes i tabellen, gå til "side2.htm"
Det er ikke afprøvet og du skal selv huske at åbne en forbindelse til mysql med mysql_connect og mysql_select_db. Desuden skal feltet email rettes til feltets navn i din db.
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /customers/toprankbusiness.com/toprankbusiness.com/httpd.www/test.php on line 18
Warning: Cannot add header information - headers already sent by (output started at /customers/toprankbusiness.com/toprankbusiness.com/httpd.www/test.php:9) in /customers/toprankbusiness.com/toprankbusiness.com/httpd.www/test.php on line 25
Som sagt jeg er ikke særlig smart til det her. Feltet hedder bare "email". Men jeg ved heller ikke hvordan jeg får email adressen fra en form (jeg går ud fra at det er den "indtastet_email" står for) over til scriptet.
Du laver en formular på en side, som har et felt der hedder "indtastet_email". Formularen skal have method="get", og action skal føre til dit script.
Har du husket at tilpasse scriptet? Der hvor der står //åben forbindelse her, der skal du indsætte din kode, der opretter forbindelse til databasen, hvis du ikke i forvejen har en forbindelse.
Forbindelsen åbner du sådan her:
mysql_connect("host", "brugernavn", "password"); mysql_select_db("navnpaadb"); // og her kører din kode så ...
Det andet problem med at headeren er afsendt, får du fordi du ikke har placeret koden der kontrollerer mod databasen, øverst i scriptet.
Headers skal nemlig altid sendes inden der genereres output til browseren!!! Der må ikke engang være en blanktegn der bliver sendt inden du gør det.
Hvis du ikke har mulighed for at placere scriptet aller øverst på din side, så findes der alligevel en løsning, nemlig at bruge output-bufferig (ob-funktionerne i php).
Skriv hvis du ikke har forstået hvad jeg mener :o)
Warning: Unable to jump to row 0 on MySQL result index 2 in /customers/toprankbusiness.com/toprankbusiness.com/httpd.www/checkemail.php on line 9
Warning: Cannot add header information - headers already sent by (output started at /customers/toprankbusiness.com/toprankbusiness.com/httpd.www/checkemail.php:9) in /customers/toprankbusiness.com/toprankbusiness.com/httpd.www/checkemail.php on line 16
Mvh Lauge Jepsen
P.S.: Jeg fattede ikke helt det med headeren...
P.P.S.: Jeg sætter stor pris på din tålmodighed :)
øøh. opdagede lige at fejlen nu kun kommer hvis email adressen ikke er i databasen, ellers får jeg bare en tom side. Den sender den altså ikke videre ...
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.