Projekt i princip klart!

april 4, 2008

Pga. tekniskt strul så har jag ej kunnat uppdatera denna blogg på ettag, hursomhelst så anser jag nu webbsidan och mitt projekt som färdigt. Jag har blivit tvungen att begränsa mig lite för att vissa saker har visat sig ta för lång tid för att kunna färdigställa.

Det som jag struntat i att göra är följande:

Filmarkiv: Sidnavigering, sortera på kategori, sökfunktion.
Avbokningsfunktion.
Funktion för att byta sina uppgifter (typ byta mail, password etc.).
Funktion som förhindrar dubbelbokning.

Snart kommer sidan att vara publik på www.johannessandå.se .


Kundlista med sökfunktion, och konstruktiv kritik

mars 30, 2008

Idag har jag gjort en sida där alla kunder visas i en lista, samt ett enkelt formulär i vilket man kan söka på Kundnr, Förnamn, Efternamn och Ort. Resultatet visas i en tabell på samma sida.

Jag har även fått lite konstruktiv kritik, och kommit fram till att när man registrerar sig så måste man skriva in sitt personnummer, och när man sedan hämtar filmen i butiken så visar man legitimation för att styrka sin identitet. Detta försvårar stöld av film.
Personnumret används även som ”användarnamn” när man loggar in, istället för mail.


Uppladdningsscript och symboler

mars 25, 2008

Idag har jag lagt in till ett script där man lägger till filmer, i vilket man kan ladda upp en bild (omslag). Bilden läggs i mappen /pics/film och får ett unikt namn genom att tiden för uppladdningen läggs till till filnamnet.
Uppladdningsscriptet finns i en popup, och efter att man har laddat upp bilden får man en länk som man kopierar och klistrar in i Bildadress-fältet.

Jag har även fixat så att man kan skriva symboler (t.ex. ” ‘ < & ) i filmbeskrivningen, detta mha funktionen htmlspecialchars.
Såhär ser det ut på lagrasidan:

$bes = htmlspecialchars($_POST['bes'], ENT_QUOTES);

Dagens arbete innebär att sidan där man lägger till filmer i princip kan anses som färdig.

Tidsåtgång: ca 4 timmar.


Redigera filmer klart

mars 24, 2008

Man kan nu redigera all info i filmerna, och allt kod finns fortfarande i edit.php
Jag har alltså alla funktioner för att redigera och lagra det som redigeras i edit.php, tidigare krävde detta 13 st filer. Detta sparar utrymme och bandbredd, och gör att servern fungerar snabbare.

Tidsåtgång: ca 2 timmar.


Admin-sida för bokningar

mars 17, 2008

Idag har jag arbetat med sidan där man kan se vilka bokningar som ligger inne, samt ange att filmen är hämtad, och sedan att filmen är lämnad. När en film anges som ”hämtad” så minskar filmens antal med 1, och när den hämtas så ökar den med 1.

Kvar att göra innan sidan kan anses som klar:

  • Lista över medlemmar (om jag hinner sökfunktion)
  • Detaljer för en specifik medlem (när man är inloggad som admin. Man ska även kunna uppdatera notes-kolumnen)
  • Sidnavigering på filmarkivet, dvs lista ca 15 filmer per sida. Sorteras på kategori.
  • Sökfunktion på filmarkivet.
  • Edit-sida för filmer (i princip bara att ta från ”förra sidan”)
  • Samt lite småsaker, till exempel:
    • När man registrerar sig ska man länkas till 1a sidan
    • När man beställer en film ska man se texten ”Filmen xyz är nu bokad, du får ett mail när den kan hämtas!”
    • På ”mina sidor->mina bokningar” ska man kunna trycka på filmens namn och då länkas till filmens informationssida.
    • Avbokningsfunktion både för admin och användare.
    • Funktion som förhindrar att samma film bokas två gånger i rad, samt att man inte ska kunna trycka på ”hämta” om en film inte finns inne.
    • Ev. funktioner för att byta lösenord, mailadress etc.
    • På ”Hem”-sidan finns i nuläget ingenting, måste bestämma vad som ska visas. Förmodligen de senaste x antal filmerna som är inlagda i databasen (”nyheter”).
    • På admins ”bokningar”-sida ska man kunna trycka på användarens id och länkas till dennes sida. Man ska även kunna trycka på bokningens id och se alla detaljer om hela ordern (även alla detaljer om filmen).

Dagens tidsåtgång: ca 2 timmar


    Mina sidor uppdaterad

    mars 17, 2008

    Bilden säger allt!

    sneak.jpg

    (Kundens filmbokningar listas på ”mina sidor”. Aktuell/gammal styrs av en yes/no-kolumn i order-tabellen, och man kommer att kunna ändra denna på admin-sidan. Att göra: Avboka-knapp ska införas. Fixa filmens titel även på gamla bokningar. )


    ”Antal filmer inne: ” och bokningssystem

    mars 16, 2008

    Jag har idag lagt till två kolumner i film-tabellen i databasen som anger hur många filmer av en titel som finns inne (inte är uthyrda) och hur många filmer av titeln som finns totalt. Det finns även ett nytt fält på ”lägg till filmer”-sidan, där man anger hur många exemplar som finns.
    Jag har även gjort detaljsidan, där mer info syns om filmen. Jag valde att begränsa beskrivningens text till 200 tecken, och sätta ”…” efter, man ser hela beskrivningen inne på detaljsidan. Där listas även skådespelarna och antalinne.

    Jag har även påbörjat arbetet med själva bokningssystemet, som ju är själva poängen med själva sidan!
    Jag funderar lite kring hur jag ska utforma ”bokningar”-databasen.

    Förutom följande kolumner:

    ”bokningsid”, ”kundid”, ”filmid”

    Så funderar jag lite kring hur många olika tid-kolumner det ska finnas.
    Dessa tänker jag på: När filmen bokades, när filmen hämtades, när filmen ska lämnas tillbaka, när filmen lämnades tillbaka.
    Jag funderar också på att lägga till en eller två kolumner i ”kund”-databasen, ”notes”, där det kan stå t.ex. att kunden har varit försenad med att lämna tillbaka x antal gånger etc. , och ”varningar”, som innebär att om man lämnar in en film för sent ett visst antal gånger så får man ett visst antal varningar, och vid ett visst antal varningar så förlorar man behörigheten att boka.

    Jag kommer förmodligen inte göra det såhär stort, utan håller mig nog bara på de första tre kolumnerna i ”bokningar”-databasen, och en ”notes”-kolumn i ”kund”-databasen.

    Tidsåtgång idag: ca 5 h

    Tillägg: Med ”bokningar”- och ”kund”-databasen menar jag givetvis tabellen. Allt ligger i en och samma databas.


    Adminsidan 50% färdig!

    mars 14, 2008

    Idag har jag arbetat med att lägga in admin-funktionerna på den nya sidan, som jag tidigare skapade. Funktionerna har modifierats lite grann, för att fungera på ett helt nytt sätt.

    Ex:
    Man väljer ”Ändra  regissörer”. Man länkas till ”edit.php?regi”
    En lista över samtliga regissörer visas:

    screen_regis.jpg

    För att ändra regissörens namn, skriver man helt enkelt i det nya namnet och väljer ”Ändra”. Formuläret går till ”edit.php?regi&edit”.
    Funktionen ser ut såhär:

    if (isset($_GET['regi'])){
    if (isset($_GET['edit'])){

    Väljer man ”Ta bort” så skickas man till ”edit.php?regi&delete”.

    Genom att jag gör såhär så får jag ner filantalet från 10-15 till 1, vilket underlättar det mesta. Enda nackdelen är att filen edit.php får ett relativt stort antal rader, men så länge man kommenterar så tycker jag att det är lättare och mer överskådligt än att hålla på att hoppa mellan olika filer!

    Jag har även gjort en egen liten meny som endast syns när man är inloggad som admin. Såhär ser den ut:

    screen_adminu.jpg


    Ny design och registrering för medlemmar m.m

    mars 14, 2008

    Idag har jag börjat lägga in sidan i en helt ny design från ett halvfärdigt sidprojekt jag haft. Designen är snyggare, stilrenare, och mer lämpad för ändamålet.

    Jag har även lagt in funktioner för att registrera en ny användare, logga in, och visa uppgifter om den inloggade användaren.
    Kvar att göra är att lägga in funktion för att boka en film, samt att kunna lista aktuella och tidigare bokningar.
    När man är inloggad som admin ska man självklart kunna se nyregistrerade orders, vem ordern tillhör, samt funktioner för att flytta ordern mellan olika statusgrader, t.ex ”väntar på att lämnas in”, ”finns i butiken” osv.

    Jag hade lite problem med inloggningsfunktionen; Inloggningsfönstret visas hela tiden på alla sidor (när man är inloggad visas i det fältet status för användaren m.m, ”Välkommen nn”), men när man loggar in så flyttas man till index.php . Detta är dumt, man bör istället komma tillbaka till sidan man loggade in från.
    Detta löste jag med en funktion som talar om på vilken sida man tryckte på logga in-knappen,
    $_SERVER['HTTP_REFERER']

    Man flyttas till control.php, där användarnamn och lösenord checkas, och sedan skickas man vidare till sidan man kom ifrån.
    En annan lösning hade varit att göra ett hidden field i login-formen, är däri skriva vad sidan heter. Men den lösning jag använder mig av innebär mindre kod, mindre jobb, och mindre belastning av servern.

    Jag har även lagt in en funktion som visar en viss text om man loggar ut, skriver fel lösenord, eller har registrerat sig. Exempelvis vid utloggning: Loggaut-knappen leder till control.php?logout som utför detta:

    if (isset($_GET['logout'])){
    $_SESSION = array();
    session_destroy();
    header(”Location: index.php?bye”);
    exit;

    Efter att sessionerna har tagits bort, så skickas man alltså till index.php?bye . Det är just ”?bye” som bör uppmärksammas, såhär ser kodstycket i index.php ut som bearbetar detta:

    if (isset($_GET['bye'])){
    echo ”<font color=blue>Du är nu utloggad!</font>”;
    }

    På samma sätt fungerar fel lösenord och nyregistrering.

    Jag har idag även arbetat med säkerheten på sidan, främst för användarnas uppgifter. Innan lösenorden lagras i databasen så läggs ett antal tecken till (salt), och hela strängen krypteras i md5.

    För att hålla nere filantalet så har jag försökt använda mig av samma fil flera gånger, och använda funktionen include. T.ex. så är behöver jag inte skriva uppgifterna för att ansluta till databasen på varje sida, utan det finns i en fil som includas.
    Jag har ännu inte lagt in funktionera för att lägga till, ändra och ta bort filmer, skådespelare och regissörer, men innan jag gör det så vill jag hitta en lösning för att använda samma fil för t.ex. att lagra ny film/skådespelare/regissör.

    I nuläget / på den gamla sidan så är exempelvis lägg till/ändra/ta bort skådespelare uppbyggt såhär:
    edit_act.php — Lista över alla skådespelare, samt val (lägg till/ändra/ta bort)
    edit2_act.php — Här redigerar man en specifik skådespelare.
    edit_act_store.php – Hit skickas man efter att man har tryckt på OK i edit2_act.php. Skådespelaren ändras.
    add_act.php — Här finns ett textfält där man fyller i skådespelarens namn.
    add_act_store.php — Hit skickas man efter att man har tryckt på OK i add_act.php. Skådespelaren lagras.

    Detta är inte särskilt effektivt, och jag ska jobba på en annan lösning när jag lägger in funktionerna i den nya sidan.

    Dagens tidsåtgång: 8 timmar


    Ta bort och ändra skådespelare

    februari 28, 2008

    Man kan nu ta bort och ändra namn på skådespelare. Jag kommer snart att fixa denna funktion för regissörer.


    Ta bort och ändra filmer

    februari 27, 2008

    Nu kan man ändra i filmer och ta bort dessa.

    Lite återstår dock att göra, dels vill jag att på ändringssidan så ska de redan valda skådespelarna redan vara markerade i rullistan. Jag har temporärlöst detta genom att skriva bredvid ”Aktuell skådespelare är: $act1″, men det känns inte helt OK!

    Sen så vill jag ha en bekräftelseknapp för att ta bort en film, nu är det bara att trycka på ”Ta bort” så försvinner filmen direkt. Ska kika lite på javascript.


    Lägg till skådespelare

    februari 27, 2008

    Idag har jag arbetat med en funktion där man kan lägga till skådespelare. Jag har även arbetat lite med säkerheten, och gjort en script som gör att om man bara tillåts om man kommer från rätt sida.

    Exempelvis om jag vill lägga till en skådespelare, så måste jag till sidan som heter add_actor.php. Länken till den sidan finns endast på sidan add.php, och scriptet säger därmed att om man inte kommer från add.php så har man ej behörighet.

    Så här kan det se ut:
    if ($_SERVER['HTTP_REFERER']; != ”http://[domän/ip]/add.php”){
    echo ”Du saknar behörighet”;
    exit();
    }


    Det fungerar!

    februari 26, 2008

    Idag har jag korrekturläst koden för sidan där man lägger till en film i databasen, och hittade till slut felet, så nu är den sidan funktionsmässigt klar.

    Redigeringssidan är inte klar ännu, men jag kommer att prioritera själva nyhetssidan där filmerna ska visas.

    Nedan finns en printscreen på hur lägg till-sidan ser ut.

    2008-02-26_183554.jpg


    Databasdesign etc.

    februari 25, 2008

    Idag har jag jobbat i ca 6 timmar med att utforma databaserna samt att skapa en sida där man kan lägga till nya filmer, redigera befintliga filmer etc.

    Jag har dock fortfarande lite kvar att göra där, allt fungerar inte helt och hållet som jag vill.
    Databasen är utformad på så vis att det finns en databas för skådespelare, en databas för regissörer etc. Om jag t.ex. lägger till filmen ”Beck: Advokaten” och ska peka ”Peter Haber” till filmen, så får filmen hans actorid, t.ex. 1.
    Jag kommer snart att börja jobba med säkerheten också, för att försvåra dataintrång på admin-sidan.


    Fortsatt arbete med meny och innehåll

    januari 30, 2008

    Idag har jag bearbetat menyn och hur innehållet ska infogas. Förmodligen kommer jag använda mig av en iframe, och funktionen src, som gör att man kan infoga en fil i iframen. Eftersom jag har programmerat på min hemdator och inte skoldatorn, så har jag inte kunnat kolla om det eventuellt finns något bätre sätt att lösa infogningsfrågan, men som sagt så blir det troligtvis en iframe i slutändan ändå.

    Jag har även börjat jobba på en inloggningsfunktion, både för admin och för vanliga användare. Jag måste dessutom ordna en sida där nya medlemmar kan registrera sig.


    Divvar m.m

    januari 10, 2008

    Idag har jag arbetat med själva utformingen av sidan. Jag har ordnat så att sidan är en bestämd storlek (640px bred) och centrerat denna. Valet av storlekens bredd beror på att det fortfarande finns folk med skärmar av den upplösningen, och för att de ska kunna se sidan utan att behöva skrolla i sidled så kör jag med en relativt låg bredd. Detta blir även ganska snyggt när man ser det på en stor skärm.

    En printscreen bifogas, endast för att visa hur menyn, innehållet och sidhuvudet troligtvis kommer att vara uppbyggt.

    work


    Meny påbörjad

    januari 9, 2008

    Idag har jag påbörjat arbetet med sidomenyn. Jag har valt att byga upp den på detta sätt:

    Meny 1 (hem)
    Meny 2 (nyheter)   meny 2a 2b 2c
    Meny 3 (”bläddra”)   meny 2a 2b 2c
    Meny 4 (kontakt)

    Inom parantes är endast exempel på vad som skulle kunna finnas där. Meny 2a 2b 2c på nyheter skulle exempelvis kunna vara genrer. Jag har även valt att låta    meny 2a 2b 2c vara ”gömda” sålänge man ej har tryckt på meny 2 eller meny 3. Detta för att det helt enkelt blir snyggare, istället för att låta dessa ligga framme.


    Programmering B snart avslutat

    december 13, 2007

    Sista lektionen för Programmering B är nu på måndag, och efter det är jag i princip helt redo att börja programmera min hemsida. Jag räknar med att ha börjat lägga upp strukturer över det hela, samt inleda själva programmeringen, i början av Januari.


    MySQL + phpMyAdmin!

    november 26, 2007

    Under dagens programmeringslektion experimenterade vi en del med phpMyAdmin. Jag fick det inte riktigt att fungera på min laptop, men när jag kom hem så satte jag mig vid servern och började konfigurera den ordentligt.
    Efter två timmar så hade jag både lärt att göra en databas (mha webdesignskolan) i MySQL Administrator / MySQL Query Browser, och dessutom så fungerar phpMyAdmin helt och hållet. Jag kan nu gå in och redigera databaserna från t.ex. skolan, genom johannesandå.se/phpmyadmin. Kanon!

    Ett par screenshots:

    phpmyadmin

    mysqlqb


    Inloggning med cookies och session

    november 12, 2007

    Under dagens Programmering B har jag lyckats skapa en login-sida, vilket kommer att vara nödvändigt vid en admin-inloggning på Videobutiken-sidan!


    Programmering B

    november 5, 2007

    Äntligen så har kursen startat, med vikare pga Ramins tjänstledighet terminen ut.

    Under kursens första lektion installerades MySQL 5, och sedan försökte jag få igång PHPMyAdmin (vilket inte gick helt bra). Väl hemma konfigurerades MySQL 5 på servern en aning .

    Eftersom jag hade så tråkigt just idag, så bifogar jag även en bild på servern:

    Server


    Seminarium

    oktober 26, 2007

    Idag har jag varit på ett seminarium tillsammans med ett tiotal andra projektarbetare. Tillställningen var inte så behjälplig, då jag inte fick någon feedback eller något förslag som jag inte tänkt på tidigare.

    Det var dock roligt att höra hur det går för de andra eleverna, vilket kanske faktiskt var den huvudsakliga tanken!


    Något framskjuten tidsplan

    oktober 22, 2007

    Tanken var att Programmering B skulle starta idag, och att jag skulle lära mig en hel del om databashantering. Tyvärr så var Ramin frånvarande vilket innebar att kursstarten uteslöts, vilket gör att min databas får vänta en vecka till.


    Bloggbyte

    oktober 16, 2007

    Nu är hela bloggen flyttad från j0hannes.blogg.se till johannessanda.wordpress.com .

    Anledningen till bytet är att denna bloggsida är mycket snyggare, mer avancerad och helt enkelt bättre på det flesta sätt och vis.

    Lite uppdateringar kring själva projektarbetet:
    MySQL är installerat på servern, och jag tror att det fungerar.
    Prorammering B börjar snart, och där kommer vi gå in på databashantering. Jag kommer då börja jobba mer projektet ”på riktigt”, dvs verkligen börja programmera själva funktionerna.


    Servern fixad

    oktober 7, 2007

    Under helgen har jag fixat med serverdatorn, som nu är uppe och fungerar. Här är serverns specifikationer:

    CPU: AMD Sempron 3200+, 1800 MHz
    RAM: 2x Kingston 512 MB, pc3200
    HDD: Samsung 200 GB, SATA2
    OS: Windows Server 2003
    Uppk: 24/1 mbit
    App: Apache 2.2.6, PHP5, FileZilla FTPserver (för uppladdning direkt från Dreamweaver)

    Kvar att göra är att installera MySQL, sen tror jag att servern är helt redo för projektarbetet.

    www.johannessandå.se är nu igång, men det finns ingenting speciellt intressant där – än så länge!

    OBS för att komma åt websidan i Internet Explorer så kan denna länk användas; http://xn--johannessand-4cb.se/


    Fortsatt med designen…

    oktober 4, 2007

    Som topic säger så har jag idag fortsatt arbetet med designen under 2-3 timmar och stött på mitt första egentliga problem;
    Jag gör sidan i php och med tabeller (eventuellt divar), och om du tittar på bilderna i inlägget nedan så förstår du att endast mittencellen ”INNEHÅLL” ska laddas ner man trycker på en länk i meny-cellen. Det är alltså även mitt problem!

    Jag vet hur man gör när man använder frames, men så är ju inte fallet…
    Måste hitta en lösning snart, tror det kommer bli någon sorts if-sats i php.


    Sidan påbörjad!

    oktober 3, 2007

    Idag träffade jag Ramin och vi ändrade bredden på sidan till 900 px. Sen så lärde han mig några smågrejer i Dreamweaver, och det är där jag kommer arbeta med designen (så jag kan lägga störst fokus på själva php-kodningen).
    Sedan så har jag fixat en logga och bakgrundsfärg, och gjort grunden till sidan!

    Såhär ser det ut med ramar:

    Med ramar
    Och här är utan ramarna (som det kommer se ut i slutet):

    Utan ramar

    Hade tänkt börja lära mig vad jag ska installera på serverdatorn, så allt blir tillgängligt på internet.


    Projektplan

    oktober 1, 2007

    Projektplanen har bearbetats under helgen och är strax färdigställd. Mailas någon gång under kvällen, hoppas på feedback innan fredag.

    Jag håller också på att experminetera med Microsoft Project, kanske att jag kommer använda mig av detta som planeringsverktyg.


    Gårdagen

    september 27, 2007

    Under möte med Ramin igår tecknade vi upp hur sidan kommer att vara uppbyggd (ungefär) och hur databasen kommer att vara uppbyggd, under ca 45 minuter.

    Jag gjorde efter det en mycket enkel beta-skiss igår på hur hemsidan skulle kunna se ut!

    Startsida aktuellt


    Blogg för projektarbete

    september 26, 2007

    Den här bloggen kommer att fungera som loggbok för mitt projektarbete!
    Info om vad jag håller på med finns under Om i menyn längst upp.