Anbefal med IP og e-mail log

Tags:    php

Jeg ville gerne have en IP og e-mail log koblet på min anbefal side, således at IP adressen logges, samtidig med at e-mailen der anbefales til lagres i MySQL, med henblik på at der ikke kan anbefales til den samme adresse flere gange.

Evt. med en flush funktion der tømmer email loggen hver måned, så der på den måde ikke mistænkes for email-snif.

Nogen der har et bud på en løsning til dette.

Jeg er helt grøn i php, så udvidet hjælp vil være at foretrække, eller på dansk, hjælp til koden.

Med venlig Hilsen Frank
http://anakin.dk [Redigeret d. 16/05-03 02:14:15 af Frank Madsen]



5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Du skal bruge nogle sider:
- anbefal-ven.php (denne er synlig - her indtastes e-mail adressen)
- anbefal-ven-verify.php (denne kan være usynlig - her sendes en e-mail, e-mail og IP lagres i database

anbefal-ven.php
=================
Her skal være en form med et felt (email) og en submit knap - action skal være anbefal-ven-verify.php

anbefal-ven-verify.php
=================
Her skal du skrive til en tabel i din database. De ting, du skal gemme er e-mail, IP og tid (tiden skal bruges til at finde ud af, hvornår der sidst er sendt noget til denne e-mail - brug time() til det)

Så skal du lave en forespørgel noget ala:
$email = $_POST["feltnavn"];
$tid = time();
$maxDageGem = 30;
$query = mysql_query=("SELECT id FROM tabel WHERE email='$email' AND tid > " . $tid - (60 * 60 * 24 * $maxDageGem);

Hvis mysql_num_rows er større end 0 skal der ikke ske noget, hvis den ikke er, så kan du sende en mail og gemme i databasen...

Det er ikke testet, og er lavet for at giv et lille bud på, hvordan du kunne lave det. Hvordan du indsætter data i en database-tabel mv. kan du finde i diverse PHP-artiker her på siden.

Ref:
http://php.net/mysql_query
http://php.net/mysql_num_rows
http://php.net/time

mikl | mikl@mikl.dk | MSN: mikl@mikl.dk



anbefal-ven-verify.php
=================
Her skal du skrive til en tabel i din database. De ting, du skal gemme er e-mail, IP og tid (tiden skal bruges til at finde ud af, hvornår der sidst er sendt noget til denne e-mail - brug time() til det)

Så skal du lave en forespørgel noget ala:
$email = $_POST["feltnavn"];
$tid = time();
$maxDageGem = 30;
$query = mysql_query=("SELECT id FROM tabel WHERE email='$email' AND tid > " . $tid - (60 * 60 * 24 * $maxDageGem);

Hvis mysql_num_rows er større end 0 skal der ikke ske noget, hvis den ikke er, så kan du sende en mail og gemme i databasen...


Jeg kan følge dig til og med formen til at anbefale med, men jeg får brug for lidt mere hjælp til hvorledes jeg anvender ovenstående kode.

Jeg er ikke sikker på hvad de felter jeg skal oprette i MySQL skal hedde, og hvilken type de skal være, samt null eller not null..

Formen ser således ud..

Fold kodeboks ind/udKode 


og sendanbefal.php ser således ud..

Fold kodeboks ind/udKode 




Med venlig Hilsen Frank
http://anakin.dk



Koden skal ind før du redirecter til anbefal-tak.php... Felterne skal fx være af typen:
email text (evt med begrænsning)
ip text (med begrænsning)
tid int (evt med begrænsning)

mikl | mikl@mikl.dk | MSN: mikl@mikl.dk



Her skal du skrive til en tabel i din database. De ting, du skal gemme er e-mail, IP og tid (tiden skal bruges til at finde ud af, hvornår der sidst er sendt noget til denne e-mail - brug time() til det)


Jeg kan sagtens følge dig i hvordan det skal virke, men jeg fatter ikke en meter af hvad du mener, eller hvad der skal skrives hvor, hvad der skal stå før eller efter..


Med venlig Hilsen Frank
http://anakin.dk



Jeg lukker denne tråd, da der ikke synes at være nogen interesse i at hjælpe mig færdig med den. Jeg kan ikke selv skrive koden, men vil gerne guides igennem ved f.eks at få de linjer der skal sættes ind, samt hvor de skal sættes ind, og således langsomt komme igennem hvad der skal gøres og hvor.

Med venlig Hilsen Frank
http://anakin.dk



t