christdi Skrevet 16. november 2004 Del Skrevet 16. november 2004 (endret) Prøver å lage en php/mysql logge system som registrerer ip adresser, nettleser type og dato inn i en mysql tabell. Scriptet skal lagre alle adresser, nettlesertyper og dato, men ekskludere den sist besøkte ip adressen. Har laget et script nedenfor med det gjør ikke det jeg ønsker. Regner med jeg er litt på jordet ennå, men kan noen hjelpe meg med dette ? <? #connects to the MySQL server $username = "brukernavn"; $password = "passord"; $host = "localhost"; $database = "db_navn"; $table = "logging"; mysql_connect($host,$username,$password) or die(mysql_error()); mysql_select_db($database) or die(mysql_error()); $ip=$_SERVER['REMOTE_ADDR']; $browser=$_SERVER['HTTP_USER_AGENT']; $dtime = date('r'); if(!$ip) { } else { $sql = "INSERT INTO $table SET ip='$ip',browser='$browser',dtime='$dtime'"; $query = mysql_query($sql) or die(mysql_error()); } ?> Endret 16. november 2004 av christdi Lenke til kommentar
Dagga Skrevet 16. november 2004 Del Skrevet 16. november 2004 Den insert setninga di er ikke helt god. SET brukes ved UPDATE, ikke INSERT. Mer riktig: INSERT into $table (ip, browser, dtime) values('$ip', '$browser', '$dtime') Hvis du bruker Timestamp på dtime feltet, og det er det første timestamp feltet i rekken av felter, så vil Mysql automagisk sette denne til det tidspunkt du setter inn i tabellen på. Dermed slepper du den.. Lenke til kommentar
casualtie Skrevet 16. november 2004 Del Skrevet 16. november 2004 (endret) Det der er feil bruk av INSERT metoden i SQL. Slik blir scriptet ditt: <? #connects to the MySQL server $username = "brukernavn"; $password = "passord"; $host = "localhost"; $database = "db_navn"; $table = "logging"; mysql_connect($host,$username,$password) or die(mysql_error()); mysql_select_db($database) or die(mysql_error()); $ip=$_SERVER['REMOTE_ADDR']; $browser=$_SERVER['HTTP_USER_AGENT']; $dtime = date('r'); if(!$ip) { } else { mysql_query("INSERT INTO $table (ip, browser, dtime) VALUES ('$ip', '$browser', '$dtime')"); } ?> Har ikke testet det, men mener at i teorien skal det funke. Men nå hvis jeg hadde refreshet dette scriptet hundre ganger, ville min IP blitt lagt inn i tabellen 100 ganger, ikke alltid like bra EDIT: Så ikke at Dagga var litt raskere på labbene enn meg Endret 16. november 2004 av casualtie Lenke til kommentar
Terrasque Skrevet 17. november 2004 Del Skrevet 17. november 2004 Hmm... Kunne du ikke brukt en kake til å finne ut om personen har besøkt før? Hvis ikke kake, mekke ny med random nummer, hvis kake, øke en counter i mysql (Noe a la "update where ID=$id SET COUNT = COUNT + 1" knasekjekt) Og en ting til.. if(!$ip) { } else { mysql_query("INSERT INTO $table (ip, browser, dtime) VALUES ('$ip', '$browser', '$dtime')"); } Bare jeg som får frysninger her, eller? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå