| Varför finns den här sidan? Helt enkelt för att jag själv ville lära mig vad PHP är och vad man kan använda det till. De här skripten, använder sig av textfiler, för att spara data. En riktig databas är att föredra, när möjligheten finns. Databasens egna funktioner, kan då ersätta många av de funktioner som annars måste utföras i PHP-scriptet. Kan man inte använda databas, t.ex. MySQL, är textfiler den enda möjligheten.
Det här är ingen PHP-skola, utan bara några fungerande exempel, som man kan bygga vidare på. |
Förutsättningar:
För att kolla om du kan använda PHP, kan du skriva en fil med endast detta innehåll:
PHP körs på servern, till skillnad mot t.ex. JavaScript som bara kan köras i webläsaren hos besökaren. Med PHP kan man göra allt, det man tidigare önskat göra, men man inte kunnat, då det inte gått att spara data.
PHP-sidor byggs upp som en vanlig HTML-sida, med tillhörande PHP-kod. Filtillägget skall vara ".php", i stället för htm. Den här sidan är en blandning av vanlig HTML och PHP.
Du måste ha tillgång till ett webhotell eller egen server med installerad PHP-tolk.
De flesta som erbjuder gratis hemsideutrymme, kan inte hantera PHP. Fråga ditt webhotell.
<?php phpinfo(); ?>
Spara filen som phpinfo.php
Ladda upp filen till webhotellet och surfa in på den.
Ser man då en lång lista med information, är det OK. I annat fall ser man bara koden i filen.
Målsättningen är, att det skall vara lätta att installera och lätta att ändra, så det passar för dina behov. De innehåller inga häftiga, onödiga funktioner som bara försvårar förståelsen av skriptet, utan bara det som behövs för en säker funktion.
Du kan normalt inte köra skripten på din egen dator. Därför måste du först ladda upp dem till din server, för att kunna testa dina ändringar (om du inte har egen server med installerad PHP).
För att editera dina PHP-sidor, är det enklast att använda "Anteckningar" eller motsvarande texteditor.
PHP-koden börjar alltid med <?php och slutar med ?>. Om du ändrar i koden som jag skrivit, och det tycker jag du skall göra, ändra bara lite åt gången, så blir det lättare att felsöka och ev. återställa.
Var noga med att punkter, semikolon, paranteser och liknande, kommer på rätt plats och inte blir glömda. Även glömda eller saknade mellanslag, kan ställa till konstiga fel.När du ändrar dina PHP-sidor:
Hasse.
PHP-koden kan inte läsas genom att i webläsaren "visa källa". Då ser man bara den färdiga HTML-koden, som genererats av PHP-skriptet, men det kan vara bra vid felsökning, att kolla att även HTML-koden blir riktig.
För att se PHP-koden måste filen öppnas lokalt i en texteditor.
Ingen databas? Behövs inte!
Alla nedanstående skript, använder en vanlig textfil (.txt) för lagring av inläggen. (Alla har inte tillgång till databas).
CHMOD:
För att kunna läsa och skriva till textfilen, måste filen chmodas till minst 666 (läs & skriv för alla), eller om man vill chmoda en hel mapp, använd då 755. Det gör man efter att man laddat upp filen till servern. I t.ex. Ws_ftp markerar man filen och högerklickar på den. I dialogrutan klickar man sedan på CHMOD och bockar för alla alternativen.
Detta kan ofta även göras i webhotellets controllpanel.
I annat fall får man ett felmeddelande med "åtkomst nekad". Om man inte sätter skrivrättigheter till textfilen, går det inte att spara något överhuvudtaget!
För att det skall bli lättare med redigering av textfilen, har jag undvikit för mycket kod i den (mest bara radbrytning).
Observera att posterna skils åt med ny rad i textfilen "\n", medan ny rad i utskriften som vanligt använder "<br>".
På raderna skils varje delelement åt med ett specialtecken. Det kan bytas till ett annat tecken som inte används i något annat sammanhang.
Om det tenderar att bli väldigt mycket i textfilen, kan man skapa fler textfiler, t.ex. en per år / månad eller efter x antal inlägg. Då kan man använda datum, eller del av datum, som filnamn, för att lättare kunna söka och hitta inlägg.
Det som gäller för alla exemplen är, att de går att utforma precis som man vill med HTML och mer PHP-kod. Jag har även använt JavaScript i formulär för vissa uträkningar och kontroller, men det går säkert att lösa med PHP med.
Alla skript är testade med Windows XP och Internet Explorer samt snabbkollade i några andra webläsare.
OBS: Webhotellets php-versionen är nu ändrad till 5.2.6 mot tidigare 4.4.6. Vissa script har anpassats.
OBS: När skripten ligger i samma katalog, skall fungera utan ändring. Textfiler och adminfiler kan sedan läggas i en annan katalog, som man kan lösenordsskydda. Ändra i så fall sökvägen till txt-filen från det skript som ligger i den publika katalogen (den som alla kan nå).
Glöm inte att chmoda textfilen, när du laddat upp den på servern.
Zip-fil för de flesta exemplen, med alla ingående filer, finns att hämta här nedan.
F.o.m. Windows XP, finns programmet "Komprimerade mappar" som är alldeles utmärkt att packa upp filerna med. Det som kallas "Komprimerad mapp" (ikonen som ett blixtlås), är själva zip-filen. Annars är WinZip, det vanligaste zip-programmet.
När du fått allt att fungera, kan du flytta filerna dit du vill.
Du kan till exempel lägga alla admin-sidor och textfilerna i en lösenordsskyddad katalog.
Glöm då inte länkningen och sökvägarna mellan skripten och txt-filerna.
Det som visas i exemplen, kan skilja sig lite från det som finns i zip-filen, då jag håller på med uppdateringar.
När jag kommer på förbättringar, så ändrar jag, och meddelar det på den här sidan.
- Rad-editor, för att smidigt kunna ändra och radera rader i t.ex. textfiler som används i ovanstående exempel.
En rad ändras i taget, då det annars finns stor risk att man ändrar fel rad (post, datum, inlägg) eller i värsta fall formatering.
Man väljer rad i filen, som sedan delas upp i erfordligt antal inputfält. Efter ändring, sparas filen på nytt.
Eftersom inputfälten loopas fram, kommer alla att vara av type="text". Vid större textmängder i något fält, kanske man får ändra till "textarea" för detta.
Nu går det även att välja att radera hela rader (poster).
- Textfileditor för hela filen: Visar hela filen i en textarea som fyller hela bredden i webläsarfönstret.
Här kan man ändra, lägga till och radera allt i filen, så det gäller att man vet vad man gör.
Prova: radedit.php
Ladda hem båda filerna.
Uppdaterad: 2008-09-19
Jag törs inte garantera att scripten på den här sidan fungerar helt korrekt på alla servrar. För mig fungerar det i alla fall till 100%. Hör gärna av dig, även om allt fungerar eller om du hade några problem att komma igång.
Har du hittat buggar, eller har frågor? Vi kanske kan hjälpa varandra?
På FAQ-sidan, kommer jag att sammanställa de vanligaste frågorna. Skriptet till FAQ-sidan, finns här.
Hasse Du kan nå mig via kontaktformuläret.
En annan besöksräknare med lite fler funktioner, visas här: Besöksräknare 2 (demo).
Unik besökare, vad är det?
Det finns ingen standard. Det beror på vad du själv tycker skall räknas som unik.
Egentligen är det en besökare som aldrig besökt sidan förut, eller? En som inte har besökt sidan förut i dag? Eller en som inte besökt sidan den senaste timman/minuten...? Tiden, får man bestämma själv.
Hur man än gör, så kommer det aldrig att bli helt rättvisande. Hur man känner igen en besökare mellan besöken, kan också utföras på olika sätt. I det här exemplet, sparas en cookie i besökarens dator (om besökaren inte valt att stänga av cookiesfunktionen i sina inställningar). I så fall räknas denna, som en ny besökare varje gång.
Om man i stället väljer att spara IP-nummer i en fil eller databas, blir det också fel. Många byter IP-nummer ofta, ibland mellan varje besök. En annan felkälla blir också att många datorer kan dela på samma IP-nummer.