Hjälp med att hitta en besöksräknare som talar om när senaste besöket var

Permalänk
Medlem

Hjälp med att hitta en besöksräknare som talar om när senaste besöket var

Jag tänkte ta och höra om det är någon som skulle kunna hjälpa mig med en sak. Jag har ju i dag en besöksräkare på hemsidan där man kan se hur många besökare som har varit in på sidan under dagen, hur många besökare det har varit under veckan samt hur många besökare jag har haft sen starten.

Ja, en enkel simpel besöksräknare rätt och slätt.

Men det jag är ute efter, det som jag skulle vilja ha hjälp med att hitta, det är något script, eller hur jag ska säga, som talar om när senaste besökaren var inne på sidan i minuter.

Tex.
Antal besökare i dag: 5
Senaste besökaren var inne för 20 minuter sen

Jag har kollat runt lite, men har väl inte riktigt hittat det jag söker. Så medans jag nu letar på egen hand så tänkte jag väl ta och chansa och höra efter här om det är någon som vet hur man kan få till det hela, eller om det är någon som rent ut sagt vet var man kan hitta något lämpligt script för mitt ändamål.

Så är det någon som vet eller känner till något, tveka inte att hojta till.

Visa signatur

👻 Konstnär på Hyttgatan 18 & en hängiven spöksamlare på hobbybasis
ASUS M52AD-NR001T | Intel Core i5-4460 | 8GB | Nvidia GTX 960 | Windows 10

Permalänk

Det är bara att du låter varje besök sätta en timestamp, dvs när skedde besöket.

Med hjälp utav det så tar du ut det senaste "inlagda" besöket och jämför mot vad klockan är nu.

Permalänk
Medlem
Skrivet av plattangen:

Det är bara att du låter varje besök sätta en timestamp, dvs när skedde besöket.

Med hjälp utav det så tar du ut det senaste "inlagda" besöket och jämför mot vad klockan är nu.

Jo, det är väl det jag är ute efter. Kruxet är väl kanske bara det att jag inte riktigt vet hur jag går tillväga för att sätta en sk. timestamp. Mina kunskaper räcker inte så långt, är jag rädd för. Så kunde man då hittat ett färdigt script så skulle jag komma långt på det.

Visa signatur

👻 Konstnär på Hyttgatan 18 & en hängiven spöksamlare på hobbybasis
ASUS M52AD-NR001T | Intel Core i5-4460 | 8GB | Nvidia GTX 960 | Windows 10

Permalänk
Medlem

Ett förslag är att du lägger in google analytics på sidan: http://www.google.com/analytics/index.html
Då får du ett helt gäng med data om dina besökare.

Permalänk
Skrivet av Liv&helvete:

Jo, det är väl det jag är ute efter. Kruxet är väl kanske bara det att jag inte riktigt vet hur jag går tillväga för att sätta en sk. timestamp. Mina kunskaper räcker inte så långt, är jag rädd för. Så kunde man då hittat ett färdigt script så skulle jag komma långt på det.

Är ganska lätt att göra det med php och koppla det till en databas, dock kanske lite omständligt. Finns nog lättare sätt

Visa signatur
Permalänk
Medlem
Skrivet av vb:

Ett förslag är att du lägger in google analytics på sidan: http://www.google.com/analytics/index.html
Då får du ett helt gäng med data om dina besökare.

Nu får ni rätta mig om jag är helt ute och cyklar, men är inte Google analytics bara för företag ?

Skrivet av Kebabhyvlarn:

Är ganska lätt att göra det med php och koppla det till en databas, dock kanske lite omständligt. Finns nog lättare sätt

Ja, jag får nog glatt leta vidare känns det som.

Visa signatur

👻 Konstnär på Hyttgatan 18 & en hängiven spöksamlare på hobbybasis
ASUS M52AD-NR001T | Intel Core i5-4460 | 8GB | Nvidia GTX 960 | Windows 10

Permalänk
Medlem

Ladda besökstid och visa nuvarande besökaren. Spara den nuvarande besökarens tid för att visa nästa besökare.

Permalänk
Medlem

Jag fick lite inspiration från den här tråden och la till funktionen till mitt bildgalleri. Med lite hjälp från Google, hittade jag den här webbsidan som berättar hur man plockar ut mellanskillnaden mellan 2 datum med klockslag.

Jag har en kolumn som heter date_lastactive (DATETIME som datatyp) i databasen, vars data uppdateras för var gång en person uppdaterar sidan de är på. Sedan plockar jag ut det senaste datumet som finns för den kolumnen och jämför ens IP-adress, så att den inte visar sin egna senaste besök. Den skulle i sådana fall bara visa "0 minuter sedan". Nedan hittar du min lösning på det hela. Jag hoppas att detta hjälper dig på traven

define('IPADDRESS', hash('MD5', $_SERVER['REMOTE_ADDR'])); # DATABAS: visitors $get_lastactive = $sql->query("SELECT * FROM visitors WHERE ipaddress != '".IPADDRESS."' ORDER BY date_lastactive DESC LIMIT 1 "); $lastactive = $get_lastactive->fetch(PDO::FETCH_ASSOC);

# FUNKTION: Räkna ut skillnaden mellan 2 datum function get_time_difference($start, $end) { $uts['start'] = strtotime($start); $uts['end'] = strtotime($end); if($uts['start'] !== -1 AND $uts['end'] !== -1) { if($uts['end'] >= $uts['start']) { $diff = $uts['end'] - $uts['start']; if($days = intval((floor($diff / 86400)))) $diff = $diff % 86400; if($hours = intval((floor($diff / 3600)))) $diff = $diff % 3600; if($minutes = intval((floor($diff / 60)))) $diff = $diff % 60; $diff = intval($diff); return array('days' => $days, 'hours' => $hours, 'minutes' => $minutes, 'seconds' => $diff); } else { trigger_error('Slutdatumet och klockslaget är tidigare än startdatumet och klockslaget', E_USER_WARNING); } } else { trigger_error('Ogiltig datum och klockslag detekterades', E_USER_WARNING); } return false; }

$start = $lastactive['date_lastactive']; $end = date('Y-m-d H:i:s'); if($diff = @get_time_difference($start, $end)) { echo $diff['days'] != 0 ? ($diff['days'] == 1 ? ' dag, ' : ' dagar, ') : ''; echo $diff['hours'] != 0 ? ($diff['hours'].' '.($diff['hours'] == 1 ? 'timme' : 'timmar').' och ') : ''; echo $diff['minutes'].' '.($diff['minutes'] == 1 ? 'minut' : 'minuter'); echo ' sedan'; } else { echo '<div class="color-red">'; echo 'Fel'; echo '</div>'; }

Lycka till!

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me /device:desktop. Andra projekt: Keizai, Koroth & Serenum.

Permalänk
Medlem
Skrivet av Airikr:

define('IPADDRESS', hash('MD5', $_SERVER['REMOTE_ADDR']));

Varför hashar du IP-adressen?

Permalänk

Man bör väl nästan kombinera det med en kaka så då ip-address inte alltid är unik...

Annars kan det ju stå: Ditt senaste besök var för 20 minuter sedan fastän man aldrig varit där.

Visa signatur

På tok för många datorer för att skriva här

Permalänk
Medlem
Skrivet av iXam:

Varför hashar du IP-adressen?

Jag hashar IP-adressen för att besökarna ska känna sig trygga. Det finns personer som finner glädjen till att hacka ens databas och ta en hel hög med IP-adresser, för att sedan bara roa sig med att förstöra andras liv.

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me /device:desktop. Andra projekt: Keizai, Koroth & Serenum.

Permalänk
Medlem
Skrivet av Airikr:

Jag fick lite inspiration från den här tråden och la till funktionen till mitt bildgalleri. Med lite hjälp från Google, hittade jag den här webbsidan som berättar hur man plockar ut mellanskillnaden mellan 2 datum med klockslag.

Jag har en kolumn som heter date_lastactive (DATETIME som datatyp) i databasen, vars data uppdateras för var gång en person uppdaterar sidan de är på. Sedan plockar jag ut det senaste datumet som finns för den kolumnen och jämför ens IP-adress, så att den inte visar sin egna senaste besök. Den skulle i sådana fall bara visa "0 minuter sedan". Nedan hittar du min lösning på det hela. Jag hoppas att detta hjälper dig på traven

define('IPADDRESS', hash('MD5', $_SERVER['REMOTE_ADDR'])); # DATABAS: visitors $get_lastactive = $sql->query("SELECT * FROM visitors WHERE ipaddress != '".IPADDRESS."' ORDER BY date_lastactive DESC LIMIT 1 "); $lastactive = $get_lastactive->fetch(PDO::FETCH_ASSOC);

# FUNKTION: Räkna ut skillnaden mellan 2 datum function get_time_difference($start, $end) { $uts['start'] = strtotime($start); $uts['end'] = strtotime($end); if($uts['start'] !== -1 AND $uts['end'] !== -1) { if($uts['end'] >= $uts['start']) { $diff = $uts['end'] - $uts['start']; if($days = intval((floor($diff / 86400)))) $diff = $diff % 86400; if($hours = intval((floor($diff / 3600)))) $diff = $diff % 3600; if($minutes = intval((floor($diff / 60)))) $diff = $diff % 60; $diff = intval($diff); return array('days' => $days, 'hours' => $hours, 'minutes' => $minutes, 'seconds' => $diff); } else { trigger_error('Slutdatumet och klockslaget är tidigare än startdatumet och klockslaget', E_USER_WARNING); } } else { trigger_error('Ogiltig datum och klockslag detekterades', E_USER_WARNING); } return false; }

$start = $lastactive['date_lastactive']; $end = date('Y-m-d H:i:s'); if($diff = @get_time_difference($start, $end)) { echo $diff['days'] != 0 ? ($diff['days'] == 1 ? ' dag, ' : ' dagar, ') : ''; echo $diff['hours'] != 0 ? ($diff['hours'].' '.($diff['hours'] == 1 ? 'timme' : 'timmar').' och ') : ''; echo $diff['minutes'].' '.($diff['minutes'] == 1 ? 'minut' : 'minuter'); echo ' sedan'; } else { echo '<div class="color-red">'; echo 'Fel'; echo '</div>'; }

Lycka till!

Tack så mycket. Men då jag inte är så där jätte bevandrad i det här med kodning, så är det här lite utav grekiskan för mig. Men jag ska se om jag kan få till något.

Visa signatur

👻 Konstnär på Hyttgatan 18 & en hängiven spöksamlare på hobbybasis
ASUS M52AD-NR001T | Intel Core i5-4460 | 8GB | Nvidia GTX 960 | Windows 10

Permalänk
Medlem
Skrivet av Liv&helvete:

Nu får ni rätta mig om jag är helt ute och cyklar, men är inte Google analytics bara för företag ?

Google Analytics är fritt för vem som helst att använda, bara signa upp. Dock är det jobbigare att få ut nå bra data att ha på siten. Men sen heter det ju analytics också då det är till för analys och inte "uppvisning".

Visa signatur

FreeNAS 3U | 8GB | 2x2x3TB ProxMox i7-8700K | 32GB Desktop Dell 22" | Benq 22" | i5-smth | 16GB | Intel 520 120GB | 500GB | Arch

Permalänk
Medlem
Skrivet av Airikr:

Jag hashar IP-adressen för att besökarna ska känna sig trygga. Det finns personer som finner glädjen till att hacka ens databas och ta en hel hög med IP-adresser, för att sedan bara roa sig med att förstöra andras liv.

Men du förstår väl att det inte spelar någon roll eftersom adressrymden är 4 miljarder och det tar en pisskvart att få tillbaka IP-numrena igen då du inte använder någon "salt"samt har publicerat din sourcekod

Permalänk
Medlem
Skrivet av iXam:

Men du förstår väl att det inte spelar någon roll eftersom adressrymden är 4 miljarder och det tar en pisskvart att få tillbaka IP-numrena igen då du inte använder någon "salt"samt har publicerat din sourcekod

MD5-hashet kan enbart återfås om man har en sträng i klartext att jämföra med. Detta är i alla fall vad jag har förstått det som efter mina år som webb-programmerare Men jag måste bara fråga dig, 4 miljarder av vad? År? Lager av data?

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me /device:desktop. Andra projekt: Keizai, Koroth & Serenum.

Permalänk
Medlem
Skrivet av Airikr:

MD5-hashet kan enbart återfås om man har en sträng i klartext att jämföra med. Detta är i alla fall vad jag har förstått det som efter mina år som webb-programmerare Men jag måste bara fråga dig, 4 miljarder av vad? År? Lager av data?

Du hashar IP-nummer i form av quads (x.x.x.x) utan salt. Då jag och potentiella hackare VET att det rör sig om IP-nummer och ipv4-rymden är ~4miljarder (32Bit) så kan jag loopa igenom den och jämföra det mot ditt hashade värde och på så sätt få reda på alla IP-adresser. Eller skapa en så kallad rainbowtable (http://en.wikipedia.org/wiki/Rainbow_table). Eller använda en GPU som förmodligen bruteforcar din hash på 1-3 sekunder (http://www.golubev.com/files/ighashgpu/readme.htm)r.
Det är fint att du tänker på dina användare men i detta fallet så spelar det ingen större roll.

Permalänk
Inaktiv

Nybörjare som vill ha enklaste funktionen som finns typ.. och du ger han den där koden?

Permalänk
Medlem
Skrivet av iXam:

Du hashar IP-nummer i form av quads (x.x.x.x) utan salt. Då jag och potentiella hackare VET att det rör sig om IP-nummer och ipv4-rymden är ~4miljarder (32Bit) så kan jag loopa igenom den och jämföra det mot ditt hashade värde och på så sätt få reda på alla IP-adresser. Eller skapa en så kallad rainbowtable (http://en.wikipedia.org/wiki/Rainbow_table). Eller använda en GPU som förmodligen bruteforcar din hash på 1-3 sekunder (http://www.golubev.com/files/ighashgpu/readme.htm)r.
Det är fint att du tänker på dina användare men i detta fallet så spelar det ingen större roll.

Där ser man! Tack för upplysningen.

Skrivet av anon146897:

Nybörjare som vill ha enklaste funktionen som finns typ.. och du ger han den där koden?

Om du menar mig, så gav jag han den koden, för att den är den allra enklaste och mest effektivaste funktionen som jag kunde hitta. Självklart finns det mycket enklare funktioner som är på kanske dubbelt så mindre rader, men jag var trött och ville bara hjälpa han så fort som möjligt, så att han skulle slippa vänta allt för länge

Att fixa in det jag skrev, är ju faktiskt relativt enkelt. Gå till databasen och skapa en kolumn. Kopiera sedan funktionen och klistra in den till källkoden. Sen behöver han bara att lägga in echo-raden där han vill ha allt utskrivet. Klart! Jag tänker på att han redan har en SQL-fråga som uppdaterar databasen allt eftersom en besökare hittar hans mysiga webbsida

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me /device:desktop. Andra projekt: Keizai, Koroth & Serenum.

Permalänk
Medlem
Skrivet av Airikr:

Jag hashar IP-adressen för att besökarna ska känna sig trygga. Det finns personer som finner glädjen till att hacka ens databas och ta en hel hög med IP-adresser, för att sedan bara roa sig med att förstöra andras liv.

Om man ändå ska vara sån så bör man använda en annan hash ... Trots allt inte svårt att byta ut 'md5' till 'sha512' eller 'whirlpool'

EDIT: Ännu bättre om man även har salt. Till exempel bruteforcar min gamla Athlon X2 6400+ alla sex tecken långa kombinationer av A-z och 0-9 på mindre än en dag. En IPv4-address har tio gånger mindre kombinationer, och dessutom går det flera gånger snabbare med en modern CPU/GPU.

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av Snacker:

Om man ändå ska vara sån så bör man använda en annan hash ... Trots allt inte svårt att byta ut 'md5' till 'sha512' eller 'whirlpool'

EDIT: Ännu bättre om man även har salt. Till exempel bruteforcar min gamla Athlon X2 6400+ alla sex tecken långa kombinationer av A-z och 0-9 på mindre än en dag. En IPv4-address har tio gånger mindre kombinationer, och dessutom går det flera gånger snabbare med en modern CPU/GPU.

Skickades från m.sweclockers.com

Jag har faktiskt använd Whirlpool för att logga IP-adresserna säkert i databasen, men jag tyckte inte att det behövdes så stark säkerhet för just IP-adresserna. Det räcker då med en vanlig MD5-hash. Dock inte i längden, men den duger ^^

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me /device:desktop. Andra projekt: Keizai, Koroth & Serenum.

Permalänk
Medlem
Skrivet av Snacker:

Om man ändå ska vara sån så bör man använda en annan hash ... Trots allt inte svårt att byta ut 'md5' till 'sha512' eller 'whirlpool'

EDIT: Ännu bättre om man även har salt. Till exempel bruteforcar min gamla Athlon X2 6400+ alla sex tecken långa kombinationer av A-z och 0-9 på mindre än en dag. En IPv4-address har tio gånger mindre kombinationer, och dessutom går det flera gånger snabbare med en modern CPU/GPU.

Skickades från m.sweclockers.com

Vet inte hur lätt eller praktiskt det är att applicera salt på IP-nummer. Ett salt lägges vanligtvis tillsammans med en användares inloggningsuppgifter (login, lösen) så man måste ha en tabell på flera miljarder rader där salt och IP knyts samman.

SHA512(eller whirlpool) minskar inte heller chansen att lyckas bruteforca adressen, den ökar bara komputationstiden.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Airikr:

Jag har faktiskt använd Whirlpool för att logga IP-adresserna säkert i databasen, men jag tyckte inte att det behövdes så stark säkerhet för just IP-adresserna. Det räcker då med en vanlig MD5-hash. Dock inte i längden, men den duger ^^

Åter igen, så länge du inte saltar och dessutom kan säkra upp salten på ett bra sätt så spelar det ingen som helst roll vilken hash du använder när du "säkert" hashar en ipv4-adress då det ändå enbart rör sig om en 32bitarsrymd. Den enda tryggheten du har är att din databas förmodligen inte är speciellt intressant

Permalänk
Medlem
Skrivet av iXam:

Åter igen, så länge du inte saltar och dessutom kan säkra upp salten på ett bra sätt så spelar det ingen som helst roll vilken hash du använder när du "säkert" hashar en ipv4-adress då det ändå enbart rör sig om en 32bitarsrymd. Den enda tryggheten du har är att din databas förmodligen inte är speciellt intressant

MD5 är knäckbart idag, men det är inte Whirlpool och därför är den hash-metoden den allra säkraste idag

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me /device:desktop. Andra projekt: Keizai, Koroth & Serenum.

Permalänk
Medlem
Skrivet av Airikr:

MD5 är knäckbart idag, men det är inte Whirlpool och därför är den hash-metoden den allra säkraste idag

Det är inte "knäckbarheten" som är ett problem, utan att man enkelt kan jämföra hashen av alla IP-adresser mellan 0.0.0.0 och 255.255.255.255 med dem i databasen. Om två hashar stämmer överens vet man vad adressen är. Detta gäller för ALLA hashmetoder, den enda skillnaden är beräkningskraften som behövs. Bcrypt är säkrast då den, jämfört med andra algoritmer är "aplångsam".

Skickades från m.sweclockers.com

Att det blir kollisioner i MD5 spelar inte heller någon roll i detta sammanhang eftersom det är det ursprungliga värdet som eftersöks.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Det är inte "knäckbarheten" som är ett problem, utan att man enkelt kan jämföra hashen av alla IP-adresser mellan 0.0.0.0 och 255.255.255.255 med dem i databasen. Om två hashar stämmer överens vet man vad adressen är. Detta gäller för ALLA hashmetoder, den enda skillnaden är beräkningskraften som behövs. Bcrypt är säkrast då den, jämfört med andra algoritmer är "aplångsam".

Skickades från m.sweclockers.com

Att det blir kollisioner i MD5 spelar inte heller någon roll i detta sammanhang eftersom det är det ursprungliga värdet som eftersöks.

Den där lösningen har jag ärligt talat inte tänkt på tidigare. Jag tänker bara på själva knäckningen med hjälp av något program eller nått sånt. Tack för att du fick upp mina ögon, så att säga! Jag ska hädanefter använda mig av saltade hash-strängar.

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me /device:desktop. Andra projekt: Keizai, Koroth & Serenum.

Permalänk
Medlem
Skrivet av Teknocide:

Bcrypt är säkrast då den, jämfört med andra algoritmer är "aplångsam".

scrypt är aplångsammare, svårare att beräkna än bcrypt i både tid och rum.

Permalänk
Medlem
Skrivet av Airikr:

Den där lösningen har jag ärligt talat inte tänkt på tidigare. Jag tänker bara på själva knäckningen med hjälp av något program eller nått sånt. Tack för att du fick upp mina ögon, så att säga! Jag ska hädanefter använda mig av saltade hash-strängar.

Kul att vara till nytta ibland

Problemet här är att IP-nummer inte går att salta effektivt, eftersom vi sparar dem utan kontext. Där salt går att applicera har det hashade värdet en unik identifikator som förenar salt och hash. Ett typiskt exempel är inloggningsuppgifter:

login: "kalle" salt: "unik-korv" password: <hashat värde>

När kalle vill logga in anger han sitt användarnamn och ett lösenord. Lösenordet saltas med kalles unika salt och hashas, varefter det jämförs med det hashade värdet i samma grupp.

Problemet som uppstår med IP-adresser är att den unika identifikatorn är själva adressen. Det finns inget annat att gå på, alltså kan man inte hitta IP-numret igen efter att det har saltats och hashats, såvida saltet inte är statiskt vilket drastiskt minskar dess användbarhet.

Scenario 1:
Person A har en logg med hashade IP-adresser
Person B har förgenererade rainbowtables över alla hashade IP-adresser

Tiden som krävs för att hitta IP-adresserna är försumbar. Så fort en IP-hash har hittats kan alla dubletter identifieras och tas bort ur loggen.

Scenario 2:
Person A saltar sina IP-adresser med strängen 'statisk-korv' innan de läggs i loggen
Person B får generera om sina rainbowtables med alla IP-adresser

Större delen av tiden går till att generera nya rainbowtables. När detta är klart är uppslagningen samma som i Scenario 1, dvs försumbar.

Skrivet av You:

scrypt är aplångsammare, svårare att beräkna än bcrypt i både tid och rum.

Det kände jag inte till! Good to know

Visa signatur

Kom-pa-TI-bilitet