Archive for the ‘PHP’ category

Funktioner för databashantering i PHP

augusti 12th, 2010

PHPGick igenom min utvecklingshårddisk (sommarstädning) och hittade några roliga databasfunktion som jag kodade ihop för cirka ett år sedan när jag hade tråkigt. Tyvärr verkar det som att jag inte fixade till delete-funktionen, så den får ni vara utan tills att jag får tid att göra det. De andra funktionerna ska fungera, gör dem inte det så hojta till.

Funktionerna är ganska simpla, inte det bästa jag gjort, kan skrivas bättre! De klarar också bara av de absolut enklaste SQL-frågorna.

Ni får använda det här hur ni vill. Se dock till att er webbserver har stöd för PDO.

PHP-fil för att hantera databasanslutningen

<?php
$hostname = 'localhost'; // Adress till databasen
$usr = ''; //Användarnamn för databasen
$pwd = ''; //Lösenord för databasen
$database = ''; //Namnet på databasen
 
//Följande skapar själva anslutningen till databasen
try {
$db_connect = new PDO("mysql:host=$hostname;dbname=$database", $usr, $pwd);
	}
 
catch(PDOException $e)
    {
echo $e->getMessage();
    }
?>

PHP-fil med funktionerna

<?php
/*########################################*/
/*################ SELECT ###################*/
/*########################################*/
function dbSelect($table, $field, $query, $attributes, $output) {
require ("connect.php");
 
$dbQuery 	= null;
$dbType 	= null;
$attribute	= null;
 
	if($query) {
		foreach($query as $id => $value) {
			$dbQuery .= $id." = :".$id.' AND ';
		}	
		$dbQuery = " WHERE"." ".$dbQuery;
		$dbQuery = substr($dbQuery, 0, -5);
	}
	$dbQuery = trim($dbQuery);
 
	foreach($attributes as $id => $att) {
		$attribute .= " ".$id." ".$att;
	}
 
	$do = $db_connect->prepare("SELECT $field FROM $table $dbQuery $attribute");
 
	foreach($query as $id => $value) {
		switch(is_int($value)) {
			case true: 	$dType = PDO::PARAM_INT; break;
			case false:	$dType = PDO::PARAM_STR; break;
		}
		$do->bindValue(':'.$id, $value, $dbType);
		unset($value);
	}
	$do->execute();
	switch($output) {
		case "all": $result = $do->fetchAll();
	break;
		case "item": $result = $do->fetch(PDO::FETCH_OBJ);
	break;
	}
 
return $result;
}
 
/*############################################*/
/*################# INSERT ######################*/
/*############################################*/
 
function dbInsert($table, $insert) {
require ("connect.php");
 
$fields = null;
$values = null;
 
	foreach($insert as $id => $value) {
		$fields .= $id.", ";
		$values .= ":".$id.", ";
	}
 
	$fields = substr($fields, 0, -2);
	$values = substr($values, 0, -2);
 
	$do = $db_connect->prepare("INSERT INTO $table ($fields) VALUES ($values)");
	foreach($insert as $id => $value) {
		$do->bindParam(':'.$id, $value);
		unset($value);
	}	
	$do->execute();
}
 
/*#############################################*/
/*################## UPDATE #####################*/
/*############################################*/
 
function dbUpdate($table, $sets, $wheres) {
require ("connect.php");
 
	$where = null;
	$set = null;
 
	foreach($wheres as $id => $value) {
		$where .= $id.' = '."'$value'".' AND ';
	}
	$where = " WHERE"." ".$where;
	$where = substr($where, 0, -5);
 
	foreach($sets as $id => $value) {
		$set .= $id."=:".$id.", ";
	}
 
	$set = "SET ".$set;
	$set = substr($set, 0, -2)." ";
 
	$do = $db_connect->prepare("UPDATE $table $set $where");
	foreach($sets as $id => $val) {
		$do->bindParam(':'.$id, $val);
		unset($val);
	}
	$do->execute();
}

Hur man använder funktionerna

/* SELECT */
$selects = dbSelect("namn på tabellen", "fält1,fält2,fält3",			
			$where = array(
				"fältnamn" => "data",
			), 
			$attributes = array (
                               "ORDER BY" => "fältnamn desc"
			),
			$output = "item"
	  );
 
/* För att skriva ut en hämtad rad (lägg märke till att $output = "item" */
echo $selects->id;
 
/* Sätt output till "all" om du hämtar flera rader*/
$output => "all"
 
/* Om output är satt till "all" kan du göra så här för att lista det som hämtats */
foreach($selects as $id => $row) {
	echo $row["fältnamn1"];
	echo $row["fältnamn2"];
	//etc....
}
 
/* attributes används när man vill ha LIMIT eller ORDER BY */
$attributes = array (	
			"ORDER BY"=> "name DESC",
			"LIMIT" => 5,
			 ),
 
 
/*
#####################################
#####################################
#####################################
*/
 
/* INSERT */
dbInsert("tabellnamn",
		$insert = array(
			"fältnamn1" =>"värde1",
			"fältnamn2" =>"värde",
		)
	);
 
 
/*
#####################################
#####################################
#####################################
*/
 
/* UPDATE*/
dbUpdate("tabellnamn",
		$change = array(
			"fältnamn1" =>"värde1",
			"fältnamn2" =>"värde",
		)
	);

Lär dig PHP – Funktioner

augusti 6th, 2010

PHPFunktioner är ett sätt att dela upp kodstycken på, dels för att skapa en bättre struktur, men kanske framför allt för att ta ut bitar ur koden som ska användas mer än en gång. Man kan genom dela upp kod som ska återanvändas vid flera tillfällen använda include, hämta in funktioner från PHP-filer och på så vis få en bättre och mer översiktlig struktur på all kod.

Funktionerna kan även göras ”dynamiska” för att minska mängden kod du behöver skriva. Beroende på vad vi skickar till funktionen, säga åt den att göra ett av x-antal saker.

Ett väldigt simpelt exempel på detta är om vi skulle få för oss att bygga någonting som antingen multiplicerar eller adderar två tal man skriver in i ett formulär.

Exempel 16 – mini-miniräknare

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>räknare</title>
</head>
<body>
	<?php
	function _calc($cmethod, $varde_1, $varde_2) {
 
		if($cmethod == "multiply") {
			$totalt = $varde_1 * $varde_2;
 
		} elseif($cmethod = "add") {
			$totalt = $varde_1 + $varde_2;
 
		} else {
			$total	= "n/a";
 
		}
		return $totalt;
	 }
 
	if(isset($_POST['skicka'])) {
 
		$tal_1 = $_POST['tal_1'];
		$tal_2 = $_POST['tal_2'];
		$ctype = $_POST['ctype'];
 
			if (empty($tal_1) || empty ($tal_2)) {
				echo 'Du har inte fyllt i båda fälten korrekt';
 
			} elseif(is_numeric($tal_1) == false || is_numeric($tal_2) == false) {
				echo 'Du får bara ange siffror i fälten';
 
			} else {
				echo "$tal_1 * $tal_2 = " . _calc($ctype,$tal_1,$tal_2);
 
			}
 
	}
 
	?>
	<form method="post" action="ex.php">
		Skriv in ett tal<br />
		<input type="text" name="tal_1" /><br />
		<input type="radio" name="ctype" value="multiply" checked> *<br />
		<input type="radio" name="ctype" value="add"> +<br />
		Skriv in ett till tal<br />
		<input type="text" name="tal_2" /><br />
		<input type="submit" name="skicka" value="skicka" />
	</form>
</body>
</html>

Genom att använda ett formulär, en funktion och ett par variablar, får vi en ack så liten, men välfungerande miniräknare som kan hantera multiplikation och addition.

Genom att vi först via formuläret skriver in två tal samt räknesättet och trycker skicka, så laddas sidan om och sparar värdena i $tal_1- och $tal_2-variablarna. Vi kan sedan i nästa steg kontrollera om dessa två variablar innehåller någonting. Om de inte gör det skriver vi ut ett felmeddelande, om de innehåller någonting går skriptet vidare till nästa del.

I elseif kontrollerar vi om de inskickade värdena är numeriska, och det görs med PHP-funktionen is_numeric() som returnerar false om värdena är allt annat än numeriska.

Om elseif inte blir sann (värdena är numeriska) tar else-satsen över och här skickar vi värdena i variablerna till funktionen _calc() där dem sparas om till $cmethod, $varde_1 och $varde_2.

Därefter kontrollerar vi vilket räknesätt funktionen ska använda, dvs kollar vilken radio-knapp som var ikryssad, och sedan multipliceras/adderas talen och sparas i variablen $totalt som vi genom return skickar tillbaka, in i echo. Vi anropar alltså funktionen _calc() i samma veva som vi skriver ut allting.

Vi skulle mycket enkelt kunna flytta ut funktionen _calc() genom att använda include(). Detta gör vi på följande sätt.

Funktionsfil.php

<?php
	function _calc($cmethod, $varde_1, $varde_2) {
 
		if($cmethod == "multiply") {
			$totalt = $varde_1 * $varde_2;
 
		} elseif($cmethod = "add") {
			$totalt = $varde_1 + $varde_2;
 
		} else {
			$total	= "n/a";
 
		}
		return $totalt;
	 }
?>

Huvud_fil.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>räknare</title>
</head>
<body>
 
	<?php
        include("Funktionsfil.php");
	if(isset($_POST['skicka'])) {
 
		$tal_1 = $_POST['tal_1'];
		$tal_2 = $_POST['tal_2'];
		$ctype = $_POST['ctype'];
 
			if (empty($tal_1) || empty ($tal_2)) {
				echo 'Du har inte fyllt i båda fälten korrekt';
 
			} elseif(is_numeric($tal_1) == false || is_numeric($tal_2) == false) {
				echo 'Du får bara ange siffror i fälten';
 
			}else {
				echo "$tal_1 * $tal_2 = " . _calc($ctype,$tal_1,$tal_2);
 
			}
 
	}
 
	?>
	<form method="post" action="ex.php">
		Skriv in ett tal<br />
		<input type="text" name="tal_1" /><br />
		<input type="radio" name="ctype" value="multiply" checked> *<br />
		<input type="radio" name="ctype" value="add"> +<br />
		Skriv in ett till tal<br />
		<input type="text" name="tal_2" /><br />
		<input type="submit" name="skicka" value="skicka" />
	</form>
</body>
</html>

Vi har nu placerat funktionen _calc() i en annan fil som vi genom PHP-funktionen include() anropar. På så sätt kan vi använda funktionen _calc () fler gånger i andra script. Att programmera med funktioner är att rekommendera vid större applikationer och vid tillfällen då kod kommer upprepas.

Lär dig PHP 3 – Formulär

augusti 5th, 2010

PHPDet har blivit dags att för första gången blanda in lite HTML i PHP-programmeringen. Att lära sig hur man hanterar formulär med PHP är ett måste! Via formulärer kan vi bland annat skapa login-funktioner, gästböcker, forum och mycket mycket mer. Ni bör dock ha det i åtanke att det jag visar är väldigt simpel formulärhantering och jag blandar inte in säkerhet och filtrering, vilket är otroligt viktigt när man hanterar formulär som ligger på publika webbplatser och som andra kommer använda.

POST & GET

Det finns två metoder för att skicka data via formulär, POST eller GET. Den absolut enklaste förklaringen av POST och GET är att om man använder GET-metoden i formulär kommer alla parametrar visas i adressfältet i webbläsaren, vilket inte görs med POST. Läs mer om just POST och GET här.


Exemplet nedan visar ett väldigt enkelt formulär med lite PHP för att hantera datan som skickas.

Exempel 13 – Skicka värden i formulär

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Din sida</title>
</head>
<body>
<?php
if (isset($_POST['skicka'])) {
  echo $_POST['fornamn'];
  echo "<br />";
  echo $_POST['mellannamn'];
  echo "<br />";
  echo $_POST['efternamn'];
}
?>
<form method="post" action="dinfil.php">
      Ditt förnamn<br />
      <input type="text" name="fornamn" /><br />
      Ditt mellannamn <br />
      <input type="text" name="mellannamn" /><br />
      Ditt efternamn<br />
      <input type="text" name="efternamn" /><br /><br />
      <input type="submit" name="skicka" value="skicka" />
   </form>
   </body>
</html>

När man fyllt i dessa tre fält och tryckt på skicka, kommer datan (det man fyllt i formulären) skickas med när sidan laddas om. Glöm inte att ändra action till rätt filnamn, alltså namnet på den fil du sparar denna koden i. Vi hämtar sedan datan genom att använda $_POST['variabel'] och skriver ut dem via echo. Som ni också kanske har märkt så har en ny funktion hittat in i vårt exempel. Denna gången är det isset( ).

Vi använder isset( ) i en if-sats för att kontrollera om $_POST['skicka'] är satt / skickad. Om den är det så skriver vi ut alla variablar på varsin rad. Jag vill också uppmärksamma er på att man kan spara dessa $_POST i egna variablar på följande sätt för lättare hantering.

$fornamn = $_POST['fornamn'];

Jag vill också påpeka att ur ett säkerhetsperspektiv är det otroligt viktigt att verkligen kontrollera datan som skickas med POST och GET. Man kan väldigt enkelt manipulera dessa. Om POST- eller GET-variabler kommer ha en databaspåverkan (sökning, nedsparning etc) är det extremt viktigt att hålla koll på innehållet i POST och GET.

Mer om detta kommer i en senare ”Lär dig PHP”-del.

Lär dig PHP 2 – if, else, while och foreach

augusti 3rd, 2010

PHPI programmering hittar vi alltid if-, else-, while- eller foreach-satser. Med hjälp av dessa kan vi kontrollera om ett eller flera värden är sanna eller falska, skriva ut allt ur en array, skriva ut något x antal gånger och mycket mycket mer. Det är tack vare dessa vi kan programmera som vi gör idag. I detta avsnittet kommer jag gå igenom if, else, while och foreach.

if

Med en if-sats kan vi göra så otroligt många roliga saker. Det är en av de viktigaste sakerna man måste lära sig när man programmerar. Ett exempel på hur en if-sats kan se ut finner ni nedan.

Exempel 9 – if

<?php
$tal1 = 10;
$tal2 = 10;
 
if ($tal1 == $tal2){
 
	echo "$tal1 och $tal2 är samma värden";
}
?>

I exemplet ovan kontrollerar vi med hjälp av en if-sats om $tal1 och $tal2 har samma värden, vilket dem har i detta fallet. Resultatet blir ”10 och 10 är samma värden”. Som ni också kan se så använder vi Comparasin operators när vi kontrollerar variablerna.


else

Med en else-sats kan vi faktiskt bygga vidare på exempel 9 där $tal1 och $tal2 har samma värde, men om dem inte hade haft det hade ingenting skrivits ut. Så i det kommande exemplet bygger vi vidare på exempel 9 och skriver ut ett felmeddelande om $tal1 och $tal2 inte har samma värde.

Exempel 10 – else

<?php
$tal1 = 10;
$tal2 = 5;
 
if ($tal1 == $tal2){
 
	echo "$tal1 och $tal2 är samma värden";
}
else {
       echo "$tal1 och $tal2 är inte samma värden";
}
?>

Utskriften blir ”10 och 5 är inte samma värden”. Detta är på grund av att $tal1 (10) och $tal2 (5) inte är samma, vilket vi kontrollerade med hjälp av if-satsen. Om if-satsen inte blir sann, vilket i den inte blir i det här fallet, aktiveras else-satsen och skriver ut meddelandet.

while

En while-sats är en väldigt användbar loop-funktion. Man använder while när man vill att något ska göras i koden så länge while-satsen är sann, dvs så länge det man skriver inom () är sant. Ett exempel på hur while kan användas finner ni nedan.

Exempel 11 – while

<?php
 
$i = 1;
while ($i <= 10) {
    echo $i++;  
} 
?>

Resultatet av detta blir att ”12345678910” skrivs ut. Vad som händer är att loopen hela tiden skriver ut $i samt plusar på $i med 1 så länge det som står innanför ( ) är sant.

foreach

Foreach kan exempelvis användas när man arbetar med arrayer. En foreach-sats kan loopa ut innehållet i en array, en och en tills det inte finns någonting mer att loopa ut. Om vi tar exempel 5 från när vi gick igenom arrayer, kunde vi inte skriva ut innehållet i en array eftersom vi inte visste hur. I exempel nedan kommer jag visa dig hur.

Exempel 12 – foreach

<?php
 
$arr = array(1, 2, 3, 4);
foreach ($arr as $varde) {
    $varde = $varde * 2;
	echo $varde;
}
 
?>

Vad som händer här är att genom en loop tas det första värdet ifrån $arr och placerar det i variablen $varde. Därefter multipliceras $varde med 2 och skriver ut resultatet av multipliceringen. Därefter börjar loopen om igen och den läser in det andra värdet i arrayen och multiplicerar det med 2 och skriver ut resultatet. I ren text blir det 1*2, 2*2, 3*2, 4*2 och resultatet blir ”2468”.

Nästa del kommer handla om formulär

”Lär dig PHP” återuppstår

augusti 3rd, 2010

PHPFör över två år sedan påbörjade jag en PHP-guide där syftet var att på ett väldigt enkelt sätt gå igenom grunderna i PHP. Det blev tyvärr bara en del på grund av att jag prioriterade andra saker. Men idag, 857 dagar senare, återupptar jag guiden. Anledningen är att det helt enkelt har varit efterfrågat. Planen ser dock lite annorlunda ut idag än vad den gjorde för två år sedan.

Jag kommer skriva mindre inlägg, men med jämnare mellanrum. Dels för att det inte blir så himla mycket att läsa på en gång, men också för att jag ska hinna. Inläggen om PHP tar i snitt längre tid än ett vanligt blogginlägg.

Mitt mål med guiden är att minst 1 person ska fastna för PHP och fortsätta med det.

Lär dig PHP 2 – if, else, while och foreach

3 tips för dig som felsöker PHP-kod

oktober 20th, 2009

Alla programmerare fastnar. Koden både känns och ser rätt ut, men trots detta så spottar sidan tillbaka massa errors, eller så fungerar koden inte som tänkt. Vi har allaphp varit där och gör med jämna mellanrum återbesök.

Kommer du ingen vart efter många omgånger av att ha stirrat sönder ögonen och har varit nära på att ge upp? Då är det dags att gå vidare. Nedan har jag listat vad jag tycker är de bästa sätten att komma vidare. Lägg märke till ordningen då även den är viktig!

GOOGLE
Google är fungerar i 99,99% av fallen. Knepet är att formulera sökningen på korrekt sätt. Google Om skriptet spottar tillbaka en felkod kan du exempel klistra in den i sökfältet. Om du vill lära dig hur man laddar upp en fil kan du exempelvis skriva ”PHP file upload” så får du hur många exempel som helst. Google ska ALLTID användas i första hand!
php.net
PHP.NET
PHP-programmerarens bibel är PHP.NET! Här finns allt du behöver veta om funktioner och hur man använder dem. Allting är väldigt bra förklarat och i 9 fall av 10 finns det exempel att utgå ifrån.

BESÖK PHP.NET

FORUMForum
Om varken Google eller PHP.NET hjälper så har du förmodligen använt dem fel! Om du fortfarande hävdar att du inte kan hitta en lösning så finns det ett sista steg som även det är effektivt, nämligen forum. Här får du möjligheten att prata med andra programmerare och presentera ditt dilemma. Var dock noga med att följa forumregler och sök alltid i forumet först innan du ställer din fråga! Om inget annat är en intern forumsökning ett bevis på att du faktiskt själv har försökt lösa problemet.

Det finns ett flertal svenska forum som du kan använda dig av.. exempelvis:

Webforum
PHPportalen
PHPSidan

För många kan dessa tre tips verka uppenbara och kanske till och med lite för ”basic”. Nej… jag ser samma problem nästan varje dag. Folk tar hellre genvägar eller försöker få andra att lösa problemet åt en. Om man programmerar i PHP och vill fotsätta göra det måste man också lära sig att lösa problemet själv. När jag själv började programmera skrev jag alltid mina problem i forum… och det var fel. Det som jag skriver nu önskar jag att någon hade berättat det för mig då.

Webbläsarspel på G

oktober 19th, 2009

Vid sidan om mitt ordinarie arbete har jag till och från arbetat med ett webbläsarspel och det har varit förbannat kul! Det hela började för lite drygt två år sedan då jag började på version 1 som jag sedan bestämde mig för att skrota. Det gick ett tag och jag började på version 2. Jag blev klar till cirka 70%… men andra saker i livet tog överhand och projektet blev vilande. När jag efter några månader tog upp arbetet igen så insåg jag att koden bakom kunde göras mycket bättre.

För cirka två veckor sedan påbörjade jag version 3 som just nu går i rask takt framåt. Jag har till och med börjat fundera på designen, vilket är ett tecken att det börjar närma sig testning. Jag har som mål att ha version 3 spelklar innan årsskiftet.

Anledningen till att jag skriver det här inlägget är inte för att avslöja vad spelet går ut på… utan snarare en efterfrågan efter betatestare. Jag vill redan nu börja bjuda in betatestare som kan gå in och spela skiten ur spelet, hitta alla buggar och föreslå förändringar.

Om ni är intresserade är det bara att skriva en kommentar med er korrekta e-postadress (skriv nu inte e-postadressen som kommentar, utan ange den i fältet ”E-post”). Jag kommer kontakta er när det börjar bli aktuellt att släppa in er.

5 program för PHP-programmerare

oktober 14th, 2009

Det blir inte mycket programmerande för mig nu för tiden. Till viss del saknar jag det, men samtidigt så gör jag så många andra roliga saker så det gör inget. Jag försöker hålla kunskapen vid liv och gör lite skript då och då.

Hur som helst så vill jag tipsa om 5 program som jag inte kan klara mig utan när jag programmerar

1. Notepad++
Detta är hela min värld när jag programmerar. Programmet är konfigurerat som jag vill ha det vad gäller teckenstorlek, färger och syntax highlighter.
notepad++
[BESÖK HEMSIDA]

2. Navicat
I Navicat får jag en otroligt bra översikt på hela databasen och kan göra det mesta. Oerhört smidigt… men kostar en slant.
navicat
[BESÖK HEMSIDA]

3. Total Commander
I TotalCMD sköter jag all filhantering när saker ska skickas/hämtas mellan min utvecklingsdator och servern. TotalCMD är ”old school”… men enligt mig bäst!
totalcmd
[BESÖK HEMSIDA]

4. WAMP
Varför krångla till det när du utvecklar? WAMP står för Windows, Apache, PHP, MySQL och är väldigt smidigt när man programmerar i sluten miljö och behöver testa det man bygger.
wamp
[BESÖK HEMSIDA]

5. Spotify
De senaste månaderna har jag använt spotify… innan var det Winamp. Huvudsaken är att du har bra musik när du programmerar. Det går inte annars!
spotify
[BESÖK HEMSIDA]

Översättare till emoticons

september 30th, 2008

För er som inte vet vad en emoticon är så kan de se ut så här —> :)

För ett par dagar sedan jobbade jag en hel del med arrayer i PHP och fick undertiden en liten snilleblixt, eller en mindre stroke kanske? Hur som helst så fixade jag en liten mini klass som låter användaren översätta tecken till emoticons.

Vanligtvis ser man denna funktionalitet i forum, gästböcker, bloggar, chattar etc etc… utan att man kanske egentligen har funderat på hur den kan översätta : ) : D : P till små bilder.

Det jag har byggt består av en mapp med ikoner, en klass och en php-fil som styr klassen. Att använda klasser till detta behövs egentligen inte, men jag gjorde det i alla fall.

Ikonerna kommer ifrån den fantastiska samling man kan hitta på famfamfam.com

Ladda hem
Emoticons.zip

Min dag

juli 22nd, 2008

Snart är dagen över… lika bra, allting har varit så bråkigt idag. Det hela började med att jag skulle in till banken och skaffa en ny dosa (efter gårdagens experiment). När det väl är min tur så frågor kassörskan om jag har min gamla dosa med mig… nej säger jag och får betala 255kr.

Sen när jag väl betalat denna summan så kom hon på mig att jag inte är kund hos Deras bank i Halmstad utan jag är kund åt Deras bank i Kristianstad…. så hon kunde inte ordna en ny till mig. Jag tyckte det lät väldigt konstigt, så jag ringde till min bank i Kristianstad och de sa mycket tydligt att det var inga som helst problem för dem att ordna en ny dosa till mig.. bara det att dem måste faxa över avtalet.

Väl inne på banken igen lyckades jag övertala en ny kassörska… allting gick bra till jag sa att jag vill ha mina privata konton Och mitt företagskonto kopplat till denna dosa… precis som jag hade innan. Detta tog 20 min av mitt liv…. dosan blev aldrig kopplad till mitt företagskonto eftersom de inte viste hur man gjorde det.

Jag gick hem.. testade min nya dosa, fick tillgång till alla mina konton… bra det i alla fall. Dagen fortsatte sedan med att jag ville skapa en liten AJAX funktion som anropade ett PHP script och detta scriptet returnerade sedan ett värde som skrevs ut på html sidan.

Allting fungerar som det ska i FireFox.. inte inte i IE eller Safari…. jag är nog inne på min 6:e timme nu med detta.

ÄR DU DUKTIG PÅ AJAX???
Hjälp mig då i detta forumet