Några enkla och mycket efterfrågade PHP-script
Behöver du en enkel kalender, gästbok, dagbok eller vill du lära dig lite om PHP? Det här kanske kan vara något för dig, som inte vill, eller kan, använda dig av de färdiga lösningar som finns. Ofta är de gratistjänster som finns, översållade med reklam eller trögladdade och de andra skapar en onödig kostnad. Det är heller inte säkert, att de går att anpassa för ditt behov.
Det här kostar ingeting, och man kan "lätt" ändra som man vill ha det.

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å.
Kanske kan den här sidan få andra att inte göra om samma misstag som jag har gjort?

Hasse

Förutsättningar:
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.

För att kolla om du kan använda PHP, kan du skriva en fil med endast detta innehåll:
<?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.

Här finns några användbara nybörjarscript i PHP. (Även jag är nybörjare på PHP och absolut ingen expert).
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.

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.
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-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.
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:
  1. Gör dina ändringar i en texteditor.
  2. Spara sidan.
  3. Ladda upp sidan till webhotellets server med ditt FTP-program.
  4. Surfa in på din sida med webläsaren. Om du redan är där, glöm inte att "uppdatera".
  5. Om det inte fungerar: Kolla ev. felmeddelanden, gå tillbaka till punkt 1 och ändra.
  6. Om det fungerar: GRATTIS! Som tack, vore det bra, om jag får veta hur det gått, om du har ändrat något och gärna vad du använder scripten till. Då kan jag förbättra dem ytterligare och rätta till eventuella fel.
    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.


Enkel gästbok
- En mycket enkel men fungerande gästbok, som man lätt kan ändra utseende på.
Gästboken består av textfilen, en huvudsida med formulär på samma sida samt en redigeringssida.
Båda filerna, laddas upp på servern i samma katalog. Redigeringssidan, kan man lägga i en lösenordsskyddad mapp på servern.
Prova gästboken: gastbok.php
Ladda hem gästboken. Innehåller 3 filer. Uppdaterad: 2008-10-28 (Redigeringsfilen förbättrad).
Enkel dagbok Kan även användas som gästbok eller till att visa nyheter och andra meddelanden.
- Samma idé som gästboken men formuläret på egen sida. Det senaste upptill på sidan.
Med dag för dag-noteringar. Utskriften går att anpassa, som man vill ha den.
Innehåller huvudsida, formulärsida och redigeringssida.
Prova dagboken: dagbok.php
Ladda hem dagboken. Innehåller 4 filer. Uppdaterad: 2008-10-21 (ny redigeringsfil).
Bokningslista / kalender / nyhetspresentation
- Det här var mitt första skript, så det kan verka lite rörigt. Men det fungerar.
Presentation i listfom, med datum, tid och noteringar per rad och med sortering efter datum/tid.
Hur datum, tid och övrig text skall visas, bestämmer man i scriptet. Vilka tider och andra uppgifter som skall vara tillåtna, bestämms redan i formuläret. Det går också att bestämma tidpunkt, när texter visas, t.ex. påminnelser och nyheter.
Jag använder den själv för bokningar, med utskrifter i olika format.
Innehåller huvudsida, formulärsida, redigeringssida och en sida med lista för allmän presentation.
Prova bokningslistan: tidboklista.php Här visas bara utskriften. Formulär och editering följer med zip-filen.
Ladda hem bokningslistan. Innehåller 5 filer. Uppdaterad editering: 2008-10-27
Länklista
- En länklista, där du själv eller besökare kan lägga till nya länkar med tillhörande beskrivningar.
Formuläret har egen sida.
Prova länklistan: links.php
Ladda hem länklistan. Innehåller 4 filer. Uppdaterad editor: 2008-10-27
Annonstavla
- Nästan samma idé som länklistan. Annonseringtid kan väljas och svar sker genom ett mailformulär.
Prova annonstavlan.
Ladda hem annonstavlan. 5 filer +nytt svarsformulär. Uppdaterad editor: 2008-10-27
Chat (0 chattare just nu.)
- En väldigt enkel chat. Den använder sig av AJAX-teknik och lagrar data i textfil. Den innehåller endast fem filer samt en enkel in/utloggning utan registrering.
Zip-filen innehåller en mapp med alla ingående filer, även de två textfilerna.
Ladda upp hela mappen, som den är.
Det går att ställa in, hur många och hur länge meddelandena skall sparas. Tiden för uppdatering går också att ändra.
Här finns ett demo. Tillfälligt lösenord = demo
Ladda hem chatten. Uppdaterad: 2008-11-17
Datafil-editor, 2 olika Till textfiler, som används i stället för databas.
Det här är endast avsett för dig själv och inte för dina besökare. Lägg därför scriptet på hemlig plats, med lösenordsskydd! För att du skall kunna testa funktionen, finns inget lösen i exemplet, men testfilen är liten och går lätt att återställa om olyckan är framme.

- 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


Mail-formulär
- Ett enkelt kontaktformulär, som man kan ha på sin hemsida, där besökare kan kontakta dig.
Endast en fil. Du behöver bara fylla i din egen e-postadress.
Titta på formuläret: kontakt.php Här kan du även få kontakt med mig.
Ladda hem e-postformuläret. Bara en fil. Uppdaterad: 2007-12-20
När det inte fungerar:
Det absolut vanligaste felet, är att textfilen inte är chmodad. Då går det inte att spara något alls.
Ett annat vanligt fel, är att man bytt filnamn eller flyttat filer och glömt ändra länkar eller sökvägar.
Börja med att lägga alla filer i samma katalog när du testar. Då skall det fungera.
När man har textfil som datafil, används en avdelare mellan varje element. Om man ändrar i skriptet, lägger till eller tar bort något från formulär, kan det hända att element och poster blir hopblandade i filen.
Kolla i textfilen, så antalet avdelare på varje rad, stämmer med skriptet och det är lika många på varje rad.
Om det ändå inte vill fungera: Hör gärna av dig, så kan vi försöka lösa problemet.
Om du lägger filerna i olika kataloger på servern, t.ex. om du vill gömma formulär och editeringssida, måste du ange sökvägen till och från dessa.
Tips! Lägg alla formulär och editeringsidor, som inte skall vara offentliga, i en lösenordsskyddad mapp.
Vill du lära dig mer om PHP? Det finns hur mycket som helst.
Här är hela PHP-manualen.
Mera tips finns i länklistan.

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


Besöksräknare:
Den här räknaren är en enkel php-räknare, som bara räknar det totala antalet besökare. Den hämtar det tidigare värdet från en fil. Om du inte nyligen besökt sidan, lägger den till 1 och sparar det nya värdet, som sedan visas här:
5578 besök sedan 2008-01-01.
Här kan du se koden.

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.


Skriva och ändra i en textfil:
-Ett exempel på hur man lätt kan ändra en enskild text på en hemsida. Till exempel nyheter eller snabba meddelanden till besökarna.
Ett enkelt formulär och en liten textfil. Meddelandet kan sedan infogas på den plats man önskar.
Prova att ändra texten. Meddelandet visas här under. Uppdatera sedan sidan, för att se det som är ändrat.
Här finns scriptet som zip-fil tillsammans med en liten infofil.
Testmeddelande:
Radbyte funkar ej på min sida? Varför de´då?
Rad 2
Rad 3