Visar inlägg med etikett php-gtk2. Visa alla inlägg
Visar inlägg med etikett php-gtk2. Visa alla inlägg

08 oktober, 2008

Programmering: PHP Automatiskt Bahnhof inloggning Halmstad Hitnet

Hej! Jag använder Bahnhof's stadsnät i Halmstad för mitt Internet med mera. Nu är det så att man måste logga in manuellt varje gång i Halmstads hitnet-portal. Men om man däremot använder en router mellan sin dator och sitt nätverksuttag så borde det inte vara några problem.

Nu är det så att jag vill logga in automatiskt på stadsnätet med mitt användarnamn och lösenord. Hur löste jag det? Jo, jag programmerade ett väldigt litet skript i PHP som sedan anropas varje gång jag startar min dator. För er som vill veta använder jag PHP-Gtk2 i nuläget för att köra lokala PHP-skript.

Hur fungerar det?
Det är bara att köra skriptet samt tillåta trafiken genom brandväggen.

bahnhof-autologin.php
<?php

// Här anger ni inloggningsuppgifterna
$username = 'ANVÄNDARNAMN_HÄR';
$password = 'LÖSENORD_HÄR';
$realm = 'bahnhof';

// Server, port, samt data för att logga in via POST
$server = 'login.hitnet.nu';
$port = '80';
$uri = '/axs-login.do';
$content = 'method=login&username='. $username .'&realm='. $realm .'&password='. $password .'&next=Logga+in%21';

$post_results = doPost($uri, $content, $server);

//
// Credit går till "albertohf"
// på webbsidan http://www.php.net/fsockopen
//
function doPost($uri,$postdata,$host){
// Skapa en anslutning till servern
$da = fsockopen($host, 80, $errno, $errstr);
if (!$da) {
// Felkontroll
echo "$errstr ($errno)
\n";
echo $da;
}
else {
// Skapa paket-huvudet som ska skickas till servern som POST
$salida ="POST $uri HTTP/1.1\r\n";
$salida.="Host: $host\r\n";
$salida.="User-Agent: PHP Script Waschmans Autologin\r\n";
$salida.="Content-Type: application/x-www-form-urlencoded\r\n";
$salida.="Content-Length: ".strlen($postdata)."\r\n";
$salida.="Connection: close\r\n\r\n";
$salida.=$postdata;

fwrite($da, $salida);

while (!feof($da))
$response.=fgets($da, 128);

$response=split("\r\n\r\n",$response);

// Endast till för felsökning.
// Sparar resultatet från inloggningen i results.html
file_put_contents('results.html', $response);

$header=$response[0];
$responsecontent=$response[1];
if(!(strpos($header,"Transfer-Encoding: chunked")===false))
{
$aux=split("\r\n",$responsecontent);
for($i=0; $i<count($aux); $i++)
if($i==0 || ($i%2==0))
$aux[$i]="";
$responsecontent=implode("",$aux);
}//if
return chop($responsecontent);
}//else
}//function-doPost
Koden kanske även fungerar för andra Internetleverantörer i stadsnätet men det har jag lite svårt att testa eftersom jag bara har en tjänst beställd.

Jag vet inte riktigt hur många av er som kan ha någon nytta av detta men det har i alla fall jag. Tänkte att jag skulle publicera koden till allmänheten.

Tips!
Om ni använder webbläsaren Firefox med tillägget "Live HTTP Headers" så kan ni se alla paket-huvuden som skickas till servern när ni loggar in, loggar ut, eller helt enkelt surfar vanligt. Då kan ni ta reda på formatet som används för att skicka variablerna till inloggningsservern och sedan fortsätta där genom att programmera ett eget skript.

Om någon av er kära läsare får användning av detta eller vill använda koden för att sedan anpassa den för era behov så får ni gärna lämna en kommentar och berätta.

12 augusti, 2008

PHP-Gtk2: Svenska tecken

Problem med svenska tecken
Om ni får konstiga tecken som egenligen ska vara svenska (åäöÅÄÖ) när ni skapar program med PHP-Gtk2 så beror detta på den aktuella teckenkodtabellen som används. På engelska kallas detta för "Code page" och en lista på dessa finner ni på en webbsida Language Codes [1] i källan till artikeln.
Sverige har codepage: 1252 och man kan även använda UTF-8 om ert system stödjer detta.
För att ändra detta i konfigurationen för PHP-Gtk2 så öppnar ni filen här nedanför med en textredigerare.
Exempelvis: C:\PHP-Gtk2\php-cli.ini
Längst ner bör ni finna följande.
php-gtk.codepage = CP1250
Ändra till detta istället:
php-gtk.codepage = CP1252
;eller
php-gtk.codepage = UTF-8
Färdigt!
Nu kan ni använda svenska tecken utan problem i era PHP-Gtk2 program.
"Happy programming!"

Källor
[1] http://www.science.co.il/Language/Locale-Codes.asp

20 december, 2007

PHP: Bästa programmeringsspråket

Grattis PHP
Jag har nu officielt valt PHP som mitt favorit programmeringsspråk, speciellt version 5. Det får även mina lovord vilka lyder:
"PHP är enligt mig ett flexibelt programmeringsspråk som är kraftfullt, enkelt, effektivt, gratis och populärt."
Det får utmärkelsen eftersom jag har använt det ett bra tag (inte tillräckligt) och redan fastnat för det framför andra testade så som ASP och Java (ville även testa Ruby men har inte tid). Det finns ett nästan oändligt community (ursäkta slanget men tycker det passar in) på Internet och dokumentationen är superbra och mycket väl utformad. Det finns även flera miljoner olika exempel på kod skriven i PHP om man vill komma igång snabbt om man är nybörjare eller om man bra vill lära sig något nytt. Nämnde jag att PHP även är utvecklat under öppen källkod vilket betyder att vem som helst kan modifiera koden för hur PHP är uppbyggt, för personligt bruk. En stor fördel är att PHP är oberoende av plattform (operativsystem) och att man med en modul kan få PHP att även skapa fönsterbaserade program. Det är alltså inte längre endast för webben som det var ursprungligen. Jämför detta med Java.

En sökning på Google efter frasen "programming php" gav cirka 10½ miljoner sökresultat. Jämförde även detta med några andra programmeringsspråk. Jämförelser kan ni se i tabellen här nedanför.







TypTräffar
Java11,500,000
PHP10,600,000
C21,100,000
ASP50,000,000
Visual Basic~2,300,000

PHP kom på 4:e plats när jag utförde några sökningar baserat på några av de programmeringsspråk jag har testat förut. Java som var en av jämförelserna finns både som server version (JSP) och som vanliga körbara program (Java). Här har jag bara tittat på JSP-kod och exempel på Internet men aldrig testat det. Däremot har jag gått en kurs i Java så jag vet vad man kan åstadkomma med grundläggande kunskaper.

Testet innehöll följande
Redan version 4 av PHP var populär men när version 5 släpptes för några år sedan ökade intresset stort då stöd för bättre objektorienterad programmering och annat smått och gott lades till. Jämförelser har som jag nämnt gjorts mot exempelvis Java, som är helt objektorienterat och andra programmeringsspråk som t.ex ASP som är en Microsoft utveckling under låst (ej öppen) källkod. Jag har också tagit reda på hur lätt det är att lära sig koda i de valda programmeringsspråket utan förkunskaper inom programmering. Detta genom att fråga runt lite (min bror och andra) och försöka komma ihåg mina gamla erfarenheter och lärdomar. En kontroll om koden kan liknas med kod som körs i en motsatt miljö har gjorts för att försöka fastställa hur enkelt det är att porta programmeringsspråken till andra miljöer (t.ex från server-baserad till program-baserad eller tvärtom). Jag har även tänkt igenom noga hur och varför jag har fastnat för just PHP och inte de andra, inklusive eventuella fördelar och nackdelar. Några sista faktorer jag har kollat upp är hur populärt och omtalat ett programmeringsspråk är, samt vad man kan åstadkomma (grundläggande krav).

