|
| PHP-problem Fra : Dieter Britz |
Dato : 17-06-11 13:21 |
|
Se kildeteksten af min forside i http://www.dieterbritz.dk
Jeg har lige sat noget php-kode ind i bunden, som skulle give mig
en hjemmelavede besøgstæller. Koden ligger i min index.html, som
jeg mener den skal, og er indrammet af <?PHP og ?>, men i stedet
for at gøre det den skulle, gengiver den koden som tekst.
Filen counter.dat er der, med et tal i. Det hele ligger i
serveren one.com, og jeg er ret sikker på at de har PHP.
Hvad gør jeg forkert? Jeg kunne godt lide at erstatte den tæller
som jeg bruger lige nu, fra nogle andre sites, men min egen.
--
Dieter Britz (dieterhansbritz<at>gmail.com)
| |
Krabsen (17-06-2011)
| Kommentar Fra : Krabsen |
Dato : 17-06-11 13:42 |
|
Den 17-06-2011 14:20, Dieter Britz skrev:
> Se kildeteksten af min forside i http://www.dieterbritz.dk
> Jeg har lige sat noget php-kode ind i bunden, som skulle give mig
> en hjemmelavede besøgstæller. Koden ligger i min index.html, som
> jeg mener den skal, og er indrammet af<?PHP og ?>, men i stedet
> for at gøre det den skulle, gengiver den koden som tekst.
> Filen counter.dat er der, med et tal i. Det hele ligger i
> serveren one.com, og jeg er ret sikker på at de har PHP.
>
> Hvad gør jeg forkert? Jeg kunne godt lide at erstatte den tæller
> som jeg bruger lige nu, fra nogle andre sites, men min egen.
Du har vel husket, at siden skal hedde index.php og ikke index.htm.
Ellers bliver php-koden ikke parset..
| |
Dieter Britz (17-06-2011)
| Kommentar Fra : Dieter Britz |
Dato : 17-06-11 15:11 |
|
On Fri, 17 Jun 2011 14:42:01 +0200, Krabsen wrote:
> Den 17-06-2011 14:20, Dieter Britz skrev:
>> Se kildeteksten af min forside i http://www.dieterbritz.dk Jeg har lige
>> sat noget php-kode ind i bunden, som skulle give mig en hjemmelavede
>> besøgstæller. Koden ligger i min index.html, som jeg mener den skal, og
>> er indrammet af<?PHP og ?>, men i stedet for at gøre det den skulle,
>> gengiver den koden som tekst. Filen counter.dat er der, med et tal i.
>> Det hele ligger i serveren one.com, og jeg er ret sikker på at de har
>> PHP.
>>
>> Hvad gør jeg forkert? Jeg kunne godt lide at erstatte den tæller som
>> jeg bruger lige nu, fra nogle andre sites, men min egen.
>
> Du har vel husket, at siden skal hedde index.php og ikke index.htm.
> Ellers bliver php-koden ikke parset..
Tak, det vidste jeg ikke. Men da jeg uploadede den omdøbte fil,
fik jeg en tom side. Skal der stadig stå <HTML> som første linje?
--
Dieter Britz
| |
Bertel Lund Hansen (17-06-2011)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 17-06-11 16:18 |
|
Dieter Britz skrev:
> Tak, det vidste jeg ikke. Men da jeg uploadede den omdøbte fil,
> fik jeg en tom side. Skal der stadig stå <HTML> som første linje?
PHP-filen skal lave en færdig HTML-fil som output. Inde i
PHP-filen kan der stå både PHP-kode og HTML-kode hulter til
bulter - bortset fra:
Alt PHP skal omklamres af
<?php
?>
og alt hvad der står udenfor disse to tegn, behandles som
HTML-kode. Hvad PHP laver af output (inden i PHP-blokken),
behandles også som HTML. Slutresultatet skal være en korrekt
opbygget HTML-side. Eksempel:
<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01//EN' ' '>http://www.w3.org/TR/html4/strict.dtd'>
<html>
<head>
<title>Min fodboldside</title>
er det samme som:
<?php
echo "<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01//EN' ' ";'>http://www.w3.org/TR/html4/strict.dtd'>";
?>
<html>
<head>
<title>Min fodboldside</title>
og som
<?php
echo "<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01//EN' ' \n";'>http://www.w3.org/TR/html4/strict.dtd'>\n";
?>
<html>
<?php
echo "<head>\n";
?>
<title>Min fodboldside</title>
--
Bertel
http://bertel.lundhansen.dk/ http://fiduso.dk/
| |
Krabsen (17-06-2011)
| Kommentar Fra : Krabsen |
Dato : 17-06-11 16:01 |
|
Den 17-06-2011 16:11, Dieter Britz skrev:
> On Fri, 17 Jun 2011 14:42:01 +0200, Krabsen wrote:
>
>> Den 17-06-2011 14:20, Dieter Britz skrev:
>>> Se kildeteksten af min forside i http://www.dieterbritz.dk Jeg har lige
>>> sat noget php-kode ind i bunden, som skulle give mig en hjemmelavede
>>> besøgstæller. Koden ligger i min index.html, som jeg mener den skal, og
>>> er indrammet af<?PHP og ?>, men i stedet for at gøre det den skulle,
>>> gengiver den koden som tekst. Filen counter.dat er der, med et tal i.
>>> Det hele ligger i serveren one.com, og jeg er ret sikker på at de har
>>> PHP.
>>>
>>> Hvad gør jeg forkert? Jeg kunne godt lide at erstatte den tæller som
>>> jeg bruger lige nu, fra nogle andre sites, men min egen.
>>
>> Du har vel husket, at siden skal hedde index.php og ikke index.htm.
>> Ellers bliver php-koden ikke parset..
>
> Tak, det vidste jeg ikke. Men da jeg uploadede den omdøbte fil,
> fik jeg en tom side. Skal der stadig stå<HTML> som første linje?
Jeg synes du skal starte med at fjerne det link, der ved klik på counter
sender brugeren til et tysk spil-site. Det er muligvis helt reelt og OK,
men lugter af fusk og giver mig ikke lyst til at kigge mere på siden.
| |
Dieter Britz (17-06-2011)
| Kommentar Fra : Dieter Britz |
Dato : 17-06-11 20:27 |
|
On Fri, 17 Jun 2011 17:00:58 +0200, Krabsen wrote:
> Den 17-06-2011 16:11, Dieter Britz skrev:
>> On Fri, 17 Jun 2011 14:42:01 +0200, Krabsen wrote:
>>
>>> Den 17-06-2011 14:20, Dieter Britz skrev:
>>>> Se kildeteksten af min forside i http://www.dieterbritz.dk Jeg har
>>>> lige sat noget php-kode ind i bunden, som skulle give mig en
>>>> hjemmelavede besøgstæller. Koden ligger i min index.html, som jeg
>>>> mener den skal, og er indrammet af<?PHP og ?>, men i stedet for at
>>>> gøre det den skulle, gengiver den koden som tekst. Filen counter.dat
>>>> er der, med et tal i. Det hele ligger i serveren one.com, og jeg er
>>>> ret sikker på at de har PHP.
>>>>
>>>> Hvad gør jeg forkert? Jeg kunne godt lide at erstatte den tæller som
>>>> jeg bruger lige nu, fra nogle andre sites, men min egen.
>>>
>>> Du har vel husket, at siden skal hedde index.php og ikke index.htm.
>>> Ellers bliver php-koden ikke parset..
>>
>> Tak, det vidste jeg ikke. Men da jeg uploadede den omdøbte fil, fik jeg
>> en tom side. Skal der stadig stå<HTML> som første linje?
>
> Jeg synes du skal starte med at fjerne det link, der ved klik på counter
> sender brugeren til et tysk spil-site. Det er muligvis helt reelt og OK,
> men lugter af fusk og giver mig ikke lyst til at kigge mere på siden.
>
OK; her er den nye, uden dette. Det giver en helt blank side. Men hvis jeg
omdøber den til index.html, virker det, bortset fra php-delen.
<HTML>
<HEAD>
<TITLE>Dieter Britz's web pages</TITLE>
</HEAD>
<BODY>
<H3 ALIGN=CENTER><FONT COLOR="#800000">Dieter Britz's web pages</FONT></
H3>
<div id="content" align="center">
<div><img src="dbatwork.jpg" alt="[mugshot]" width="163px"
height="188px" />
</div>
<div>That's me</div>
</div>
<UL>
<LI><A HREF="fusweb/index.html">Cold fusion stuff</A></LI>
<LI><A HREF="Gellerup/index.html">Bygning af Århus Klatreklubs ny
klatrehal ved Gellerupbadet</A></LI>
<LI><A HREF="Photos/index.html">My photos</A></LI>
<LI><A HREF=" http://strutwolf.cwsurf.de/photography.html">
Jörg Strutwolf's photos</A></LI>
<LI><A HREF=" http://www.zqex.dk/pictures/">Zqex's photos</A></LI>
<LI><A href="work/index.html">My work home page</A></LI>
</UL>
<P>
<?php
$fil = fopen("counter.dat", "r");
$antal = fgets($fil, 6); // Reads the current count
fclose($fil);
$antal++;
echo $antal " hits<BR>";
$fil = fopen("counter.dat", "w"); // Updates the count file
fwrite($fil, $antal);
fclose($fil);
?>
<P><BR>
<ALIGN=RIGHT>Updated May 2011 by DB himself.
</BODY>
</HTML>
--
Dieter Britz
| |
Bertel Lund Hansen (18-06-2011)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 18-06-11 06:49 |
|
Dieter Britz skrev:
> OK; her er den nye, uden dette. Det giver en helt blank side. Men hvis jeg
> omdøber den til index.html, virker det, bortset fra php-delen.
Her er en side der virker som du ønsker, men først nogle råd om
HTML og kodning.
1. Husk altid at bruge en doctype (den første linje i min fil).
2. Brug altid den samme doctype som jeg har brugt (indtil du ved
hvorfor du har brug for noget andet).
Ved den doctype er det en fejl at have skråstreger til sidst i et tag.
3. Brug små bogstaver til alle tags og parametre.
4. Lav al styling i CSS-delen. Min fil viser hvordan.
======== PHP-fil ========
<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01//EN' ' '>http://www.w3.org/TR/html4/strict.dtd'>
<html>
<head>
<title>Test</title>
<meta http-equiv='content-type' content='text/html; charset=iso-8859-1'>
<style type='text/css'>
h3 {
text-align: center;
color: #800000;
}
</style>
</head>
<body>
<h3>Dieter Britz's web pages</h3>
<?php
$lines = file("counter.dat");
$antal = trim($lines[0])+0;
$antal++;
echo "<p>".$antal." visitors.</p>";
$fil = fopen("counter.dat", "w"); // Updates the count file
fwrite($fil, $antal);
fclose($fil);
?>
</body>
</html>
================
Kommentarer til PHP:
1. $lines = file("counter.dat");
file() henter indholdet af en fil som et array af linjer der alle
har et afsluttende linjeskift. På den måde er man fri for at
åbne og lukke filen.
2. $antal = trim($lines[0])+0;
$lines[0] er det første element i dette array.
trim() fjerner alle blanktegn.
Resultatet er nu en streng som kan give mystiske resultater hvis
man behandler den som et tal selv om det somme tider virker. Ved
at addere 0, sikrer man sig at det behandles som et tal.
Hvis du i stedet adderer 1, har det samme effekt, og så kan du
spare næste linje.
Resten kender du.
--
Bertel
http://bertel.lundhansen.dk/ http://fiduso.dk/
| |
Dieter Britz (18-06-2011)
| Kommentar Fra : Dieter Britz |
Dato : 18-06-11 08:14 |
|
On Fri, 17 Jun 2011 22:50:55 +0200, Karl Erik Christensen wrote:
> On 17-06-2011 22:37, Karl Erik Christensen wrote:
>> On 17-06-2011 21:27, Dieter Britz wrote:
>>
>>> <?php
>>> $fil = fopen("counter.dat", "r");
>>> $antal = fgets($fil, 6); // Reads the current count fclose($fil);
>>> $antal++;
>>> echo $antal " hits<BR>";
>>> $fil = fopen("counter.dat", "w"); // Updates the count file
>>> fwrite($fil, $antal);
>>> fclose($fil);
>>> ?>
>>
>> Sådan lige umiddelbart (for det er jo et færdigt script).
>>
>> Du kan ikke åbne en fil der ikke findes. Er du sikker på at du har
>> overført "counter.dat" til serveren? Hvis filen ikke findes, stopper
>> udførelsen af scriptet da der ikke er noget fejlbehandling indlejret.
>>
>> Karl Erik.
>>
>>
> Og så er der for resten ikke noget der hedder <BR> i PHP, men /n.
>
> Fjern det helt og se så hvad der sker
>
> Karl Erik.
Det kan jeg da prøve. Men jeg fik <BR> ud af en lærebog. Og ja, filen
counter.dat er der. Jeg afprøver også hvad Bertel har foreslået, det der
med DOCTYPE.
Tak for jeres hjælp.
--
Dieter Britz
| |
Dieter Britz (18-06-2011)
| Kommentar Fra : Dieter Britz |
Dato : 18-06-11 15:38 |
|
On Fri, 17 Jun 2011 22:50:55 +0200, Karl Erik Christensen wrote:
Og så er der for resten ikke noget der hedder <BR> i PHP, men /n.
>
> Fjern det helt og se så hvad der sker
Det virkede ikke, resulterede i at "/n" blev vist i stedet for
at udført. I takt med at leje med det fandt jeg ud af, at en
fejl i echo-sætningen giver en helt tom skærm.
--
Dieter Britz
| |
Dieter Britz (18-06-2011)
| Kommentar Fra : Dieter Britz |
Dato : 18-06-11 15:41 |
|
On Fri, 17 Jun 2011 14:20:49 +0200, Dieter Britz wrote:
> Se kildeteksten af min forside i http://www.dieterbritz.dk Jeg har lige
> sat noget php-kode ind i bunden, som skulle give mig en hjemmelavede
> besøgstæller. Koden ligger i min index.html, som jeg mener den skal, og
> er indrammet af <?PHP og ?>, men i stedet for at gøre det den skulle,
> gengiver den koden som tekst. Filen counter.dat er der, med et tal i.
> Det hele ligger i serveren one.com, og jeg er ret sikker på at de har
> PHP.
>
> Hvad gør jeg forkert? Jeg kunne godt lide at erstatte den tæller som jeg
> bruger lige nu, fra nogle andre sites, men min egen.
Tak alle, som hjalp med det. Jeg er blevet klogere.
--
Dieter Britz
| |
|
|