/ 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
Hjælp til besøgstæller!
Fra : Preben Larsen


Dato : 30-07-05 09:49

Hej!

Jeg førsøger at få en besøgstæller til at virke, som jeg har
fundet på hjemmesideskolen.dk!

Øverst på siderne indsætter jeg:

<?php
if(!session_id()){
session_start();
}
?>

"taeller.php" ser således ud:

<?php
if($_SESSION['tracked'] == "") }
$_SESSION['tracked'] = "done";
$path = $PHP_SELF."../";
$fp = fopen($path."counter.txt", "r");
$total = fread($fp, 10000) + 1;
fclose($fp);
$fp = fopen($path."counter.txt", "w");
fwrite($fp, $total);
fclose($fp);
}
function output_total() {
$path = $PHP_SELF."../";
$fp = fopen($path."counter.txt", "r");
$total = fread($fp, 10000) + 1;
fclose($fp);
echo $total;
}
?>

Det har Erik Ginneskov testet på frac.dk og efter sigende skulle
det virke - men det ser alligevel ud til, at jeg har lavet en
lille fejl!
Desuden går den øverste kode ind og ændrer lidt på værdierne i
CSS - men kun i IE?

Mvh
Preben Larsen

www.arielleforlaget.frac.dk/index.html

--
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

 
 
Benny Nissen (30-07-2005)
Kommentar
Fra : Benny Nissen


Dato : 30-07-05 09:56

Preben Larsen wrote:

> Det har Erik Ginneskov testet på frac.dk og efter sigende skulle
> det virke - men det ser alligevel ud til, at jeg har lavet en
> lille fejl!

Du skal kalde dine sider .php og ikke .html som filendelse.

> Desuden går den øverste kode ind og ændrer lidt på værdierne i
> CSS - men kun i IE?

Tja, koden sætter IE i Quirks-mode. Det ændre på sidevisningen, men der
bliver ikke ændret i din css-fil.

--
Benny Nissen

Preben Larsen (30-07-2005)
Kommentar
Fra : Preben Larsen


Dato : 30-07-05 10:03

Hej Benny!

> Du skal kalde dine sider .php og ikke .html som filendelse.

Jeg kalder siden med php-koden for tealler.php - er det ikke OK?

> Tja, koden sætter IE i Quirks-mode. Det ændre på sidevisningen, men der
> bliver ikke ændret i din css-fil.

Jamen så har jeg bare et problem mere - hvordan løses det så?

Mvh
Preben Larsen


--
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

Troels Hansen (30-07-2005)
Kommentar
Fra : Troels Hansen


Dato : 30-07-05 10:15

Preben Larsen wrote:
> Jeg kalder siden med php-koden for tealler.php - er det ikke OK?
>

Nej, det er ikke nok da den side hvor du includer tælleren er en html side.
Så skal du lave din tæller om så den fx udskriver et billede, noget i
retning af (ikke testet)

if($_SESSION['tracked'] == "") }
$_SESSION['tracked'] = "done";
$path = $PHP_SELF."../";
$fp = fopen($path."counter.txt", "r");
$total = fread($fp, 10000) + 1;
fclose($fp);
$fp = fopen($path."counter.txt", "w");
//fwrite($fp, $total);

$im = ImageCreate(60, 15);
$back = ImageColorAllocate($im, 100, 100, 100);
$black = ImageColorAllocate($im, 0, 0, 0);

ImageFill($im, 0, 0, $back);

ImageString($im, 4, 3, 0, $total, $black);

fclose($fp);

ImageJPEG($im);
}

og så bruge et image tag til at kalde din tæller i din index.html fil.
<img src="taeller.php">

Erik Ginnerskov (30-07-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 30-07-05 21:43

Benny Nissen wrote:

> Tja, koden sætter IE i Quirks-mode. Det ændre på sidevisningen, men
> der bliver ikke ændret i din css-fil.

Og hvorfor mender du, at koden gør det? Hvis der bliver sendt noget til
browseren før DTD, er det rigtigt, at IE går i quirks. Men serverside-kode,
som slet ikke kommer med til browseren, har ingen sådan virkning.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Benny Nissen (31-07-2005)
Kommentar
Fra : Benny Nissen


Dato : 31-07-05 19:39

Erik Ginnerskov wrote:
> Benny Nissen wrote:
>
>
>>Tja, koden sætter IE i Quirks-mode. Det ændre på sidevisningen, men
>>der bliver ikke ændret i din css-fil.
>
>
> Og hvorfor mender du, at koden gør det? Hvis der bliver sendt noget til
> browseren før DTD, er det rigtigt, at IE går i quirks. Men serverside-kode,
> som slet ikke kommer med til browseren, har ingen sådan virkning.
>

Det er jo så ikke serverside-scripts, når han har kaldt filen .html.
Serveren er nemlig ikke sat op til at parse .html-dokumenter som php.
Vis kilde vil afsløre det.

--
Benny Nissen

Erik Ginnerskov (31-07-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 31-07-05 21:46

Benny Nissen wrote:

> Det er jo så ikke serverside-scripts, når han har kaldt filen .html.

Javel. Jeg tillod mig at gå ud fra, at når han vil bruge php-kode, var det
på en php-side. Der var ikke givet noget link til en php-side, så ...

> Serveren er nemlig ikke sat op til at parse .html-dokumenter som php.

Det er der nok ikke mange servere, som er. ;)

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Erik Ginnerskov (30-07-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 30-07-05 21:59

Preben Larsen wrote:

> Det har Erik Ginneskov testet på frac.dk og efter sigende skulle
> det virke - men det ser alligevel ud til, at jeg har lavet en
> lille fejl!

Således skrev jeg ganske rigtigt for små 14 dage siden.

Efterfølgende har jeg gjort et par kontrolbesøg på den side og må
konstatere, at godt nok kan scriptet læse indholdet af counter.txt, men
tælleren bliver desværre ikke opdateret ved nye besøg flere dage senere.

Ergo er der stadig en funktionsfejl et sted i scriptet - i forhold til
serveropsætningen på frac.dk:

http://hjemmesideskolen.frac.dk/test/phpcounter.php
http://hjemmesideskolen.frac.dk/test/phpcounter.txt
http://hjemmesideskolen.frac.dk/test/count.txt

Jeg prøver at lege lidt med det. Jeg har en ide, som måske vil virke.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Preben Larsen (31-07-2005)
Kommentar
Fra : Preben Larsen


Dato : 31-07-05 06:45

Hej Erik Ginnerskov!

> Jeg prøver at lege lidt med det. Jeg har en ide, som måske vil virke.

Tak for din ulejlighed med at få min tæller til at virke - jeg holder mig
underrettet her på siden!
Indtil videre har jeg taget tælleren af siden!

Mvh
Preben Larsen

--
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

Tomasz Otap (31-07-2005)
Kommentar
Fra : Tomasz Otap


Dato : 31-07-05 11:56

Preben Larsen proclaimed as follows:
>>Jeg prøver at lege lidt med det. Jeg har en ide, som måske vil virke.
>
> Tak for din ulejlighed med at få min tæller til at virke - jeg holder mig
> underrettet her på siden!
> Indtil videre har jeg taget tælleren af siden!

Hej Preben og Erik

Her er en simpel counter, som I måske kan teste og udvikle videre. Den
kan sættes til at bruge forskellige counters (til f.eks. forskellige
counters flere steder på siderne) og til at opdatere hit-tallet enten
altid, en gang pr. session eller slet ikke (hvis man f.eks. bruger samme
counter flere gange på samme side).

Eksempel:
------------------------------------------
Denne side er fremvist <?=counter()?> gange og
<?=counter('always','siden-31-07-05.txt')?> gange siden 31.7.2005.
------------------------------------------



Funktion:
------------------------------------------

/*
Args:
-----------------------------------------------
$updateOn = when to update counter value
- 'none' = do not update counter value (view only)
- 'always' = every load of page (default value)
- 'session' = once pr. browser session
$filename = name of file to keep counter (default: counter.txt)
*/

function counter($updateOn='always', $filename='counter.txt') {
if (file_exists($filename)) {
$myFile = fopen($filename,'r+');
} else {
$myFile = fopen($filename,'w+');
}
if (!$myFile) { return -1; }
$fcontent = fread($myFile, filesize($filename)+1);
if ($fcontent == '') $fcontent = 0;
if (($updateOn == 'session' && !$_SESSION[$filename])
|| $updateOn == 'always') {
// Update on session and no session noted OR always update
$fcontent++;
$_SESSION[$filename] = true;
rewind($myFile);
fwrite($myFile,$fcontent);
}
fclose($myFile);
return $fcontent;
}

------------------------------------------

t

--
Aequitas sequitur funera

Erik Ginnerskov (31-07-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 31-07-05 21:49

Tomasz Otap wrote:

> Hej Preben og Erik
>
> Her er en simpel counter, som I måske kan teste og udvikle videre.

Den prøver jeg at lege lidt med.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Erik Ginnerskov (31-07-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 31-07-05 22:55

Erik Ginnerskov wrote:

>> Her er en simpel counter, som I måske kan teste og udvikle videre.
>
> Den prøver jeg at lege lidt med.

Har nu prøvet scriptet.

http://hjemmesideskolen.dk tælles op, uanset om jeg har valgt 'always'
eller 'session' i 'function counter'.

Vælger jeg 'none' sker der ikke nogen optælling.

Siden:
http://hjemmesideskolen.dk/scripts/testsider/phpcounter5.php sat til
session.

http://hjemmesideskolen.frac.dk får jeg denne fejlmeddelelse, uanset om
jeg har valgt 'none', 'always' eller 'session':

Warning: fopen(../counter.txt): failed to open stream: Permission denied in
/web/www/frac/users/hjemmesideskolen/test/count3.php on line 16

Linje 16 er denne:

$myFile = fopen($filename,'w+');

Siden:
http://hjemmesideskolen.frac.dk/test/phpcounter5.php sat til session.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Erik Ginnerskov (31-07-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 31-07-05 23:05

Erik Ginnerskov wrote:

> Har nu prøvet scriptet.

Kører jeg et lokalt forsøg med scriptet, får jeg i øvrigt denne
fejlmeddelelse:

Notice: Undefined variable: _SESSION in ....\count3.php on line 21

Linje 21 er denne:

if (($updateOn == 'session' && !$_SESSION[$filename])

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Peter Brodersen (31-07-2005)
Kommentar
Fra : Peter Brodersen


Dato : 31-07-05 23:54

On Mon, 1 Aug 2005 00:05:07 +0200, "Erik Ginnerskov"
<erik@donotspammmeplease.invalid> wrote:

>Kører jeg et lokalt forsøg med scriptet, får jeg i øvrigt denne
>fejlmeddelelse:
>
>Notice: Undefined variable: _SESSION in ....\count3.php on line 21

http://php-faq.dk/index.php/Hvorfor_f%E5r_jeg_pludselig_en_r%E6kke_Notice-fejl

--
- Peter Brodersen

Tomasz Otap (01-08-2005)
Kommentar
Fra : Tomasz Otap


Dato : 01-08-05 09:22

Erik Ginnerskov proclaimed as follows:
> Kører jeg et lokalt forsøg med scriptet, får jeg i øvrigt denne
> fejlmeddelelse:
>
> Notice: Undefined variable: _SESSION in ....\count3.php on line 21
>
> Linje 21 er denne:
>
> if (($updateOn == 'session' && !$_SESSION[$filename])

Husker du at slå sessions til inden? En session_start() i toppen af
filen (inden noget tekst bliver sendt - derfor kan det ikke ligge i
funktionen) vil gøre det.

> På http://hjemmesideskolen.frac.dk får jeg denne fejlmeddelelse,
> uanset om jeg har valgt 'none', 'always' eller 'session':
>
> Warning: fopen(../counter.txt): failed to open stream: Permission
> denied in /web/www/frac/users/hjemmesideskolen/test/count3.php on
> line 16

Ja, counter-filen får desværre ikke automatisk skriverettigheder. Derfor
ser den ud til at fejle, hvis serveren ikke automatisk tillader
skrivning til de nyoprettede filer. I de tilfælde er det nemmest at
oprette din counter-fil/filer på forhånd (default "counter.txt" eller
hvad man nu sætter det til) med skriverettigheder for PHP.

Jeg har leget lidt med chmod-funktionen for at automatisere dette, men
det gav varierende resultater alt efter hvorvidt serveren gav mig lov
til at køre funktionen...

> På http://hjemmesideskolen.dk tælles op, uanset om jeg har valgt
> 'always' eller 'session' i 'function counter'.

Heheh. Naturligvis bør man glemme en eller to lighedstegn i første
udgave... det er efterhånden en naturlov i programmering. :)

Her er en lidt modificeret udgave med små bugfikses rundt omkring. Nu
bliver sessionen checked med isset, hvilket også fjerner fejlen, hvis
man ikke har initialiseret sessions inden. I det tilfælde vil en
session-optælling ikke virke og tælle op hver gang.

/*
arg updateOn = when to update counter value:
- 'none' = do not update counter value (view only)
- 'always' = every load of page
- 'session' = once pr. browser session
arg filename = name to save counter in (def. counter.txt)
*/
function counter($updateOn='always', $filename='counter.txt') {
if (file_exists($filename)) {
$myFile = fopen($filename,'r+');
} else {
$myFile = fopen($filename,'w+');
}
if (!$myFile) { return -1; }
$fcontent = fread($myFile, filesize($filename)+1);
if ($fcontent == '') $fcontent = 0;
$fsession = isset($_SESSION[$filename]);
if (($updateOn == 'session' && !$fsession)
|| $updateOn == 'always') {
// Session-sensitive, session false (not noted) OR update = always
$fcontent++;
$_SESSION[$filename] = 1;
rewind($myFile);
fwrite($myFile,$fcontent);
}
fclose($myFile);
return $fcontent;
}


--
Aequitas sequitur funera

Erik Ginnerskov (01-08-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 01-08-05 22:18

Tomasz Otap wrote:

> Husker du at slå sessions til inden? En session_start() i toppen af
> filen (inden noget tekst bliver sendt - derfor kan det ikke ligge i
> funktionen) vil gøre det.

Det prøver jeg lige at få til at virke.


> Ja, counter-filen får desværre ikke automatisk skriverettigheder.
> Derfor ser den ud til at fejle, hvis serveren ikke automatisk tillader
> skrivning til de nyoprettede filer. I de tilfælde er det nemmest at
> oprette din counter-fil/filer på forhånd (default "counter.txt" eller
> hvad man nu sætter det til) med skriverettigheder for PHP.

Filen counter.txt ligger der allerede, det er den samme som bliver brugt i
de andre forsøg med tæller på frac.dk. Der er ikke rapporteret problemer med
skriverettigheder med mit andet script, der sker bare ikke nogen optælling.

> Heheh. Naturligvis bør man glemme en eller to lighedstegn i første
> udgave... det er efterhånden en naturlov i programmering. :)

Uha, det kender jeg godt. Lige så snart man laver noget 'på rygraden', går
det galt.

> Her er en lidt modificeret udgave med små bugfikses rundt omkring. Nu
> bliver sessionen checked med isset, hvilket også fjerner fejlen, hvis
> man ikke har initialiseret sessions inden. I det tilfælde vil en
> session-optælling ikke virke og tælle op hver gang.

Jeg prøver det.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Erik Ginnerskov (01-08-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 01-08-05 22:45

Tomasz Otap wrote:


> Her er en lidt modificeret udgave med små bugfikses rundt omkring. Nu
> bliver sessionen checked med isset, hvilket også fjerner fejlen, hvis
> man ikke har initialiseret sessions inden. I det tilfælde vil en
> session-optælling ikke virke og tælle op hver gang.

Nu har jeg kørt en stribe test med den modificerede kode. Resultaterne er
som følger:

Både på hjemmesideskolen.dk og lokalt tælles op med en, hvis funktionen er
sat til 'session'. Er der defineret 'always', tælles op med to ad gangen.
;(

På hjemmesideskolen.frac.dk får jeg stadig fejl:

Warning: fopen(../counter.txt): failed to open stream: Permission denied in
/web/www/frac/users/hjemmesideskolen/test/count4.php on line 11

Linje 11:
$myFile = fopen($filename,'r+');

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Martin (02-08-2005)
Kommentar
Fra : Martin


Dato : 02-08-05 01:58

Erik Ginnerskov wrote:
> Warning: fopen(../counter.txt): failed to open stream: Permission denied in
> /web/www/frac/users/hjemmesideskolen/test/count4.php on line 11
>
> Linje 11:
> $myFile = fopen($filename,'r+');

Husk at filen $filename skal chmoddes til 777 :)

Tomasz Otap (02-08-2005)
Kommentar
Fra : Tomasz Otap


Dato : 02-08-05 08:48

Erik Ginnerskov proclaimed as follows:
> Både på hjemmesideskolen.dk og lokalt tælles op med en, hvis funktionen er
> sat til 'session'. Er der defineret 'always', tælles op med to ad gangen.
> ;(

Sjovt - du kan få nogen uventede resultater, hvis du har to countere,
der bruger samme counter-fil, i scriptet. Er det det, du gør? Filnavnet
angives som argument 2 (og er normalt "counter.txt").

> Warning: fopen(../counter.txt): failed to open stream: Permission denied in
> /web/www/frac/users/hjemmesideskolen/test/count4.php on line 11

Det virker, som om den forsøger at åbne filen "../counter.txt", dvs i
selve roden af sitet - fremfor i test-mappen?

Jeg har p.t. testet filen på to systemer; et webhotel (hvor den virker,
såfremt filen er allerede oprettet og chmod'et til 777 - tilføjet
skriverettigheder) og egen Windows 2003 server med PHP-support (hvor
filen kan oprettes uden problemer, men der er skriverettigheder også sat
fra starten). I begge tilfælde lå filen i egen mappe.

t

--
Aequitas sequitur funera

Erik Ginnerskov (02-08-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 02-08-05 13:30

Tomasz Otap wrote:

> Sjovt - du kan få nogen uventede resultater, hvis du har to countere,
> der bruger samme counter-fil, i scriptet. Er det det, du gør?

Øh, jeg har da kun lagt en counter ind på siderne.

> Filnavnet angives som argument 2 (og er normalt "counter.txt").

count4.php, som skal stå for optælling, ser sådan ud:

<?php
/*
arg updateOn = when to update counter value:
- 'none' = do not update counter value (view only)
- 'always' = every load of page
- 'session' = once pr. browser session
arg filename = name to save counter in (def. counter.txt)
*/
function counter($updateOn='session', $filename='../counter.txt') {
if (file_exists($filename)) {
$myFile = fopen($filename,'r+');
} else {
$myFile = fopen($filename,'w+');
}
if (!$myFile) { return -1; }
$fcontent = fread($myFile, filesize($filename)+1);
if ($fcontent == '') $fcontent = 0;
$fsession = isset($_SESSION[$filename]);
if (($updateOn == 'session' && !$fsession)
|| $updateOn == 'always') {
// Session-sensitive, session false (not noted) OR update = always
$fcontent++;
$_SESSION[$filename] = 1;
rewind($myFile);
fwrite($myFile,$fcontent);
}
fclose($myFile);
return $fcontent;
}
?>

counteren kaldes sådan på siden: <p>Antal besøg: <?=counter()?></p>

Jeg gør endnu ikke brug af den tæller, som kalder filen
'siden-31-07-05.txt' - jeg vil først lige have den anden del af scriptet til
at virke - den tæller virkede i øvrigt sådan, at der tælles 1 op hver gang,
uanset om funktionen er sat til 'always', session' eller 'none'.

>> Warning: fopen(../counter.txt): failed to open stream: Permission
>> denied in /web/www/frac/users/hjemmesideskolen/test/count4.php on
>> line 11
>
> Det virker, som om den forsøger at åbne filen "../counter.txt", dvs i
> selve roden af sitet - fremfor i test-mappen?

Jamen det er der, counter.txt ligger - altså et niveau nærmere roden end
scriptet. Det er med vilje og burde vel ikke have nogen betydning.

> Jeg har p.t. testet filen på to systemer; et webhotel (hvor den
> virker, såfremt filen er allerede oprettet og chmod'et til 777 -

Jeg ved ikke noget om at chmodde, hvordan gør jeg det?

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/




Tomasz Otap (03-08-2005)
Kommentar
Fra : Tomasz Otap


Dato : 03-08-05 08:43

Erik Ginnerskov proclaimed as follows:
> count4.php, som skal stå for optælling, ser sådan ud:
>
> <?php
> /*
> arg updateOn = when to update counter value:
> - 'none' = do not update counter value (view only)
> - 'always' = every load of page
> - 'session' = once pr. browser session
> arg filename = name to save counter in (def. counter.txt)
> */
> function counter($updateOn='session', $filename='../counter.txt') {

Du behøver faktisk ikke ændre værdier i selve funktionsdefinitionen,
medmindre du ønsker at skifte default-definitioner. Men det burde også
virke uden problemer - så er det bare "session" og "../counter.txt" der
er standardværdi for et "tom" kald, som du angiver nedenunder:

> counteren kaldes sådan på siden: <p>Antal besøg: <?=counter()?></p>


>>Det virker, som om den forsøger at åbne filen "../counter.txt", dvs i
>>selve roden af sitet - fremfor i test-mappen?
>
> Jamen det er der, counter.txt ligger - altså et niveau nærmere roden end
> scriptet. Det er med vilje og burde vel ikke have nogen betydning.

Nej, det burde ikke have noget betydning - jeg blev bare bekymret
omkring placeringen. :)

>>Jeg har p.t. testet filen på to systemer; et webhotel (hvor den
>>virker, såfremt filen er allerede oprettet og chmod'et til 777 -
>
> Jeg ved ikke noget om at chmodde, hvordan gør jeg det?

Det er blot at tildele filen skriverettigheder for alle (change mode),
således at PHP kan få lov til at læse og skrive til filen. Hvis man
FTP'er til serveren, er der som regel en "skift rettigheder" kommando i
programmet. PHP giver også mulighed for det med en
chmod('filnavn.txt',0777) kommando - den kunne jeg dog ikke få til at
køre alle steder, da f.eks. min webhotel nægtede at bruge den.

> Både på hjemmesideskolen.dk og lokalt tælles op med en, hvis
> funktionen er sat til 'session'. Er der defineret 'always', tælles op
> med to ad gangen.

Jeg kan dog ikke gennemskue, hvordan du kan få den til at tælle op 2 ad
gangen; der er ingen loops i koden og den eneste modifikation af tallet
foregår i linien $fcontent++; ($fcontent op med en). Det burde kunne
lade sig gøre, medmindre der er flere kald til samme counter på siden...

t

--
Aequitas sequitur funera

Erik Ginnerskov (04-08-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 04-08-05 21:40

Tomasz Otap wrote:

> Du behøver faktisk ikke ændre værdier i selve funktionsdefinitionen,
> medmindre du ønsker at skifte default-definitioner. Men det burde også
> virke uden problemer - så er det bare "session" og "../counter.txt"
> der er standardværdi for et "tom" kald, som du angiver nedenunder:

Ok, jeg prøve at rette tilbage til 'always' i scriptet og derefter at sætte
'session' i funktionskaldet. Så får vi se, hvad forskel det gør.

>> Jeg ved ikke noget om at chmodde, hvordan gør jeg det?
>
> Det er blot at tildele filen skriverettigheder for alle (change mode),
> således at PHP kan få lov til at læse og skrive til filen. Hvis man
> FTP'er til serveren, er der som regel en "skift rettigheder" kommando
> i programmet.

Min FTP-klient indeholder ikke den mulighed, så vidt jeg kan se. Jeg bruger
Total Commander.

> PHP giver også mulighed for det med en
> chmod('filnavn.txt',0777) kommando - den kunne jeg dog ikke få til at
> køre alle steder, da f.eks. min webhotel nægtede at bruge den.

Jeg kan da prøve at smide en sådan kommando ind i scriptet. Det skal vel stå
ret højt oppe, så filen er tilgængelig, når den skal bruges.

>> Både på hjemmesideskolen.dk og lokalt tælles op med en, hvis
>> funktionen er sat til 'session'. Er der defineret 'always', tælles
>> op med to ad gangen.
>
> Jeg kan dog ikke gennemskue, hvordan du kan få den til at tælle op 2
> ad gangen; der er ingen loops i koden og den eneste modifikation af
> tallet foregår i linien $fcontent++; ($fcontent op med en). Det burde
> kunne lade sig gøre, medmindre der er flere kald til samme counter på
> siden...

Der er kun det samme kald, da jeg pt. ikke gør brug af tælleren til
siden-31-07-05.txt

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Erik Ginnerskov (04-08-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 04-08-05 22:50

Tomasz Otap wrote:

>> counteren kaldes sådan på siden: <p>Antal besøg: <?=counter()?></p>

OK, nu har jeg kørt en ny række forsøg. Jeg fatter ikke en sk.. - nu tælles
1 op hver gang, uanset om jeg laver et tomt kald til tælleren, om jeg sætter
('session','counter.txt') eller ('always','counter.txt') - både lokalt og på
hjemmesideskolen.dk. Bemærk, at jeg har flyttet counter.txt.

http://hjemmesideskolen.dk/scripts/testsider/phpcounter7.php - tom
http://hjemmesideskolen.dk/scripts/testsider/phpcounter9.php - session
http://hjemmesideskolen.dk/scripts/testsider/phpcounter9.php - always

Scriptet: http://hjemmesideskolen.dk/scripts/testsider/count4-php.txt

> PHP giver også mulighed for det med en
> chmod('filnavn.txt',0777) kommando -

På hjemmesideskolen.frac.dk prøvede jeg at indsætte den kommando, men får
fejl:

Warning: chmod(): Operation not permitted in
/web/www/frac/users/hjemmesideskolen/test/count4.php on line 11

Jeg kan stadig heller ikke hverken læse eller opdatere counter.txt.

Scriptet ses her: http://hjemmesideskolen.frac.dk/test/count4-php.txt

Testsiden: http://hjemmesideskolen.frac.dk/test/phpcounter5.php

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Erik Ginnerskov (04-08-2005)
Supremacy2k (05-08-2005)
Kommentar
Fra : Supremacy2k


Dato : 05-08-05 07:47

"Erik Ginnerskov" <erik@donotspammmeplease.invalid> wrote in message
news:42f28e74$0$18646$14726298@news.sunsite.dk...
> Erik Ginnerskov wrote:
>
>> http://hjemmesideskolen.dk/scripts/testsider/phpcounter7.php - tom
>> http://hjemmesideskolen.dk/scripts/testsider/phpcounter9.php - session
>> http://hjemmesideskolen.dk/scripts/testsider/phpcounter9.php - always
>
> Ups, linkfejl. Skulle være:
>
> http://hjemmesideskolen.dk/scripts/testsider/phpcounter7.php - tom
> http://hjemmesideskolen.dk/scripts/testsider/phpcounter9.php - session
> http://hjemmesideskolen.dk/scripts/testsider/phpcounter5.php - always
>
> --
> Med venlig hilsen
> Erik Ginnerskov
> http://hjemmesideskolen.dk - http://ginnerskov.dk
> http://html-faq.dk/
>
>

prøv lige at smide en "session_start();" ind i toppen i dit script som
tæller op (count4-php.txt)

for så vidt jeg kan se, starter du slet ikke session på den side?



Erik Ginnerskov (05-08-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 05-08-05 00:01

Supremacy2k wrote:

>> http://hjemmesideskolen.dk/scripts/testsider/phpcounter9.php -
>> session

> prøv lige at smide en "session_start();" ind i toppen i dit script som
> tæller op (count4-php.txt)

Det fik den til at holde op med at tælle ved reload og 'session'. Så må jeg
se i morgen, om den tæller en op ved ny session.

Lokalt kan den ikke lide den kommando - men det er nu heller ikke så
vigtigt, det er alligevel kun mig selv, der kan se siden. ;)

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Supremacy2k (05-08-2005)
Kommentar
Fra : Supremacy2k


Dato : 05-08-05 08:05

"Erik Ginnerskov" <erik@donotspammmeplease.invalid> wrote in message
news:42f29e33$0$18638$14726298@news.sunsite.dk...
> Supremacy2k wrote:
>
>>> http://hjemmesideskolen.dk/scripts/testsider/phpcounter9.php -
>>> session
>
>> prøv lige at smide en "session_start();" ind i toppen i dit script som
>> tæller op (count4-php.txt)
>
> Det fik den til at holde op med at tælle ved reload og 'session'. Så må
> jeg
> se i morgen, om den tæller en op ved ny session.
>
> Lokalt kan den ikke lide den kommando - men det er nu heller ikke så
> vigtigt, det er alligevel kun mig selv, der kan se siden. ;)
>
> --
> Med venlig hilsen
> Erik Ginnerskov
> http://hjemmesideskolen.dk - http://ginnerskov.dk
> http://html-faq.dk/
>
>

altså hvis den ikke tæller når du reloader og den er sat til session, så ser
det da ud til at virke? ;)



Supremacy2k (05-08-2005)
Kommentar
Fra : Supremacy2k


Dato : 05-08-05 08:19

"Supremacy2k" <Supremacy2k@gmail.com> wrote in message
news:42f29ecc$0$18645$14726298@news.sunsite.dk...
> "Erik Ginnerskov" <erik@donotspammmeplease.invalid> wrote in message
> news:42f29e33$0$18638$14726298@news.sunsite.dk...
>> Supremacy2k wrote:
>>
>>>> http://hjemmesideskolen.dk/scripts/testsider/phpcounter9.php -
>>>> session
>>
>>> prøv lige at smide en "session_start();" ind i toppen i dit script som
>>> tæller op (count4-php.txt)
>>
>> Det fik den til at holde op med at tælle ved reload og 'session'. Så må
>> jeg
>> se i morgen, om den tæller en op ved ny session.
>>
>> Lokalt kan den ikke lide den kommando - men det er nu heller ikke så
>> vigtigt, det er alligevel kun mig selv, der kan se siden. ;)
>>
>> --
>> Med venlig hilsen
>> Erik Ginnerskov
>> http://hjemmesideskolen.dk - http://ginnerskov.dk
>> http://html-faq.dk/
>>
>>
>
> altså hvis den ikke tæller når du reloader og den er sat til session, så
> ser det da ud til at virke? ;)
>

efter lidt test ser det da ud til at virke.

session tæller kun 1 gang pr session.
none og allways tæller ved hver reload.



Tomasz Otap (05-08-2005)
Kommentar
Fra : Tomasz Otap


Dato : 05-08-05 10:16

Supremacy2k proclaimed as follows:
> "Erik Ginnerskov" <erik@donotspammmeplease.invalid> wrote in message
> news:42f28e74$0$18646$14726298@news.sunsite.dk...
>>http://hjemmesideskolen.dk/scripts/testsider/phpcounter7.php - tom
>>http://hjemmesideskolen.dk/scripts/testsider/phpcounter9.php - session
>>http://hjemmesideskolen.dk/scripts/testsider/phpcounter5.php - always

Lige en lille notits: tom counter (<?=counter()?>) er _ikke_
ensbetydende med onUpdate='none' - den er lig onUpdate='always', da det
er 'always', der er standardværdien. Dvs. scripts phpcounter5.php og
phpcounter7.php burde tælle op på samme måde - ved hver genload af siden.

En counter, der ikke tæller op, men blot viser værdien, bør kaldes med
<?=counter('none')?>. Selve logikken i koden angiver:
-------
if (($updateOn == 'session' && !$fsession)
|| $updateOn == 'always')
-------

Dvs. counteren skal tælle op hvis:

- onUpdate er lig med 'session' og sessionvariablen er ikke sat endnu
eller
- onupdate er lig med 'always'

Hvis man angiver hvad som helst andet end 'session' og 'always' i
funktionskaldet, så vil funktionen ikke tælle op - kun returnere den
aktuelle værdi. Så teoretisk set kan <?=counter('none')?> skrives som
<?=counter('min guldfisk')?> eller <?=counter('Wulff er en svækling')?>.

Men 'none' virkede bare lidt mere logisk. :)

t

--
Aequitas sequitur funera

Erik Ginnerskov (05-08-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 05-08-05 21:44

Supremacy2k wrote:

> altså hvis den ikke tæller når du reloader og den er sat til session,
> så ser det da ud til at virke? ;)

Det kunne jo tænkes, at jeg havde fået slået funktionen ihjel. Men nu har
jeg lige først via ftp tjekket counterfilens indhold og derefter hentet
siden. Der taltes 1 op ved første load - altså virker det.

Bare synd, det endnu ikke virker på frac.dk.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Tomasz Otap (06-08-2005)
Kommentar
Fra : Tomasz Otap


Dato : 06-08-05 09:39

Erik Ginnerskov proclaimed as follows:
> Bare synd, det endnu ikke virker på frac.dk.
>

Jeg bruger ikke selv Total Commander, men fandt den her side, der
angiver, hvordan man skifter attributter på en fil via programmet (chmod):

http://www.stadtaus.com/en/tutorials/chmod-ftp-file-permissions.php#total

Det burde lade dig sætte skriverettigheder på din counter-fil på frac.

t

--
Aequitas sequitur funera

Erik Ginnerskov (07-08-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 07-08-05 01:20

Tomasz Otap wrote:

> fandt den her side, der
> angiver, hvordan man skifter attributter på en fil via programmet
> (chmod):
>
> http://www.stadtaus.com/en/tutorials/chmod-ftp-file-permissions.php#total

Dohh. Den funktion er sgu da fast installeret i toolbaren på min TC. Gad
vide hvorfor jeg ikke bare brugte den. Nu virker tælleren på frac.dk

Takker for nakkedraget. ;)

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Tomasz Otap (07-08-2005)
Kommentar
Fra : Tomasz Otap


Dato : 07-08-05 09:21

Erik Ginnerskov proclaimed as follows:
> Dohh. Den funktion er sgu da fast installeret i toolbaren på min TC. Gad
> vide hvorfor jeg ikke bare brugte den. Nu virker tælleren på frac.dk
>
> Takker for nakkedraget. ;)
>

Heh, ja. Nogen gange ser man ikke skoven for bare træer. :)

t

--
Aequitas sequitur funera

Erik Ginnerskov (31-07-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 31-07-05 21:59

Preben Larsen wrote:

> Tak for din ulejlighed med at få min tæller til at virke

Det var nu lige så meget for at kunne fortælle andre, hvordan det skal køres
på frac.dk

> - jeg holder
> mig underrettet her på siden!

Må beklageligvis konstatere, at min ændring ikke hjalp spor. Tælleren bliver
stadig ikke opdateret. Her er, hvad jeg gjorde:

Først på alle sider indsatte jeg dette:

<?php include "count.php"; ?>

Filen count.php ser sådan ud:

<?php
if(!session_id()){
session_start();
}
if($_SESSION['tracked'] == "../") {
$_SESSION['tracked'] = "done";
$path = $PHP_SELF."";
$fp = fopen($path."counter.txt", "r");
$total = fread($fp, 10000) + 1;
fclose($fp);
$fp = fopen($path."counter.txt", "w");
fwrite($fp, $total);
fclose($fp);
}
function output_total() {
$path = $PHP_SELF."../";
$fp = fopen($path."counter.txt", "r");
$total = fread($fp, 10000) + 1;
fclose($fp);
echo $total;
}
?>

Det sted på siden, hvor jeg vil have tælleren udlæst, har jeg denne kode:

<?php output_total(); ?>

Det ændrede kan testes her:

http://hjemmesideskolen.frac.dk/test/phpcounter3.php

Jeg laver et forsøg med Thomasz' kodeforslag.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Preben Larsen (31-07-2005)
Kommentar
Fra : Preben Larsen


Dato : 31-07-05 22:42


> Det var nu lige så meget for at kunne fortælle andre, hvordan det skal køres
> på frac.dk

Jeg håber også, at alle andre omhyggeligt læser med her!

Mvh
Preben Larsen


--
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

Supremacy2k (01-08-2005)
Kommentar
Fra : Supremacy2k


Dato : 01-08-05 06:08

Ville det ikke være nemmere at lave en helt ny index, med tælleren i, som så
tjekker den givene SESSION for at se om brugeren er ny, eller bare
"refresher" browseren??

Bare et forslag. ;)

"Preben Larsen" <prelar@stofanet.dk> wrote in message
news:42eb3f11$0$18645$14726298@news.sunsite.dk...
> Hej!
>
> Jeg førsøger at få en besøgstæller til at virke, som jeg har
> fundet på hjemmesideskolen.dk!
>
> Øverst på siderne indsætter jeg:
>
> <?php
> if(!session_id()){
> session_start();
> }
> ?>
>
> "taeller.php" ser således ud:
>
> <?php
> if($_SESSION['tracked'] == "") }
> $_SESSION['tracked'] = "done";
> $path = $PHP_SELF."../";
> $fp = fopen($path."counter.txt", "r");
> $total = fread($fp, 10000) + 1;
> fclose($fp);
> $fp = fopen($path."counter.txt", "w");
> fwrite($fp, $total);
> fclose($fp);
> }
> function output_total() {
> $path = $PHP_SELF."../";
> $fp = fopen($path."counter.txt", "r");
> $total = fread($fp, 10000) + 1;
> fclose($fp);
> echo $total;
> }
> ?>
>
> Det har Erik Ginneskov testet på frac.dk og efter sigende skulle
> det virke - men det ser alligevel ud til, at jeg har lavet en
> lille fejl!
> Desuden går den øverste kode ind og ændrer lidt på værdierne i
> CSS - men kun i IE?
>
> Mvh
> Preben Larsen
>
> www.arielleforlaget.frac.dk/index.html
>
> --
> 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 : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste