/ 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
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 &Aring;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&ouml;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

Søg
Reklame
Statistik
Spørgsmål : 177417
Tips : 31962
Nyheder : 719565
Indlæg : 6407865
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste