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