Resultat (kort)
PHP fick fler poäng än de andra efter mina jämförelser men är inte populärast för det. Huvudsaken är att det är enkelt att lära sig men det finns några småsaker som kan vara lite svåra att förstå. Man kan till exempel manipulera bilder enkelt med GD-biblioteket eller ImageMagick, koppla upp sig mot de flesta databaser via ett smidigt gränssnitt, hantera data från formulär och filer, hantering av XML och mycket mer. Man behöver inte kunna och förstå vad objektorientering är för något vilket kan vara jobbigt och svårt för många att lära sig till en början. Detta är bra om man jämför med till exempel JSP (server-baserad Java) där största delen (nästan allt) hänger på att man kan det, och viss ASP-kod där det existerar lite här och där. Man kanske inte får lika strukturerad kod men det lär man sig med tiden. Ett bra exempel på att PHP är enkelt att lära sig är att jag inte hade alltför svårt att lära mig det jämfört med Java där jag faktiskt gav upp efter att ha försökt gå efter en bok. I Java är det för mycket snack om klasser och objekt vilket gör det lite rörigare. Min bror på 12 år har heller inte haft några svårigheter med PHP men jag ser hans begränsningar och vad han har svårt att lära sig.

Att skapa en klient-server baserad version med Sockets i PHP var inte alls så svårt som jag trodde. I Visual Basic (6.0) är det också väldigt enkelt och lämpar sig nog mest för den absoluta noob..., eh förlåt, nybörjaren inom Sockets.

Ett plus i kanten är att det går att skapa grafiska applikationer i Windows/Linux/Mac med tillägget/modulen PHP-Gtk. Se gtk.php.net för mera information om tillägget.

Motivering
"PHP är enligt mig ett flexibelt programmeringsspråk som är kraftfullt, enkelt, effektivt, gratis och populärt."

Slutord
Jag kommer nog aldrig att lämna PHP. Och om jag är tvungen att lära mig något annat väljer jag helst Perl eller C (kanske C++) som liknar PHP väldigt mycket. Så vad tycker jag att ni ska göra nu? Jo ni ska lära er PHP eller åtminstone läsa lite om det på Wikipedia. Kan ni redan PHP får jag gratulera er som använder det helt klart bästa programmeringsspråket enligt mig själv.

12 december, 2007

PHP-Gtk2: Grafiska applikationer i PHP

Förord
Detta är bara början för den artikelserie jag kommer skriva så småning om om tillägget Gtk till PHP, även i dagsläget känt som PHP-Gtk2. Någon gång nu efter jul har jag planerat att skriva den första riktiga delen i serien. Även om jag har skrivit lite kort om PHP-Gtk2 innan så är det efter jul (början 2008) som det kommer igång. Allt hänger på hur mycket jag har att göra i skolan och mina projket på fritiden.

Varför jag vill skriva serien
Jag vill skriva några artiklar om PHP-Gtk2 eftersom det ännu inte finns så värst många på svenska. Har noterat någon enskild text om det i tidningen Datormagazin men jag vill rikta mig lite mer åt nybörjare, alltså från grunden.

Vad man bör kunna för att hänga med
Man bör vara god vän med skriptspråket PHP som används på serversidan i en webbapplikation eller skript. Ni som har programmerat i Visual Basic förut kommer känna igen vissa egenskaper, så som fönster, formulär, knappar, textrutor, bilder, menyer med mera. Men nu är saken den att man inte ska behöva veta något om detta för att ha möjlighet att lära sig PHP-Gtk2 så därför kommer jag även tala om hur något speciellt fungerar och vilka riktlinjer som finns när man utvecklar och designar grafiska applikationer.

Förberedelser
Ni kan söka efter PHP-Gtk2 på exempelvis Google och ta reda på lite vad som finns, program, utvecklingsmiljöer för PHP, diskussionsforum och liknande. Då underlättar det senare när ni börjar följa artikelserien. Redan nu kan jag rekommendera att ni tar reda på hur man installerar och använder Glade version 3 som är en RAD ("Rapid Application Development") för till exempel PHP-Gtk2. Gnope är ett paket för Windows som innehåller alla bibliotek och konfigurationsfiler som behövs för att komma igång. Annars kan man besöka den officiella hemsidan gtk.php.net och ladda ner senaste versionen (version 2 beta rekommenderas).

Min erfarenhet av PHP-Gtk2
Jag har programmerat i PHP sedan gymnasiet och började med PHP-Gtk2 lite smått hösten 2006. Jag har hängt med under utvecklingen och lärt mig vad man kan göra och vad man inte bör göra samt läst lite artiklar som beskriver vissa problem och funderingar som kan uppstå när man utvecklar i just version 1 och 2 - skillnader o.s.v. Detta betyder dock inte att jag är expert på ämnet utan kan typ bara grunderna. Det är också därför jag har valt att skriva en artikelserie - för att lära mig mera

Vad händer nu då?
Nu får ni vänta tills jag skrivit klart första delen i artikelserien om PHP-Gtk2 för nybörjare.

19 oktober, 2007

PHP-Gtk2: Nytt Glade v3.3.4

Verktyget Glade som används vid utveckling av GTK-program i Linux och Windows har släppts i en ny version, speciellt för Windows.

Verktyget (även kallat Rapid Application Delevopment - RAD) är perfekt för utvecklare som vill se hur deras applikation kommer se ut när det är färdigt. Det är enkelt att skapa ett nytt program - man bara klickar på det man vill lägga till och sedan dra det på plats. Givetvis finns det regler för hur detta fungerar men det är oviktigt.

En viktigt egenskap är att Glade sparar designen av programmet i XML formatet. Det gör att samma design kan användas i olika anpassade programmeringsspråk. Ett exempel på det är PHP-Gtk2 som i dagens läge mestadels skrivs för hand, men även ibland i verktyget Glade. Det gör det mer effektivt att skapa program och man slipper tänka på designen när man kodar, något som är viktigt att separera när man programmerar i de flesta programmeringsspråken.

Det finns många exempel på Internet om hur man använder verktyget och jag kommer även skriva mer om hur man använder det i min framtida artikelserie om PHP-Gtk2. Serien har varit planerad väldigt länge men jag har ont om tid, samt att jag studerar på högskola nu. Istället sätter jag mig ner ibland om antecknar på papper om vad jag vill ta med i serien och hur man enklast kommer igång.

Vill du testa verktyget och kanske testa PHP-Gtk2 samtidigt. I så fall rekommenderar jag följande länkar:

http://canzoniere.ilbello.com/php-gtk/glade3-3.4.0-win32-1.zip -- De binära filerna
http://www.kksou.com/php-gtk2/articles/install-glade3-for-PHP-GTK2-on-windows.php -- Kom igång med Glade 3 på Windows. Ett måste om ni vill veta hur ni får den nya versionen 3.x.x att fungera.

Länge leve Glade 3 och dess efterföljare. Hoppas ni kommer tycka om Glade lika mycket som jag när jag först stötte på det.

29 juni, 2007

PHP-Gtk2: Omvandla till EXE

Nu äntligen kan man omvandla PHP-Gtk2 + PHP5.1.6 till enskilda exe-filer (körbara filer). Det underlättar då för många som gärna vill dela med sig av sina skript och program till de som inte har en PHP-Gtk2 miljö installerad på datorn.

Hur är detta möjligt?
Jo, det finns ett program på Internet som heter PriadoBlender. Det använder sig utav ett mindre program vid namn embed.exe som lägger till PHP-Gtk2 skript i "Resources"-delen i den körbara filen. Fungerar på samma sätt som man lagrar bilder och andra småsaker i körbara filer.

Varför är detta bra att veta?
Detta kommer jag ta upp när jag skriver mina artiklar om PHP-Gtk2 som fungerar ungefär som en guide för de som vill veta mera om- och lära sig utveckla med PHP-Gtk2.

Del 1 i artikelserien om PHP-Gtk2 hittar ni här

Källor
http://www.priadoblender.com (gammal information)
http://pb.impressivegames.com

19 maj, 2007

PHP-Gtk2: Nybörjare Del 1

Förord
Hej och välkommen till en artikelserie om programmeringsspråket PHP-Gtk - en uppföljare till PHP. Jag har planerat att skriva om PHP-Gtk version 2 (PHP-Gtk2) på svenska för att det saknas guider och artiklar på just svenska om PHP-Gtk2. Jag hoppas verkligen att det uppskattas.

Den här första delen i artikelserien kommer innehålla referenser till PHP-Gtk2 (på engelska) för de som känner att de vill hoppa in i leken direkt. PHP-Gtk2 på svenska kommer först i Del 2!


Referenser

* När denna artikeln skrevs refererade länkarna till PHP 5.2.2 och PHP-Gtk2


Slutord
Jag skriver inte artikelserien bara för att det är kul och att jag vill vara snäll mot er alla, utan också för att det är enklare att lära sig om man själv skriver om det och hjälper andra.

Detta var Del 1 i min artikelserie om PHP-Gtk2 för nybörjare. I Del 2 kommer jag visa exempel på svenska med mera.

-- Waschman

08 februari, 2007

cacls i Windows XP

Artikeln kan också heta Behörigheter i Windows XP Home

Introduktion
Den här gången ska jag berätta om ett litet "gömt" program i Windows NT-familjen (NT, XP, 2000). Det heter cacls.exe och med det kan man ändra behörigheter till filer och mappar, om man nu känner för det.

Vill du slippa skapa ett administratörskonto för ditt barn, dina syskon, eller dina andra nära och kära bara för att de vill spela ett spel, eller använda ett program som är blockerat på datorn. Nu är väntan över. Läs artikeln så får du veta mer!


Att tänka på
Tänk på att detta som beskrivs i artikeln bara fungerar på de filer och mappar som befinner sig på en NTFS partition.

Funktionen går att komma åt lite mer smidigare om man gör på följande sätt
  • Windows XP Home edition: Gå in i "Felsäkert läge" och logga in som vanligt. Då kan man högerklicka på en mapp eller fil. Välj "Egenskaper" och gå till fliken "Säkerhet".
  • Windows XP Professional edition: Det finns en "Säkerhet" flik som standard.



Varför jag skriver om detta
Jag skriver den här artikeln för att jag använder Windows XP Home edition hemma på datorn och vill nämligen begränsa vissa saker i den för resten av familjen. Det räcker inte bara med ett administratörs konto och begränsade konton. Jag vill kunna ställa in säkerheten mycket noggrannt. Därför skriver jag detta för att det kanske finns fler där ute i mörkret som vill kunna göra detsamma (utan att behöva gå in i "Felsäkert läge").


Information
Cacls.exe är ett litet kommandoradsprogram för hantering av behörigheter (alltså säkerhet) för mappar och filer i Windows (se ovan för nämnda versioner). Det kanske ser lite krångligt ut men man lär sig efter en stund.

För att starta programmet gör då följande:

  1. Start
  2. Kör
  3. Skriv cmd
  4. Skriv cacls /? i den svarta DOS-prompten.
Nu bör du se något i stil med en syntax beskrivning av vad man kan göra och vilka parametrar man kan skicka till programmet. Du kan också testa exemplen som anges i länken ovan så ser du lite av vad det kan göra.

Ett exempel på ett bra användningsområde är om du vill låta ett eller flera syskon kunna spela ett spel som är blockerat för deras användare på datorn. Då behöver du bara ge dem nya behörigheter på mappen till spelet.

Ett annat exempel är att när min syrra ville ha svartvita bilder av de bilder hon tagit med kameran så gjorde jag ett litet PHP-Gtk 2 program som omvandlar en grupp med färgbilder till svartvita bilder. Kruxet var bara att hennes användarkonto inte hade rätt behörigheter för den installationen av PHP Gtk 2. Jag gav henne bara nya behörigheter med ett snabbt och snärtigt kommando i cacls.exe och så var det klart.

Det är ett väldigt användbart verktyg som tål att läras av andra i denna vackra men ack så mörka värld.


PHP-Gtk 2 programmet
Om ni vill ha programmet som nämndes i artikeln får ni vänta ett tag. Tänker släppa det som öppen källkod (eng. "Open Source") när min nyplanerade sida läggs upp. Där ska det vara mycket enklare att komma åt mina bloggar och allt material jag känner för att publicera för allmänheten. Kommer nån gång framåt sommaren om allt går som det ska och om jag har tid.

Sitter förresten här i Lumpen och kodar ett program i just PHP-Gtk2 som har cacls.exe integrerat i gränssnittet - allt för att slippa kommandotolken och för enklare åtkomst.


Avdelning, Höger vänster om, Marsch

21 november, 2006

Om PHP-Gtk2

Jag har skrivit två andra artiklar om PHP-GTK2 men tycker att de inte beskriver på ett bra sätt hur det fungerar och hur man kan programmera i det som nybörjare. Inom en snar framtid så kommer alla artiklar som rör just det ämnet hamna på en separat hemsida, men det får nog vänta tills jag skaffat mig en egen server - eller ett webbhotel.

Det som kommer skilja min sajt från alla andras är att den kommer vara helt på svenska.
chao!

20 juli, 2006

Vad är PHP-GTK2

Förord
De flesta vet väl vad PHP är för nåt - ett serverbaserat skriptspråk som används för att skapa dynamiska hemsidor. Nu har det även släppts en annan variant av PHP där man kan skapa körbara program - PHP-GTK2!


Introduktion
I den här artikeln ska jag introducera er för PHP-GTK2 - en utbyggnad för programmeringsspråket PHP som implementerar GTK+ (Gimp Tool Kit) bibiloteket. Detta tillhandahåller ett Objekt Orienterat (OO) gränssnitt för de flesta klasser och funktioner inom GTK+, som underlättar skapandet av klient-side och multi-platform (Unix, Linux, Solaris, Windows etc) program.

Nu kan man alltså inte bara använda PHP till dynamiska hemsidor - man kan även skriva program som fungerar på de flesta operativsystem utan några större ändringar i koden.

Jag ska bara gå igenom några av de viktigaste punkterna som berör PHP-GTK2 så att ni kan komma igång lite enklare. Jag kommer också hålla mig till Windows platformen i den här artikeln.


Nyheter och likheter
I PHP-GTK2 kan man använda nästan alla funktioner och klasser som finns tillgängliga i PHP, så om du har en dynamisk hemsida som kontaktar exv. en MySQL databas, kan du åstadkomma ett program som gör samma sak väldigt enkelt.

Exempel
Utdrag från: Dynamisk hemsida:
$dbh = mysql_connect('localhost', 'username', 'password') or die(mysql_error());
...
mysql_close($dbh);


Utdrag från: PHP-GTK2 applikation:
$dbh = mysql_connect('localhost', 'username', 'password') or die(mysql_error());
...
mysql_close($dbh);


Det enda man måste göra är att modfiera eller justera koden så att den passar ihop med din PHP-GTK2 applikation. I slutet av artikeln tänker jag visa några exempel på hur man skriver enkla PHP-GTK2 program.

En positiv egenskap hos PHP-GTK2 är att det använder PHP 5.1 och 5.2 i skrivande stund. Det är den version av PHP som har bäst stöd för Objekt Orienterad Programmering (OOP). Man bör lära sig OOP om man vill bli en seriös programmerare :).

En dålig egenskap hos PHP-GTK2 är att koden inte går att kompilera till maskinkod (den kod som processorn kan förstå), eller också kallat EXE-filer som de flesta av er borde känna igen. Det finns i och för sig tredjeparts program som kan kompilera PHP-GTK kod, men än så länge har de inte stöd för PHP-GTK2. Detta betyder i nuläget att om ni väljer att distribuera era program, så kan vem som helst läsa källkoden och själv göra ändringar i den.

Tips!
Det finns ett program vid namn "Zend Encoder" som "kodar" om din källkod till svårförstådd text. Det kostar pengar och om ni vill veta hur det fungerar får ni vända er till källorna i slutet av artikeln.


En IDE för att skapa PHP-GTK2 program
Först ska jag tala om vad en IDE är? En IDE (Intergrated Development Environment) är ett program som typ Microsoft Visual Studio som underlättar kodning av program oerhört. En IDE brukar ha en inbyggd hjälp med funktioner, klasser, konstanter med mera, och en inbyggd dokumentation för det programmeringsspråk den är till hjälp för.

För PHP-GTK2 finns en IDE vid namn Glade (v2.12.1-rc1 i skrivande stund), men exakt hur man får den att fungera kan jag inte förklara i nuläget. Jag får uppdatera artikeln vid ett senare tillfälle och lägga till en text om hur man gör. Försök hitta information bland artikelns källor så länge.

IDE:n fungerar som så att man kan "rita" knappar och andra objekt i ett fönster som representerar den slutliga applikationen. Då skapas kod "on-the-fly" så att man själv slipper skriva kod som exv. skapar ett nytt fönster: $wnd = new GtkWindow().

En IDE brukar också ha "syntax highlightning", vilket betyder att all kod färgläggs i olika färger. T.ex. strängar blir röda, kommentarer blir orangea, funktioner blir svarta, nyckelord blir blå etc. Då är det mycket enklare att hålla ordning och reda på sin kod.


Skaffa och Installera PHP-GTK2
Om ni använder Windows och känner att ni vill testa på PHP-GTK2, kan ni navigera till följande sida gnope.org och ladda ner (i skrivande stund) "Release 1.5.1" i sektionen "Windows Downloads". Det paketet har allt ni behöver för att komma igång. I alla fall för tillfället!

Nu går jag igenom steg-för-steg hur man gör för att få PHP-GTK2 att fungera.
Jag använder Windows XP Professional SP2!
  1. Ladda ner Gnope 1.5.1 som innehåller
    • PHP 5.1
    • gtk2 (Win32) module
    • Gnope Apprunner
    • Gnope PEAR Installer
  2. Kör filen "GnopeSetup-1.5.1" som ni precis laddade ner
  3. Tryck på "Next" och "I Agree"
  4. Kryssa i alla rutor du ser i fönstret
  5. Tryck på "Next"
  6. Låt det stå "C:\PHP-GTK2" så slipper vi krångla till det, men ni kan ju alltid ändra om ni vill.
  7. Tryck på "Install" och när en ruta poppar upp och ställer frågan: "Change the environment for all users..." svarar ni "Ja".
  8. När installationen är klar klickar ni på "Next" och sedan "Finish".
Efter att ni klickat på "Finish" borde programmet "PHP-GTK2 Applications" starta upp (om ni valt det förstås). I fönstret klickar ni på "Game_Snake" för att testa ett litet Snake spel. Om det fungerar vet ni nu att er PHP-GTK2 installation fungerar.

Pröva med att trycka på någon av piltangeterna på ert tangentbord i Snake, så borde ni se att en mask börjar röra på sig. Uppgiften är att ta så många äpplen som möjligt, men det vet ni väl redan!

PHP-GTK2 fungerar nu som det ska (om det inte uppstått några problem för er), så stäng av Snake och stäng också programmet "PHP-GTK2 Applications".

Följande steg följer ni bara om ni vill testa ett simpelt 'Hello World'-program:
  1. Gå till "Mina dokument"
  2. Skapa en ny mapp vid namn "PHP-GTK2 Projekt"
  3. I den mappen skapar ni en mapp vid namn "hello"
  4. Följ nu instruktionerna för hur man skapar det 'Hello World'-program som finns i slutet av artikeln tillsammans med alla exempel.
  5. Om ni gjort allt rätt borde ni nu ha en fil vid namn "hello.phpw" i mappen "hello" som ni precis skapat.
  6. Innan ni kör ert nya program ska vi skapa en så kallad batch-fil, som vi kommer använda för att samla upp eventuella felmeddelanden. Skapa den på samma sätt som ni skapade filen "hello.phpw", fast nu döper ni den till "debug.bat" och matar in följande data i den:

    debug.bat
    @echo off
    php hello.phpw
    pause
    exit


  7. Nu kan ni testköra ert nya program genom att dubbelklicka på "debug". Om ert program spottar ut en massa felmeddelanden kommer ni kunna se dem i den svarta rutan som poppat upp.
  8. Programmet visar texten "Hello World!" om allt fungerar, så nu kan ni stänga av det genom att trycka på krysset uppe i högra hörnet.
  9. Markera nu den svarta rutan och tryck på en valfri tangent för att få den att försvinna.
Exempelfilen associerad med det vi precis gått igenom heter "hello.zip" och skapar alla filer och mappar som behövs automatiskt.


Exempelfiler
Det finns inga att ladda ner


Dokumentation
Den vetgirige kan besöka gtk.php.net och lära sig allt på egen hand. Ta också gärna del av dokumentationen, för om det är något ni undrar över om PHP-GTK2 så hittar ni det nästan garanterat där. Annars kan ni alltid avända wiki:n.

Om ni vill testa ett litet program får ni gärna använda ett i slutet av artikeln, eller så kan ni använda ett enkelt "Hello World!" program från den officiella hemsidan gtk.php.net. En modifierad version av det programmet hittar du i slutet av artikeln.


Kodexempel
Hello World:
<?php
if (!class_exists('gtk')) {
die("Please load the php-gtk2 module in your php.ini\r\n");
}
$wnd = new GtkWindow();
$wnd->set_title('Hello world applikation'); // Titel

// Koppla en signal som avslutar PHP-GTK2 när man avslutar programmet
$wnd->connect_simple('destroy', array('gtk', 'main_quit'));

// Skapa en simpel text
$lblHello = new GtkLabel('Hello World!'); // Skapa ny widget

// Lägg till texten till fönstret (objektet $wnd)
$wnd->add($lblHello);

// Visa alla så kallade widgets (manicker)
$wnd->show_all();

// Starta programmets huvudloop
Gtk::main();
?>


Kopiera koden till ett nytt textdokument (*.txt) i anteckningar eller er favoriteditor och spara det som "hello.phpw". Dubbelklicka på filen och det borde startas ett program med texten "Hello World!" inuti.

I nästa exempel ska jag visa hur ni skapar ett PHP-GTK2 program som ansluter till en MySQL databas. Observera att det bara fungerar om ni har tillgång till en installerad MySQL server på er dator, eller om ni har ett konto på exv. nåt webbhotell någonstans. Om ni har tillgång till en MySQL databas måste ni ladda in MySQL i PHP-GTK2 via ett "tillägg" (eng. extension) innan ni kan få det att fungera. Det kanske jag beskriver i en framtida artikel!
Det är ingen idé att ni testar om ni inte har lärt er MySQL än, men det kan vara lärorikt att ta del av felmeddelandena.

Ni kommer få följande felmeddelande om ni inte har konfigurerat MySQL korrekt:
Fatal error: Call to undefined function mysql_connect() in ...

MySQL Test PHP-GTK2:
<?php
if (!class_exists('gtk')) {
die("Please load the php-gtk2 module in your php.ini\r\n");
}
$wnd = new GtkWindow();
$wnd->set_title('MySQL applikation'); // Titel

// Koppla en signal som avslutar PHP-GTK2 när man avslutar programmet
$wnd->connect_simple('destroy', array('gtk', 'main_quit'));


$dbh = mysql_connect('localhost', 'username', 'password') or die('Kunde inte ansluta till MySQl :: '. mysql_error());
// Gör inget!
mysql_close($dbh);

// Hit kommer vi om vi lyckades!!!
$lblHello = new GtkLabel('Vi lyckades ansluta till en MySQL-databas!'); // Skapa ny widget

// Lägg till texten till fönstret (objektet $wnd)
$wnd->add($lblHello);

// Visa alla så kallade widgets (manicker)
$wnd->show_all();

// Starta programmets huvudloop
Gtk::main();
?>



Spara det precis som ni gjorde i förra exemplet - i formatet *.phpw.
Jämför koden för PHP-GTK med följande exempel som syftar på en dynamisk hemsida i PHP

MySQL Test - Dynamisk Hemsida:
<html>
<head></head>
<body>
<?php
$dbh = mysql_connect('localhost', 'username', 'password') or die('Kan inte ansluta till MySQL :: '. mysql_error());
echo '<p>Vi lyckades ansluta till MySQL!</p>';
mysql_close($dbh);
?>
</body>
</html>

Det skiljer inte mycket, eller hur?
mysql_connect() är bara en av många funktioner i PHP som går att använda tillsammans med PHP-GTK2. Testa till exempel funktionen date('Y-m-d H:i:s').

Alla ni som vill lära er mera om PHP-GTK2 kan gå till gtk.php.net och följa alla instruktioner och exempel.


Hjälp
Om ni behöver hjälp eller får problem vid något som rör det som beskrivits i artikeln, får ni kontakta de som är experter på området. Ställ en fråga i ett forum eller nåt!

Kontakta mig inte och be om hjälp förutom om ni känner mig. Då hjälper jag ju er såklart.


Källor
http://gtk.php.net
www.gnope.org
www.zend.com
www.php.net
http://gladewin32.sourceforge.net Information om Glade
http://skylane.t35.com/blog/download

Välkomna till bloggen

Välkomna ska ni vara kära besökare. Jag skriver om IT för att det är kul och för att jag vill dela med mig av information och kunskap. Jag försöker hålla bloggen så kategoriserad som möjligt för att ni enklare ska hitta intressanta länkar och artiklar.