Grundförutsättningarna för en online arbetsbok

Vad krävs egentligen för att skapa en arbetsbok online?

\*Du måste ha tillgång till en webserver som hanterar PHP och SQL kod. Den klassiska kombinationen är WAMP eller LAMP. Bokstäverna står för Windows/Linux, Apache, MySQL och PHP. Det är en stabil kombination som använts under årtionden. Du behöver ingen egen, egentligen. Det här kan du hyra på ett webhotell. Priserna varierar. Det du skall titta efter är att webhotellet ger stöd för PHP och dessutom gärna utskick av e-mail med egen mailserver. Så du kan skicka e-mail med resultaten till elever och föräldrar.

\*Du måste ha grundläggande kunskaper i PHP-programmering, HTML och SQL. Har du inte det redan finns det i princip hur mycket kurser online som helst. I exemplen använder jag SQL-språket PDO eftersom det är stabilast, men det finns en variant som heter MySQLi som fungerar bra mot MySQL-databaser. Undvik den äldre varianten MySQL eftersom den är föråldrad och inte får stöd av utvecklare längre.

\*Du måste ha kringprogram. Jag använder programmet Notepad++ i Windows och Komodo i Linux eller Mac för att skriva kod, men det är en smaksak. Som FTP-program fungerar Filezilla bra och det finns till alla operativsystem.

\*När du hyr in dig på ett webhotell med en databas kommer u att få uppgifter till databasen som är otroligt viktiga. Du kommer att använda dem jämt. Öppna Notepad++, Komodo eller någon annan favoritredigerare och skriv in:

```
<php
/* DATABASINSTÄLLNINGAR */
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'Dittanvändarnamn');
define('DB_PASSWORD', 'Dittlösenord');
define('DB_DATABASE', 'Databasensnamn');
define("BASE_URL", "http://dinhemsidasrotplats.se/");

/*Funktion för att ansluta till databasen */
function getDB()
{
$dbhost=DB_SERVER;
$dbuser=DB_USERNAME;
$dbpass=DB_PASSWORD;
$dbname=DB_DATABASE;
try {
$dbConnection = new PDO("mysql: host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$dbConnection->exec("set names utf8");
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbConnection;
}
catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}

}
?>

```

Spara sedan filen som config.php i samma mapp på servern som din index.php fil.

Inuti filen kan du skriva in andra inställningar längre fram. Detta är konstanter som aldrig ändras så länge du har kvar databasen på samma webbhotell.

### Skapa lärarnas datablad

Lärarna måste så klart ha en tabell. Den kan se ut så här:

```
CREATE TABLE IF NOT EXISTS `LARARE` (
  LARARE_ID` int NOT NULL PRIMARY KEY AUTO_INCREMENT ,
  INLOGGNINGSNAMN` varchar(25) NOT NULL UNIQUE,
  LOSENORD` varchar(200) NOT NULL ,
  EMAIL` varchar(100) NOT NULL,
  NAMN` varchar(100) NOT NULL,
  SKOLA` varchar(200) NOT NULL
);

```

Det är nog ganska självförklarande vad fälten betyder.

Slutligen måste eleverna finnas med i en datatabell:

```
CREATE TABLE IF NOT EXISTS `ELEVER` (
  ELEV_ID` int NOT NULL PRIMARY KEY AUTO_INCREMENT,
  LARARE_ID` int NOT NULL,
  INLOGGNINGSNAMN` varchar(25) NOT NULL UNIQUE,
  LOSENORD` varchar(200) NOT NULL ,
);

```

Detta är nog också rätt självförklarande. LARARE\_ID är identitetsnumret på den lärare som skapar eleverna. Denna koppling är viktig.

### Källor

Sida med instruktioner för uppkoppling: http://www.9lessons.info/2016/04/php-login-system-with-pdo-connection.html