/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Besøg i dag (Tæller)
Fra : Lasse Jensen


Dato : 11-04-05 09:14

Hej folkens.

Jeg har arbejdet lidt med tællere og noget statistik. Nu skal jeg
til at igang med at kode en "Besøg i dag" tæller, men jeg er
rendt ind i det problem at jeg ikke ved hvilken funktion jeg skal
bruge. Eller hvad den hedder.

Jeg ved hvordan jeg vil have den til at fungere, tælleren skal
registrere brugeres IP 1 gang pr. dag og smide den ind i
databasen. Når klokken slår 24:00 (ny dag), så skal brugeres IP
igen kunne registreres, som et nyt besøg.

Men hvilken funktion skal jeg bruge til det der timer halløj? Har
haft date(today); lidt i tankerne, men tror ikke det er
løsningen.

Håber I kan hjælpe! Mange tak

Mvh. Lasse Jensen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jacob Atzen (11-04-2005)
Kommentar
Fra : Jacob Atzen


Dato : 11-04-05 09:41

On 2005-04-11, Lasse Jensen <lassejensen1@ofir.dk> wrote:
> Men hvilken funktion skal jeg bruge til det der timer halløj? Har haft
> date(today); lidt i tankerne, men tror ikke det er løsningen.

Hvorfor ikke?

--
Med venlig hilsen
- Jacob Atzen

Lasse Jensen (11-04-2005)
Kommentar
Fra : Lasse Jensen


Dato : 11-04-05 09:46

Jacob Atzen wrote in dk.edb.internet.webdesign.serverside.php:
> On 2005-04-11, Lasse Jensen <lassejensen1@ofir.dk> wrote:
> > Men hvilken funktion skal jeg bruge til det der timer halløj? Har haft
> > date(today); lidt i tankerne, men tror ikke det er løsningen.
>
> Hvorfor ikke?

Hehe godt spørgsmål. Jeg har egentlig ikke brugt funktionen før, så ved det
ikke, men synes det virker lidt for simpelt til at kunne være løsningen.
Men det kan godt være det kun er mig

Så må du jo så sige mig om det er løsningen eller ej?

Mvh. Lasse Jensen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jacob Atzen (11-04-2005)
Kommentar
Fra : Jacob Atzen


Dato : 11-04-05 10:01

On 2005-04-11, Lasse Jensen <antispam@antispam.dk> wrote:
> Hehe godt spørgsmål. Jeg har egentlig ikke brugt funktionen før, så ved det
> ikke, men synes det virker lidt for simpelt til at kunne være løsningen.
> Men det kan godt være det kun er mig
>
> Så må du jo så sige mig om det er løsningen eller ej?

Du vil gerne have datoen, så er date() er ret oplagt valg.

--
Med venlig hilsen
- Jacob Atzen

Lasse Jensen (11-04-2005)
Kommentar
Fra : Lasse Jensen


Dato : 11-04-05 12:46

Jacob Atzen wrote in dk.edb.internet.webdesign.serverside.php:
>
> Du vil gerne have datoen, så er date() er ret oplagt valg.

Øhm ja, men jeg kan altså ikke lige regne ud hvordan det skal kodes. Hvordan får
jeg den til at sætte IP ind i databasen 1 gang pr. dag hvis brugeren besøger
sitet.

Altså jeg vil jo lave en if sætning, hvor jeg tæller rækkerne i db (måske ikke
en gang nødvendigt) og hvis den allerede er inde i databsen IP'en, så skal den
vente til ny dag. Men hvordan laver jeg lige den del. Altså hvordan får jeg
delen med ny dag lavet. Er der noget som hedder date(tomorrow); eller hvad?

Noget lignende det her måske?

.....

$query = mysql_query("SELECT * FROM `counter` WHERE `$ip` LIKE '$ip' ORDER BY id
DESC LIMIT 0, 1");

$dato = $_POST['dato'] != date(today);

if ($dato) {
mysql_query("INSERT INTO counter (ip, tid, dato) VALUES ('$ip','$tid','$dato')
");
}

....


Er det noget i den stil.. Sad lige og biksede det ovenover sammen, men er ikke
sikker på det vil virke. Sådan som jeg har prøvet at lave det ovenover går den
ind på den enkelte IP og tjekker den sidste nye dato, og hvis den er fra forrige
dag fx, så registrerer den en, ellers ikke.

Det ville jo sådan set være super til en total unik tæller. Men jeg arbejder jo
samtidig på at lave en "Besøg i dag" tæller, og det vil sige den skal nulstille
klokken 24:00 og har jeg ikke lige nogen anelse om hvordan jeg skal gøre?

Men den kode ovenover kunne den i realiteten virke som en tæller, der opfanger
brugerens IP 1 gang pr. dag, hvis den ikke skulle nulstille sig?

Mange tak for hjælpen

Mvh. Lasse Jensen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Lasse Jensen (11-04-2005)
Kommentar
Fra : Lasse Jensen


Dato : 11-04-05 12:53

Lasse Jensen wrote in dk.edb.internet.webdesign.serverside.php:
>
> Det ville jo sådan set være super til en total unik tæller. Men jeg arbejder jo
> samtidig på at lave en "Besøg i dag" tæller, og det vil sige den skal nulstille
> klokken 24:00 og har jeg ikke lige nogen anelse om hvordan jeg skal gøre?

Kom lige i tanke om en måde der måske ville virke.

Kunne jeg mon bare skrive: ??

$query = mysql_query("SELECT * FROM `counter WHERE dato=today()");
$count_ip = mysql_num_rows($query);
echo "$count_ip";

Mvh. Lasse Jensen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Martin (11-04-2005)
Kommentar
Fra : Martin


Dato : 11-04-05 12:59

Lasse Jensen wrote:
[SNIP]

Jeg ville gøre således...

$count = mysql_result(mysql_query("SELECT COUNT(*) FROM counter WHERE ip
= '".$_SERVER["REMOTE_ADDR"]."' AND dato < DATE_SUB(NOW() INTERVAL 1
day)"),0);

if($count == 0) {
$sql = mysql_query("INSERT INTO counter (ip_adresse,dato) VALUES
('".$_SERVER["REMOTE_ADDR"]."',NOW()");
}

Jacob Atzen (11-04-2005)
Kommentar
Fra : Jacob Atzen


Dato : 11-04-05 13:27

On 2005-04-11, Martin <news@natten-i.dk> wrote:
> Jeg ville gøre således...
>
> $count = mysql_result(mysql_query("SELECT COUNT(*) FROM counter WHERE ip
>= '".$_SERVER["REMOTE_ADDR"]."' AND dato < DATE_SUB(NOW() INTERVAL 1
> day)"),0);

Ville det ikke checke for besøg de sidste 24 timer og ikke kun dagen idag?

--
Med venlig hilsen
- Jacob Atzen

Martin (11-04-2005)
Kommentar
Fra : Martin


Dato : 11-04-05 13:32

Jacob Atzen wrote:
> On 2005-04-11, Martin <news@natten-i.dk> wrote:
>
>>Jeg ville gøre således...
>>
>>$count = mysql_result(mysql_query("SELECT COUNT(*) FROM counter WHERE ip
>>= '".$_SERVER["REMOTE_ADDR"]."' AND dato < DATE_SUB(NOW() INTERVAL 1
>>day)"),0);
>
>
> Ville det ikke checke for besøg de sidste 24 timer og ikke kun dagen idag?
>

Hmm jo du har ret...

Lasse Jensen (11-04-2005)
Kommentar
Fra : Lasse Jensen


Dato : 11-04-05 14:15

Det lader ikke til det er lige sådan at lave.

Jeg har dog kodet et script, som jeg ville håbe virkede. Men det er
jeg stadig ikke helt sikker på.

Her et scriptet:

<?
               
               $maaned = date("F");
               $maaned = str_replace("January", "Januar", $maaned);
               $maaned = str_replace("February", "Februar", $maaned);
               $maaned = str_replace("March", "Marts", $maaned);
               $maaned = str_replace("April", "April", $maaned);
               $maaned = str_replace("May", "Maj", $maaned);
               $maaned = str_replace("June", "Juni", $maaned);
               $maaned = str_replace("July", "Juli", $maaned);
               $maaned = str_replace("August", "August", $maaned);
               $maaned = str_replace("September", "September", $maaned);
               $maaned = str_replace("October", "Oktober", $maaned);
               $maaned = str_replace("November", "November", $maaned);
               $maaned = str_replace("December", "December", $maaned);
               
               $ip = $_SERVER["REMOTE_ADDR"];
               $tid = time();
               $dato = date("d.");
               $dato2 = date("- Y / H:i:s");
               $sti = $_SERVER["PHP_SELF"];
               
               $check_dato = date("- Y");
               
               $db = mysql_connect("**********", "********", "*********");
               mysql_select_db("************", $db);
               
               $query = mysql_query("SELECT * FROM `Total_unik_count` WHERE
`ip` LIKE '$ip' ORDER BY id DESC LIMIT 0, 1") or die(mysql_error());
               $count_ip = mysql_num_rows($query);
                              
               if ($count_ip != 0) {
               
               $datoe = $_POST['dato'] != date("$dato $maaned $check_dato");
               
               if ($datoe) {
               mysql_query("INSERT INTO Total_unik_count (ip, tid, dato, sti)
VALUES ('$ip','$tid','$dato $maaned $dato2','$sti')");
               }
               } else {
               mysql_query("INSERT INTO Total_unik_count (ip, tid, dato, sti)
VALUES ('$ip','$tid','$dato $maaned $dato2','$sti')");
               }               
                           
               $foresp = mysql_query("SELECT * FROM Total_unik_count WHERE
dato = {date("$dato $maaned $check_dato")}");
               $counter_unik = mysql_num_rows($foresp);
               
               $total_counter_unik = $counter_unik + 0; // Hvor tælleren
starter med at tælle fra
               
               echo "<i>$total_counter_unik</i>";
               
               ?>

Tror I mit script kan bruges til formålet på nogen måde?

Scriptet melder desværre fejl på linie 42. Linie 42 ser sådan her
ud:

$foresp = mysql_query("SELECT * FROM Total_unik_count WHERE dato =
{date("$dato $maaned $check_dato")}");

Fejlen som den kommer med ser sådan her ud:

Parse error: parse error, unexpected T_VARIABLE in
/var/www/hotels/.dk/webweaver/html/statistik2.php on line 42

Mange mange tak for hjælpen

Mvh. Lasse Jensen
      

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jacob Atzen (11-04-2005)
Kommentar
Fra : Jacob Atzen


Dato : 11-04-05 14:26

On 2005-04-11, Lasse Jensen <antispam@antispam.dk> wrote:
> Her et scriptet:

[snip en masse kode]

Check lige:
<http://php-faq.dk/index.php/Gode_sp%F8rgsm%E5l#Sp.F8rgsm.E5l_om_kode>

--
Med venlig hilsen
- Jacob Atzen

Lasse Jensen (11-04-2005)
Kommentar
Fra : Lasse Jensen


Dato : 11-04-05 14:44

Jacob Atzen wrote in dk.edb.internet.webdesign.serverside.php:
> On 2005-04-11, Lasse Jensen <antispam@antispam.dk> wrote:
> > Her et scriptet:
>
> [snip en masse kode]
>
> Check lige:
> <http://php-faq.dk/index.php/Gode_sp%F8rgsm%E5l#Sp.F8rgsm.E5l_om_kode>


Tjaa, det er du bare lidt længe om at sige. Men min emne linie beskriver
da hvad det handler om. En "Besøg i dag" tæller... Ikke?

Mvh. Lasse Jensen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Lasse Jensen (11-04-2005)
Kommentar
Fra : Lasse Jensen


Dato : 11-04-05 14:47

Jacob Atzen wrote in dk.edb.internet.webdesign.serverside.php:
> On 2005-04-11, Lasse Jensen <antispam@antispam.dk> wrote:
> > Her et scriptet:
>
> [snip en masse kode]
>
> Check lige:
> <http://php-faq.dk/index.php/Gode_sp%F8rgsm%E5l#Sp.F8rgsm.E5l_om_kode>

Nåårh opdagede lige du nok ikke snakkede om Emne linien, men koden.. Ja
ok den er måske lidt lang, men jeg blev jo nødt til at vise Jer den før I
kan svare på om det vil/kan virke... Men undskyld for det.

Mvh. Lasse Jensen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jacob Atzen (11-04-2005)
Kommentar
Fra : Jacob Atzen


Dato : 11-04-05 14:55

On 2005-04-11, Lasse Jensen <antispam@antispam.dk> wrote:
> Nåårh opdagede lige du nok ikke snakkede om Emne linien, men koden..
> Ja ok den er måske lidt lang, men jeg blev jo nødt til at vise Jer den
> før I kan svare på om det vil/kan virke... Men undskyld for det.

Der er ikke noget at undskylde, jeg kan bare ikke læse din kode i min
newsreader, så hvis du vil have hjælp af mig bliver du nødt til at poste
på pastebin.dk eller på din hjemmeside.

Din opgave kan iøvrigt gøres helt simpelt:

$ip = GetClientIP();
if(!ipBeenHereToday($ip)) {
   insertIpInDatabase($ip);
}

Så skal du "bare" skrive de tre funktioner.

--
Med venlig hilsen
- Jacob Atzen

Lasse Jensen (11-04-2005)
Kommentar
Fra : Lasse Jensen


Dato : 11-04-05 15:06

Jacob Atzen wrote in dk.edb.internet.webdesign.serverside.php:
> On 2005-04-11, Lasse Jensen <antispam@antispam.dk> wrote:
> > Nåårh opdagede lige du nok ikke snakkede om Emne linien, men koden..
> > Ja ok den er måske lidt lang, men jeg blev jo nødt til at vise Jer
den
> > før I kan svare på om det vil/kan virke... Men undskyld for det.
>
> Der er ikke noget at undskylde, jeg kan bare ikke læse din kode i min
> newsreader, så hvis du vil have hjælp af mig bliver du nødt til at
poste
> på pastebin.dk eller på din hjemmeside.
>

Her er koden så http://www.pastebin.com/269973


> Din opgave kan iøvrigt gøres helt simpelt:
>
> $ip = GetClientIP();
> if(!ipBeenHereToday($ip)) {
>    insertIpInDatabase($ip);
> }
>
> Så skal du "bare" skrive de tre funktioner.

Ok det ovenover ser meget simpelt ud! Kan det virkelig gøre det?

Alt det der ipBeenHereToday og så videre er det kommandoer i PHP? Har jeg
aldrig hørt om før... Hehe

Mvh. Lasse Jensen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jacob Atzen (11-04-2005)
Kommentar
Fra : Jacob Atzen


Dato : 11-04-05 15:23

On 2005-04-11, Lasse Jensen <antispam@antispam.dk> wrote:
> Her er koden så http://www.pastebin.com/269973

Puha, den kan jeg slet ikke overskue. Kan du ikke prøve at dele den op i
nogen funktioner med sigende navne? Lidt ligesom jeg har gjort herunder.

>> Din opgave kan iøvrigt gøres helt simpelt:
>>
>> $ip = GetClientIP();
>> if(!ipBeenHereToday($ip)) {
>>    insertIpInDatabase($ip);
>> }
>>
>> Så skal du "bare" skrive de tre funktioner.
>
> Ok det ovenover ser meget simpelt ud! Kan det virkelig gøre det?
>
> Alt det der ipBeenHereToday og så videre er det kommandoer i PHP? Har jeg
> aldrig hørt om før... Hehe

Nej, det er som sagt dem du selv skal implementere.

--
Med venlig hilsen
- Jacob Atzen

Lasse Jensen (11-04-2005)
Kommentar
Fra : Lasse Jensen


Dato : 11-04-05 16:22

Jacob Atzen wrote in dk.edb.internet.webdesign.serverside.php:
>
> Nej, det er som sagt dem du selv skal implementere.

Øhm det fik jeg så ikke meget ud af. Det var jo noget jeg godt vidste i
forvejen. Og jeg mener ikke det er så simpelt. Det er jo derfor jeg søger
hjælp herinde.

Jeg leder stadig efter svar på hvordan jeg får lavet en funktion der holder
styr på hvornår det er ny dag. Og jeg har prøvet at lave et script. En som
lige hurtigt kunne se det igennem, og fortælle mig om det kunne gå hen og
virke?

Script kan ses her: http://www.pastebin.com/269973

På forhånd tak

Mvh. Lasse Jensen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Lasse Jensen (11-04-2005)
Kommentar
Fra : Lasse Jensen


Dato : 11-04-05 14:42

OK nu har jeg kodet et script, som måske kunne virke. Men er ikke
sikker. Hvad siger I. Kan det virke til mit formål?

Scriptet:

<?
               
               $maaned = date("F");
               $maaned = str_replace("January", "Januar", $maaned);
               $maaned = str_replace("February", "Februar", $maaned);
               $maaned = str_replace("March", "Marts", $maaned);
               $maaned = str_replace("April", "April", $maaned);
               $maaned = str_replace("May", "Maj", $maaned);
               $maaned = str_replace("June", "Juni", $maaned);
               $maaned = str_replace("July", "Juli", $maaned);
               $maaned = str_replace("August", "August", $maaned);
               $maaned = str_replace("September", "September", $maaned);
               $maaned = str_replace("October", "Oktober", $maaned);
               $maaned = str_replace("November", "November", $maaned);
               $maaned = str_replace("December", "December", $maaned);
               
               $ip = $_SERVER["REMOTE_ADDR"];
               $tid = time();
               $dato = date("d.");
               $dato2 = date("- Y / H:i:s");
               $sti = $_SERVER["PHP_SELF"];
               
               $check_dato = date("- Y");
               
               $db = mysql_connect("**********", "********", "*********");
               mysql_select_db("************", $db);
               
               $query = mysql_query("SELECT * FROM `Total_unik_count` WHERE
`ip` LIKE '$ip' ORDER BY id DESC LIMIT 0, 1") or die(mysql_error());
               $count_ip = mysql_num_rows($query);
                              
               if ($count_ip != 0) {
               
               $datoe = $_POST['dato'] != date("$dato $maaned $check_dato");
               
               if ($datoe) {
               mysql_query("INSERT INTO Total_unik_count (ip, tid, dato, sti)
VALUES ('$ip','$tid','$dato $maaned $dato2','$sti')");
               }
               } else {
               mysql_query("INSERT INTO Total_unik_count (ip, tid, dato, sti)
VALUES ('$ip','$tid','$dato $maaned $dato2','$sti')");
               }               
                           
               $foresp = mysql_query("SELECT * FROM Total_unik_count WHERE
dato = {date("$dato $maaned $check_dato")}");
               $counter_unik = mysql_num_rows($foresp);
               
               $total_counter_unik = $counter_unik + 0; // Hvor tælleren
starter med at tælle fra
               
               echo "<i>$total_counter_unik</i>";
               
               ?>
      

Dog melder det desværre denne fejl:

Parse error: parse error, unexpected T_VARIABLE in
/var/www/hotels/.dk/webweaver/html/statistik2.php on line 42

Linie 42 ser sådan her ud:

$foresp = mysql_query("SELECT * FROM Total_unik_count WHERE dato =
{date("$dato $maaned $check_dato")}");

Håber I kan hjælpe igen.

Mange mange tak for hjælpen

Mvh. Lasse Jensen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste