TESTAPI. Deviations and Reporting

Like dokumenter
Elektronisk innlevering/electronic solution for submission:

HØGSKOLEN I SØR-TRØNDELAG

SVARFORSLAG : Eksamen i IBE102 Webutvikling Våren 2017.

Tilkobling og Triggere

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Oppgave 1 (Opprett en database og en tabell)

kpmg AS Senior revisor

Eksamen i Internetteknologi Fagkode: ITE1526

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19

Databaser kort intro. Tom Heine Nätt

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

SQL: Datatyper m.m. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Datatyper m.m. V18 1 / 12

Kryptering med Vigenère-metoden

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

Introduction to DK- CERT Vulnerability Database

Database security. Kapittel 14 Building Secure Software. Inf329, Høst 2005 Isabel Maldonado

Sikkerhet og tilgangskontroll i RDBMS-er

Applikasjonsutvikling med databaser

Kryptering med vigenere-metoden

GLOBALCOMSERVER HP 9100C DIGITAL SENDER GATEWAY ADMINISTRATOR S GUIDE 1998 AVM INFORMATIQUE (UPDATED: AUGUST 22, 2006)

Løsningsforslag Øving 7

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

ff Brukermanual ebladadmin Pro

Eksamen i Internetteknologi Fagkode: ITE1526

MySQL. Historikk. Nedlasting og installasjon

NKKN typeforslag versjon Definisjon av grunntypene

PHP for earkivarer. Trondheim 25. og 26. mars

SQL 3: Opprette tabeller, datainnsetting og utsnitt

Eksamen i Internetteknologi Fagkode: IVA1379

EMPIC MEDICAL. Etterutdanningskurs flyleger 21. april Lars (Lasse) Holm Prosjektleder Telefon: E-post:

EKSAMEN ITF Innføring i programmering Dato: Eksamenstid: 11/

Dynamic Programming Longest Common Subsequence. Class 27

Produktdokumentasjon

Eksamen i IBE102 Webutvikling Våren 2017.

som blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive,

Om verktøyet. Installering av MySQL Migration Toolkit. Installer toolkitet. Brukerveiledning til Intelligent Converters MySQL Migration Toolkit

SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM

Å bruke Java API-et til å sortere tabeller/arraylister der elementene er (referanser til) objekter

Testsituasjon Resultat Kommentar. Fungerer som det skal!

Haskell. Kjetil Ørbekk. Programvareverkstedet, 19. mars 2009

LocalBank Prosjektbeskrivelse

ORDBMS og OODBMS i praksis

HØGSKOLEN I SØR-TRØNDELAG

Hvordan føre reiseregninger i Unit4 Business World Forfatter:

1. INNHOLDSFORTEGNELSE

Slope-Intercept Formula

Trådløsnett med. Wireless network. MacOSX 10.5 Leopard. with MacOSX 10.5 Leopard

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

DecisionMaker Frequent error codes (valid from version 7.x and up)

Kortversjon av brukerdokumentasjon Solman

Dinesh Jeyabalasingam. Oppgavesett 9. Gruppeoppgave 2. Eksamenssett DEL 1. Oppgave 1.1. IF 1 Hvis $a er mindre eller lik $b stemmer

Introduksjon til programmering og programmeringsspråk. Henrik Lieng Høgskolen i Oslo og Akershus

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Hva er Derby og Java DB? Denne forelesningen. Java Database Connectivity (JDBC) Hva er Derby og Java DB?

Feilmelding Årsak Løsning

Object [] element. array. int [] tall

Agenda. Data og grenser Kontekster XSS XSS og kompliserende kontekster Injection attacks Beskyttelse OWASP

Brukerveiledning for Intelligent Converters MySQL Migration Toolkit IKA Trøndelag IKS 2012

Ulike DBMSer. Mest kjente: Oracle PostGreSQL* MySQL* SQLServer* DB2 SQLite Access (DBMS og utv. verktøy i ett) *Skal benyttes i kurset.

HØGSKOLEN I SØR-TRØNDELAG

Brukerveiledning SafeUse. English version: slide 15

SuperOffice hurtigstart guide

Byggesaksutvalget sak 36/08 - vedlegg 5

Å lage Noark 4 uttrekk selv. Thomas Sødring thomas.sodring@jbi.hio.no /

Kravspesifikasjon MetaView

SQL: Systemaspekter. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Systemaspekter V18 1 / 21

Delinnlevering 2. INF1050, våren Inge Svale Hauger Handagard (ishandag) Tor Hildrum (thildru)

Kravspesifikasjon. Forord

Forord Dette er testdokumentasjonen skrevet i forbindelse med hovedprosjekt ved Høgskolen i Oslo våren 2010.

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

Markslagsstatistikk. Retningslinjer for produksjon av faktaark for kommunene. Overflated yrka mark Innmarksbei te. (Areal i dekar) Fulldyrka mark

Oblig 5 Webutvikling. Av Thomas Gitlevaag

Java Database Connectivity (JDBC) Norvald H. Ryeng

Løsningsforslag Test 2

-it s all about quality!

Artist webside. Gruppe medlemmer Joakim Kartveit. Oppdragsgiver Tetriz Event & Management. Frode Mathiesen. Gry Anita Nilsen.

Og her følger svaret fra Wikborg og Rein (Styret i Sanderød Vel) datert (sendt per mail) 29. juni 2015

IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python

Del 1 En oversikt over C-programmering

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

SmartPass Mini User Manual BBNORGE.NO

Start Here USB *CC * *CC * USB USB

Oppgave #1 Tablespacer, Tabeller, Indexer, og Brukere

WordPress.com: Enkel bruksanvisning for blogging

Funksjonskravene er delt opp i to deler, krav til spillsekvens og generelle funksjonskrav.

Følgende endringer er gjort i denne versjonen:

Brukerveiledning Registrere utøverinformasjon i ADAMS

Høgskoleni østfold EKSAMEN

Phone Assistant. Arne-Jørgen Auberg

HVA ER XML? extensible Markup Language En standardisert måte å strukturere ulike typer data Åpent format Enkelt:

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

Trådløsnett med Windows XP. Wireless network with Windows XP

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

CMI. Brukermanual. Comendo Dronning Eufemias Gate 16 N-0191 Oslo T: F:

Se vedlagte skisse som viser hvordan det er tenkt. Dette har også grunneier bekreftet til oss vil være ok.

API: Application programming interface, eller programmeringsgrensesnitt

Utvikling fra kjernen og ut

Databearbeiding direkte i memory på LASR server nye muligheter? Trond Holmen, SAS Institute

Rapport Semesteroppgave i datasikkerhet Harald Dahle (795955) og Joakim L. Gilje (796196)

Introduksjon til programmering og programmeringsspråk

Transkript:

TESTAPI Deviations and Reporting

FORORD Dette er samling av alle testapi PHP-skripter vi måtte skrive, da vi fant ut at oppdragsgiveren ikke rakk å skaffe oss ekte API for CEMAsys. Vi måtte ha API både fordi vi ville teste applikasjonenes funksjonalitet (om avvikene blir sendt, om brukerdata hentes fra databasen, om opplasting av bildefil til server fungerer) under utvikling, og fordi vi ville demonstrere til oppdragsgiveren at applikasjonene våre virkelig fungerer under akseptansetesten. I disse skriptene har det ikke blitt tatt hensyn til sikkerhet (f. eks. kryptering av passordet) eller veldig effektiv kode. De er ikke laget for tas i bruk av oppdragsgiveren sånn som de er nå, samtidig, hvis CO2focus ønsker å bruke de skriptene delvis i sitt API som er under utvikling, får de lov til det. Meningen med testapi var kun å bistå oss med testing av funksjonalitet under utvikling, og etter på med demonstrasjon av applikasjonene i akseptansetesting. 1

Innholdsliste 1 Sender avvik til database...3 2 Henter kategorier fra database...4 3 Henter kategorier far database i flere språk...5 4 Henter ansvarlige ansatte fra databasen...6 5 Henter enheter fra databasen...7 6 Henter enheter fra databasen i flere språk...8 7 Login henter COPMANY fra databasen...9 8 Lagrer bildefilen på server... 10 2

1 SENDER AVVIK TIL DATABASEN $subject = $_REQUEST['subject']; $date = $_REQUEST['date']; $unitid = $_REQUEST['unitID']; $catid = $_REQUEST['catID']; $empid = $_REQUEST['empID']; $eventtype = $_REQUEST['eventType']; $description = $_REQUEST['description']; $reason = $_REQUEST['reason']; $photo = $_REQUEST['photo']; $sender = $_REQUEST['sender']; $senderemail = $_REQUEST['senderEmail']; $copytosender = $_REQUEST['copyToSender']; $sql = "insert into DEVIATION(comID, subject, date, unitid, catid, empid, eventtype, description, reason, photo, sender, senderemail, copy) values('$comid',"; $sql."'$subject','$date','$unitid','$catid','$empid','$eventtype','$description','$reason','$photo','$sender','$sen deremail','$copytosender')"; if(mysql_query($sql)) $feedback["feedback"]="ok"; print(json_encode($feedback)); // The message $message = "Reported deviation\r\nsubject: $subject\r\ndate: $date\r\nevent type: $eventtype\r\ndescription: $description\r\nreason: $reason"; // In case any of our lines are larger than 70 characters, we should use wordwrap() $message2 = wordwrap($message, 70, "\r\n"); // Send if($copytosender==1) mail('$senderemail', '$subject', '$message2'); else //Sending notice to responcible person that a report has been registered $sql2="select email from EMPLOYEE where empid='$empid'"; $email=mysql_query($sql2); mail('$email', '$subject', '$message2'); $feedback["feedback"]="error"; print(json_encode($feedback)); 3

2 HENTER KATEGORIER FRA DATABASEN $sql= "select catid, catname from CATEGORY where comid = '$comid'"; $category = mysql_query($sql); while($row = mysql_fetch_assoc($category)) 4

3 HENTER KATEGORIER FRA DATABASEN I FLERE SPÅRK $languageid = $_REQUEST['languageID']; if($languageid == 1) $sql= "select catid, catname from CATEGORY where comid = '$comid'"; if($languageid == 2) $sql= "select catid, catname from CATEGORY_NO where comid = '$comid'"; $category = mysql_query($sql); while($row = mysql_fetch_assoc($category)) 5

4 HENTER ANSVARLIGE ANSATTE FRA DATABASEN $sql= "select R.empID, R.unitID, R.catID, E.empName from RESPONSIBLE as R, EMPLOYEE as E where R.comID='$comID' and R.empID=E.empID"; $persons = mysql_query($sql); while($row = mysql_fetch_assoc($persons)) 6

5 HENTER ENHETER FRA DATABASEN $sql= "select unitid, unitname from UNIT where comid = '$comid'"; $units = mysql_query($sql); while($row = mysql_fetch_assoc($units)) 7

6 HENTER ENHETER FRA DATABASEN I FLERE SPRÅK $languageid = $_REQUEST['languageID']; if($languageid == 1) $sql= "select unitid, unitname from UNIT where comid = '$comid'"; if($languageid == 2) $sql= "select unitid, unitname from UNIT_NO where comid = '$comid'"; $units = mysql_query($sql); while($row = mysql_fetch_assoc($units)) 8

7 LOGIN HENTER COMPANY FRA DATABASEN $username = $_REQUEST['username']; $password = $_REQUEST['password']; $sql= "select * from COMPANY where username = '$username' and password = '$password'"; $company = mysql_query($sql); while($row = mysql_fetch_assoc($company)) 9

8 LAGRER BILDEFILEN PÅ SERVER $base = $_REQUEST["image"]; if (isset($base)) $suffix = createrandomid(); $image_name = "img_".$suffix."_".date("y-m-d-h-m-s").".jpg"; // base64 encoded utf-8 string $binary = base64_decode($base); // binary, utf-8 bytes header("content-type: bitmap; charset=utf-8"); $absolute = getcwd(); $file = fopen($absolute."/images/". $image_name, "wb"); fwrite($file, $binary); fclose($file); //chmod("http://student.iu.hio.no/~s180472/images/".$image_name, 0664); chmod($absolute."/images/". $image_name,0664); //chmod("/images/".$image_name, 0744); die($image_name); else die("no POST"); function createrandomid() $chars = "abcdefghijkmnopqrstuvwxyz0123456789?"; //srand((double) microtime() * 1000000); $i = 0; $pass = ""; while ($i <= 5) $num = rand() % 33; $i++; return $pass; $tmp = substr($chars, $num, 1); $pass = $pass. $tmp; 10