PHP-perusteet. Jouni Ikonen - Jouni.Ikonen lut.fi
|
|
- Jaakko Nurmi
- 10 vuotta sitten
- Katselukertoja:
Transkriptio
1 CT30A WWW-sovellukset PHP-perusteet Jouni Ikonen - Jouni.Ikonen lut.fi Kalvot Arto Hämäläisen kalvojen pohjalta 1 Jouni Ikonen
2 Sisältö PHP Evästeiden käyttö HTTP-otsikkotietojen käsittely ja lähetys Istuntotietojen käsittely Käyttäjien tunnistaminen Tietoturvasta Jouni Ikonen 2
3 Evästeet (cookies) HTTP on tilaton protokolla, ja sen perustoiminnallisuudella ei voida yhdistää peräkkäisiä sivulatauksia toisiinsa Evästeen (Cookie) avulla palvelin voi lähettää selaimelle tiedon, jonka avulla se voidaan tunnistaa myöhemmillä latauskerroilla Selain lähettää palvelimen lähettämän evästeen muuttamattomana takaisin palvelimelle mikäli evästeiden käyttö on estetty selaimen asetuksissa, niitä ei luonnollisesti voi käyttää evästeelle voidaan asettaa voimassaoloaika, ja lisäksi voidaan määritellä, poistetaanko se selainohjelmaa suljettaessa käyttäjä voi poistaa evästeen selainohjelmasta, ja palvelinpäästä voidaan myös pyytää poistamaan eväste esim. asettamalla sen päättymisaika menneisyyteen Jouni Ikonen 3
4 Evästeet (Cookies) Evästeet lähetetään HTTP-otsikoissa ennen varsinaista dokumenttia Evästeiden lähetys voidaan tehdä PHP:n avulla, kutsumalla evästeen lähettämisfunktiota heti dokumentin alussa, ennen sivun varsinaista sisältöä funktion paluuarvo kertoo, onnistuiko tiedot lähettää vai oliko sivun sisältöä jo lähetetty (ei kerro, hyväksyikö käyttäjä evästeen) <?php /* Cookie asetettava ennen tiedoston sisällön tulostamista */ $value = "Cookien sisältö"; $paluuarvo = setcookie("testicookie", $value, time()+3600);?> <!DOCTYPE html Jouni Ikonen 4
5 Evästeet (Cookies), PHP PHP:ssä evästeiden asetukseen ja lähettämiseen selaimelle on 2 funktiota: setcookie( string nimi [, string arvo [, int voimassaoloaika [, string polku [, string toimialue [, bool suojattu[, bool $httponly ] ]]]]] ) setrawcookie() on vastaava ilman sisällön URLkoodausta nimi kuvaus esimerkki nimi evästeen nimi (pakollinen) käytetään cookie-taulukossa avaimena arvo selaimelle tallennettava tieto luettaessa: $_COOKIE['nimi'] voimassaoloaika miten kauan voimassa time()+60*60*24 (vuorokausi) polku missä luettavissa /athamala/ luettavissa vain palvelimen hakemistossa /athamala/ toimialue suojattu käytettävän toimialueen (domainin) nimi tarvitaanko suojattu HTTPSyhteys evästeen siirtoon 0 tai 1 (false tai true) Jouni Ikonen 5
6 Evästeet (Cookies), PHP Selaimelta lähetetyt, aikaisemmilla selauskerroilla tallennetut evästeet ovat automaattisesti käytössä $_COOKIE[] -taulukossa Mikäli evästettä ei ole asetettu ja lähetetty aikaisemmin selaimelle, tai se on vanhentunut, $_COOKIE[]-taulukon kyseinen kenttä on tyhjä jos ei muita evästeitä ole, $_COOKIE[] on tyhjä if (isset($_cookie['testicookie'])) { echo "<p>eväste löytyi, tulostetaan sen sisältö: \"".$_COOKIE['TestiCookie']."\"</p>"; } else { echo "<p>evästettä ei asetettu</p>"; } Jouni Ikonen 6
7 Evästeet (Cookies), PHP Evästeiden poisto tapahtuu myös setcookie()- funktiolla, nimi ja muut käytetyt argumentit yksilöivät evästeen toinen kenttä (cookien sisältö) asetetaan tyhjäksi ("") tai epätodeksi (FALSE) totuusarvon (FALSE) avulla tapahtuvan poiston takia varsinaisena evästeen arvona ei tulisi käyttää totuusarvoa vaihtoehtoinen tapa on asettaa 3. argumentti (voimassaoloaika) menneisyyteen, esim. time() Jouni Ikonen 7
8 Evästeet (Cookies), PHP evästeen asetus: <?php /* Cookie asetettava ennen tiedoston sisältöä */ $value = "Selaimen yksilöivä ja tunnistava merkkijono"; $paluuarvo = setcookie("testicookie", $value, time()+3600);?> evästeen käyttö: if (isset($_cookie['testicookie']) ) { echo "<p>cookie löytyi, tulostetaan sen sisältö: \"".$_COOKIE['TestiCookie']."\" </p>"; } Jouni Ikonen 8
9 HTTP-otsikkotietojen lähetys PHP:llä PHP:n avulla voidaan lisätä ja lähettää palvelimen ja selainohjelman välissä käytettävän HTTP-siirtoprotokollan otsikkokenttiä Otsikkotiedot lisätään header(string string [, bool replace [, int http_response_code]] )-funktiolla oletusarvoisesti korvataan edellinen samanniminen kenttä, mutta voidaan myös lisätä replace-argumentin arvoksi false, mikä lisää toisen samannimisen otsikon, http_response_code määrittelee HTTP-vastauksen tila-arvon headers_sent() -funktiolla voidaan tarkistaa, onko otsikot jo lähetetty selaimelle, vai voidaanko vielä lähettää lisää otsikoita palauttaa TRUE, jos otsikot jo lähetetty, ja FALSE, jos otsikoita voidaan vielä lisätä ja vaihtaa Otsikkokenttien avulla voidaan mm. määrittää dokumentin muoto ohjata uudelle sivulle ilmoittaa virhe sivua ladatessa pyytää käyttäjäntunnistusta jne Jouni Ikonen 9
10 HTTP-otsikkotiedot, uudelleenohjaus PHP:n avulla voidaan selaimen pyyntö ohjata uudelle sivulle Tapahtuu header("location: osoite") -funktiolla HTTP/1.1 -protokollamääritys vaatii absoluuttisen osoitteen ohjausarvona suhteellisen sijaan, mutta selaimet ymmärtävät kyllä suhteellisen Varmempaa siis kuitenkin käyttää absoluuttista osoitetta, joka voidaan muodostaa dynaamisesti esim. <?php $palvelin = $_SERVER['HTTP_HOST']; $hakemisto = rtrim(dirname($_server["php_self"]), '/\\'); $sivu = 'header2.php'; if (!headers_sent()) { header("location: exit; } else { echo "virhe, otsikot jo lähetetty"; }?> Jouni Ikonen 10
11 HTTP-otsikkotiedot, dokumenttityypin määrittely esim. lataapdf.php?file=tiedosto <?php /* asetetaan otsikkokentillä tyypiksi pdf ja määritellään tiedosto ladattavaksi liitetiedostoksi, poistetaan mahdolliset hakemistot tiedostonimestä, ettei pääse lukemaan ihan mitä tahansa tiedostoa */ if (!empty($_get['file'])) { $luettavatiedosto = basename($_get['file']); $luettavatiedosto.= ".pdf"; header('content-type: application/pdf'); header('content-disposition: attachment; filename='.$luettavatiedosto); readfile($luettavatiedosto); } else { echo "<form method=\"get\">tiedoston nimi (esim. \"luentox\"): <input type=\"text\" name=\"file\" /></form>"; }?> Jouni Ikonen 11
12 HTTP-otsikkotiedot, virhekäsittelijä Mikäli halutaan määritellä palvelin palauttamaan virhetapauksessa (esim. tiedostoa ei löydy) erilainen virhesivu, voidaan se tehdä määrittelemällä virheenkäsittelijäksi php-sivu, jossa lähetetään otsikkotietona virhetieto ja sen jälkeen näytetään haluttu virheilmoitus virhe.php: <?php if (!headers_sent()) { header("http/ Not Found"); }?> <!DOCTYPE Jouni Ikonen 12
13 Istuntotietojen käsittely Istuntotietojen avulla voidaan tallentaa tietoa käsiteltäväksi myöhemmissä php-sivuissa, joita samalla kerralla haetaan Sivuilla vierailevalle annetaan yksilöllinen tunniste, joka tallennetaan evästeeksi tai välitetään otsikkotiedoissa mukana Mikäli php-esikäsittelijän asetuksissa (ei siis php-koodissa) on määritelty istunnon automaattinen aloitus (session.auto_start = 1), tai skriptissä kutsutaan funktiota session_start(), mahdollistetaan muuttujien tallennus istuntotietoihin tieto istunnosta luodaan, kun ensimmäinen muuttuja rekisteröidään istuntotietoihin (seuraava kalvo) huom. mikäli automaattinen aloitus on käytössä, ei voida olioita tallentaa istuntotietoihin, koska luokkamääritykset tulee ladata ennen istunnon aloitusta olion uudelleenluomisen takia Jouni Ikonen 13
14 Istuntotietojen käsittely Tietoja mahdollista tallentaa istunnon ajaksi $_SESSION[]-taulukkoon (suositeltava) tai session_register() -funktiolla (vanhentunut) session_unregister(), session_is_registered() -funktioilla poistetaan tai tarkistetaan muuttuja istuntotiedoista $_SESSION[]-taulukon kenttiä voidaan käsitellä samalla tavoin kuin muitakin muuttujia esim. unset($_session['laskuri']); isset($_session['laskuri']); session_destroy(); Jouni Ikonen 14
15 Istuntotietojen käsittely <?php session_start(); <html> // The session_start() function must appear BEFORE the if(isset($_session['views'])) $_SESSION['views']=$_SESSION['views']+1; else $_SESSION['views']=1; // if $SESSION['views'] does not exist create it echo "Views=". $_SESSION['views'];?> More: Jouni Ikonen 15
16 Istuntotietojen välitys Istuntotietojen tunniste voidaan välittää eri kutsujen välillä evästeiden avulla (voimassaolo siihen asti, kunnes selain suljetaan), oletusevästeenä $_COOKIE['PHPSESSID'] URL-osoitteen parametrina Istuntotiedoista välitetään selaimelle vain istuntotunniste, muut istuntokohtaiset tiedot $_SESSION -taulukossa pidetään vain palvelimella Evästeiden käyttöä suositellaan istuntotunnisteen välitykseen, mutta PHP tarjoaa vaihtoehtoiseksi myös URL-osoitteeseen koodauksen URL-osoitteessa näkyminen vaatii use_trans_sid -asetusarvon päälle laittamista php-esikäsittelijän asetuksista (nykyisissä versioissa poissa käytöstä oletuksena) voi aiheuttaa ongelmia, mikäli istuntotietoja tallennetaan kirjanmerkkeihin tai julkisten tietokoneiden välimuisteihin Jouni Ikonen 16
17 HTTP-käyttäjäntunnistus PHP:llä Mikäli PHP:tä ajetaan Apache-palvelimen moduulina, voidaan PHP:ssä käyttää HTTP-käyttäjäntunnistuslaatikkoa Käyttäjäntunnistus voi olla Basic- (käyttäjän tunnus ja salasana lähetetään selaimelta palvelimelle) tai Digest-tyyppiä (salasanalla muodostetaan vastaus satunnaiseen haasteeseen, eikä sitä lähetetä verkon yli) Käyttäjän syöttämät tiedot tallentuvat muuttujiin $_SERVER['PHP_AUTH_USER'] sisältää käyttäjätunnuksen $_SERVER['PHP_AUTH_PW'] sisältää salasanan (ei Digestvaihtoehdossa) $_SERVER['PHP_AUTH_DIGEST'] sisältää Digestautentikoinnissa saadun vastauksen Näitä muuttujia voidaan sitten vertailla sallittuihin tunnuksiin ja niiden salasanoihin Jouni Ikonen 17
18 HTTP-käyttäjätunnistus PHP:llä <?php if (!isset($_server['php_auth_user'])) { header('www-authenticate: Basic realm="testisivu"'); header('http/ Unauthorized'); /* lähetetään 401-tilaviesti, joka tarkoittaa käyttäjäntunnistuksen vaatimista */ echo 'Et ole tunnistautunut'; exit; } else { // tässä tilanteessa pitää tarkistaa, että alla olevilla tunnuksilla on oikeutta jotain tehdä! echo "<p>olet siis \"{$_SERVER['PHP_AUTH_USER']}\", ja "; echo "salasanasi on \"{$_SERVER['PHP_AUTH_PW']}\"</p>"; }?> More: Jouni Ikonen 18
19 Tietoturva Riippuen palvelimen asetuksista, PHP:llä voidaan ajaa hyvinkin vapaasti erilaisia toimintoja pääsy palvelimen tiedostoihin yhteydet palvelimelta muihin koneisiin järjestelmäkomentojen ajo palvelimella Sen takia tuleekin tietoturvaa miettiä PHP-sivuja luodessa erittäin tarkkaan Tietoturva muodostuu sekä palvelimen oikeanlaisesta konfiguroinnista että PHP-skriptien tietoturvasta Jouni Ikonen 19
20 Tietoturva Kaksi tärkeää perusasiaa: Palvelimen konfiguroinnissa PHP-moduulille annetavaan vain tarpeelliset oikeudet Tarkista skriptissä kaikki syötteet, jotka tulevat käyttäjältä tai muualta varmistamattomasta lähteestä WWW-palvelimen hakemistossa olevalla tiedostolla on URL-osoite, jonka avulla voidaan kutsua suoraan (vaikkei tarkoitus olekaan, vaan esim. php:n include():lla), mikäli ei ole palvelimesta estetty (tarkkana nimeämisten ja liitettävien tiedostojen hakemiston valinnan kanssa) Tarkistamattomien syötteiden ja väärien oikeuksien avulla voi saada pahaa jälkeä tiedostojärjestelmässä ja tietokantayhteyksissä Käydään tietokantakyselyiden tietoturvasta tarkemmin ensi kerralla, kun käsitellään tietokantojen käyttöä PHP:llä yleensäkin Jouni Ikonen 20
21 Tietoturva, lomakkeen käsittely PHP-skriptissä ei voi olettaa, että lomakkeen tietoja käsitellessä asiakaspuolen tarkistukset olisivat tarpeeksi kattavat javascript-tarkistukset voi ohittaa kytkemällä javascriptin pois selaimen asetuksista lomakkeeseen määritellyt arvot voi ilkeämielinen ohittaa tekemällä uuden lomakkeen tai vaikka kutsumalla skriptiä muulla tavoin, esim. telnet-yhteyden kautta tai omalla ohjelmalla <form action="/process.php" method="post"> <select name="color"> <option value="red">red</option> <option value="green">green</option> <option value="blue">blue</option> </select> <input type="submit" /> </form> <form action=" method="post"> <input type="text" name="color" /> <input type="submit" /> </form> Jouni Ikonen 21
22 Tietoturva, syötteen käsittely <?php /* käyttäjän määrittelemien tiedostojen lukeminen onnistuu kätevästi samasta hakemistosta, mutta onko turvallista? */ $tiedosto = $_GET['tiedosto']; $hakemisto = './' // nykyinen hakemisto $hakemistotiedosto = $hakemisto.$tiedosto; $jep = readfile($hakemistotiedosto);?> Jouni Ikonen 22
23 Tietoturva <?php // remove a file from the user's home directory $username = $_POST['user_submitted_name']; $homedir = "/home/$username"; $file_to_delete = "$userfile"; unlink ("$homedir/$userfile"); echo "$file_to_delete has been deleted!";?> <?php // removes a file from anywhere on the hard drive that // the PHP user has access to. If PHP has root access: $username = "../etc/"; $homedir = "/home/../etc/"; $file_to_delete = "passwd"; unlink ("/home/../etc/passwd"); echo "/home/../etc/passwd has been deleted!";?> Jouni Ikonen 23
24 Tietoturva <?php // removes a file from the hard drive that // the PHP user has access to. $username = $_SERVER['REMOTE_USER']; // tunnistettu käyttäjä // käyttäjän kotihakemiston muodostus $homedir = "/home/$username"; $file_to_delete = basename("$userfile"); // poistaa polut unlink ($homedir/$file_to_delete); $fp = fopen("/home/logging/filedelete.log","+a"); // kirjoittaa lokiin poiston tiedot $logstring = "$username $homedir $file_to_delete"; fwrite ($fp, $logstring); fclose($fp); echo "$file_to_delete has been deleted!";?> Jouni Ikonen 24
25 Tietoturva, "cross-site scripting" XSS Cross-site scripting -termillä (XSS) tarkoitetaan hyökkäyksiä, joiden avulla käyttäjän luottamalla sivulla näytetäänkin toisen sivun sisältöä vähän edelliseen liittyvä, koska usein näytettävä data on määritelty lomakkeen syötteen avulla erityinen uhka käyttäjien luottamilla sivuilla, joilla paljon käyttäjien syöttämän tekstin näyttämistä, esim. keskustelupalstat XSS-uhkia voidaan välttää varmistamalla ulkoisesta lähteestä tulevan datan oikeellisuus käyttämällä PHP:n sisäänrakennettuja funktioita muokkaamaan syötteistä oikeellisia muotoja, esim. htmlentities() tekee html:n käyttämistä merkeistä html - erityismerkittyjä, esim. "< >" "< >" strip_tags() poistaa html- ja php-tagit merkkijonosta utf8_decode() koodaa utf8-merkistöön koodatun ISO merkistön mukaisen tekstin ISO merkistöön suhtautumalla kriittisesti kaikkeen dataan, kunnes ne on varmasti korjattu Jouni Ikonen 25
26 XSS, esimerkki PHP-skripti (esim. vieraskirja) <form> <input type="text" name="message"> <br /> <input type="submit"> </form> <?php if (isset($_get['message'])) { $fp = fopen('./messages.txt', 'a'); fwrite($fp, "{$_GET['message']}<br />"); fclose($fp); } readfile('./messages.txt');?> Mitä jos käyttäjä syöttääkin viestiksi <script> document.location = ' cookies=' + document.cookie </script>? OK, hyvin konfiguroiduilla nykyisellä versiolla ei välttämättä mitään, koska syötteessä käsitellään jo tietyt merkit automaattisesti, mutta antaa aihetta www-sovelluskehittäjänkin miettiä tiettyjä tietoturva-asioita Jouni Ikonen 26
27 Tietoturva, Include-sivujen käyttö tietokantaskripti.php <?php /* pistetään asetukset sopivasti tiedostoon, josta ne luetaan mukavasti eri skripteistä */ include('db.inc') db.inc: <?php $mysql_host = "localhost"; $mysql_user = "jee"; $mysql_pass = "joo"; // tehdään tietokannalle jotain?> Mikäli sisällytettävä tiedosto db.inc on nimetty esimerkin kaltaisesti ja pistetty WWWpalvelimen sivuhakemistoon, eikä palvelimella ei ole.inc -tiedostoja pistetty käsittelyyn PHP-esikäsittelijän kautta, sisällytettävän tiedoston nimen arvaamalla voidaan selvittää arkaluontoisia asioita, esim. käyttäjätunnuksia - toisaalta myös näiden sivujen suora PHPkäsittely voi myöskin aiheuttaa ongelmia, mikäli kehittäjä ei ole huomioinut asiaa?> Jouni Ikonen 27
28 CT30A WWW-sovellukset Tietokantojen käyttö WWWsovelluksissa Jouni.Ikonen lut.fi Kalvot Arto Hämäläisen kalvojen pohjalta 1 Jouni Ikonen
29 Tietokannan käyttö PHP:ssä PHP sisältää sisäänrakennetun tuen useille eri tietokannoille ja tietokantayhteyksille MySQL, Oracle, PostgreSQL, SQLite, ODBC,... Käsitellään esimerkkinä MySQL-tietokannan käyttöä lähes poikkeuksetta vastaavat funktiot löytyvät myös muille mainituille tietokannoille, ja lisäksi... PHP:n versiossa 5 on esitelty PHP Data Objects -malli, jolla pyritään luomaan yhtenäinen liityntä eri tietokantoihin tietokantayhteyden määrittelevät funktion argumentit riippuvat käytettävästä tietokannasta, muuten toiminnot ovat yhtäläiset eri tietokantojen välillä Arto Hämäläinen & Jouni Ikonen 2
30 Tietokantayhteyden vaiheet Tietokantaa käyttävä PHP-skripti suorittaa yleensä seuraavat toiminnot: yhteyden luominen tietokantaan (osoite, käyttäjätunnus, salasana) käytettävän tietokannan valinta ja kyselyn suorittaminen kyselyn palauttaman tiedon haku tulosresurssista taulukkoon tai olioon ja tietojen käsittely skriptissä vain kyselyissä, joissa haetaan tietoa yhteyden katkaisu Arto Hämäläinen & Jouni Ikonen 3
31 PHP, Tietokantayhteyden luominen Tietokantayhteys luodaan PHP-skriptistä joko mysql_connect() tai mysql_pconnect() -funktioilla, jotka palauttavat onnistuessaan yhteyden tunnisteen tai epäonnistuessaan arvon epätosi (false) mysql_pconnect() luo pysyvän yhteyden, joka ei katkea skriptin suorituksen jälkeen, uudet tämän funktion kutsut palauttavat aikaisemmin luodun yhteyden tunnisteen yhteydenmuodostuksen tyypin vaihto ei vaikuta skriptin toimintaan, tehokkuuteen voi kylläkin vaikuttaa $yhteys = mysql_connect('localhost', 'kayttaja', 'salasana'); if (!$yhteys) { } die( "Tietokantayhteys epäonnistui: ". mysql_error()) ; echo "Tietokantayhteys onnistui"; // suoritetaan halutut komennot // voidaan sulkea lopuksi haluttaessa komennolla mysql_close(); Arto Hämäläinen & Jouni Ikonen 4
32 PHP, tietokannan valinta ja kyselyn suoritus Käytettävä tietokanta valitaan funktiolla mysql_select_db('tietokannan_nimi') Tietokantakysely suoritetaan funktiolla $tulos = mysql_query('kysely') onnistunut kysely palauttaa tulosresurssin tai totuusarvon tosi (riippuen kyselyn tyypistä), epäonnistunut totuusarvon false (epätosi) /* valitaan tietokanta */ mysql_select_db('oma_tietokanta') or die ('Tietokannan valinta epäonnistui'); /* määritellään kysely ja suoritetaan se */ $kysely = 'select * from henkilo'; $tulos = mysql_query($kysely) or die ('Kysely epäonnistui: '. mysql_error()); Arto Hämäläinen & Jouni Ikonen 5
33 PHP, tulosresurssin käsittely Onnistuneen kyselyn jälkeen tietokantakyselyn tulosresurssi (mikäli kyseessä oli tiedon haku) voidaan käydä läpi rivi riviltä siirtäen tietokannan tiedot PHP:n sisältämiin tietotyyppeihin Kunkin rivin tiedot voidaan tallentaa taulukkomuotoon suorittamalla silmukassa $taulukko = mysql_fetch_array($tulos) -funktio funktiolle voidaan määritellä toisena argumenttina taulukon avainten haluttu muoto: MYSQL_ASSOC (tietokannan sarakkeen nimi), MYSQL_NUM (numero), MYSQL_BOTH (molemmat, oletus) Vaihtoehtoisia funktioita kyselyresurssin läpikäymiseen ovat mysql_fetch_row() (samanlainen kuin mysql_fetch_array MYSQL_NUM -määrityksellä ja mysql_fetch_object() (palauttaa olion) Arto Hämäläinen & Jouni Ikonen 6
34 PHP, tulosresurssin käsittely mysql_fetch_... -funktiot palauttavat kerrallaan yhden rivin ja siirtävät sisäistä osoitinta rivin verran eteenpäin Mikäli tietoja ei enää ole saatavilla, funktiot palauttavat totuusarvon epätosi Niiden käyttö tulee siis sisällyttää esim. while-silmukkaan tyhjän haun sattuessa while-silmukan sisältöä ei suoriteta yhtään kertaa Haluttaessa palautettujen rivien määrä saadaan funktiolla mysql_num_rows($tulos), ja muokkauskyselyssä muokattujen rivien määrä funktiolla mysql_affected_rows($yhteys) /* käydään läpi tulosresurssia */ while ($taulukko = mysql_fetch_array($tulos, MYSQL_BOTH)) { } echo "Sarake 1:". $taulukko[0]; // tai $taulukko['sarake1'] Arto Hämäläinen & Jouni Ikonen 7
35 Tietokannan käyttö PHP:ssä, yhteenveto $host = "localhost"; //tietokannan osoite $database = "oma_tietokanta"; //tietokannan nimi $user = "username"; //käyttäjänimi $password = "salasana"; //salasana mysql_connect($host, $user, $password); mysql_select_db($database) or die ("Database selection failed"); $query = "select * from taulu"; $tulos = mysql_query($query); /* tehdään jotain kyselyn tulokselle */ mysql_close(); // suljetaan yhteys Arto Hämäläinen & Jouni Ikonen 8
36 PHP, tietoturva tietokannan käytössä Merkittävin uhka tietoturvalle PHP-käytössä on tarkistamattomat kyselyt, joissa käytetään käyttäjän antamaa syötettä Tarkistamaton kysely saattaa mahdollistaa tietokannan tietojen lukemisen, muuttamisen, poiston tai oikeuksien muutoksen Turvalliseen käyttöön on useita ohjeita käytä tunnusta, jolla on vain välttämättömimmät oikeudet tietokantaan tarkista, onko annettu tieto oikeaa tyyppiä, ja tarvittaessa muunna tieto haluttuun muotoon, esim. settype($offset, 'integer'); $query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset"; käytä erikoismerkkien asianmukaiseen käsittelyyn tarkoitettuja funktioita kyselyä valmistellessa, esim. MySQL:n kanssa mysql_real_escape_string() älä tulosta skriptissä tietokantaan liittyviä tietoja, ettei sitä paljastu tärkeitä tietoja tietokannasta Arto Hämäläinen & Jouni Ikonen 9
37 PHP Data Objects, PDO PHP Data Objects (PDO) -laajennus sisältää yhtenäisen liitynnän eri tietokantoihin PHP:stä saatavissa alkaen PHP:n versiosta 5 käytettävän tietokannan vaihto onnistuu PDOluokan muodostinfunktion argumentteja vaihtamalla varsinaiset käyttöfunktiot ovat samat kaikille tietokannoille Tuki eri tietokannoille on PDO:n mukaisissa tietokannan ajureissa PDO-ajurit olemassa yleisimmille tietokannoille (MySQL, Oracle, PostgreSQL, SQLite, ODBC, jne.) Arto Hämäläinen & Jouni Ikonen 10
38 PDO, Yhteyden luonti Tietokantayhteys luodaan luomalla PDO-luokan olio $yhteys = new PDO(...) luokkana tietokantatyypistä riippumatta PDO Luokan muodostinfunktiolle annetaan argumenttina tietokannasta riippuva yhteyden määrittelevä merkkijono ja mahdollisesti käyttäjänimi ja salasana esim. MySQL: $yhteys = new PDO('mysql:host=localhost;dbname=oma_tietokanta', $kayttaja, $salasana); esim. SQLite2: $yhteys = new PDO('sqlite2:.\tietokanta.db'); Yhteys puretaan asettamalla olion muuttujan arvoksi null, esim. $yhteys = null; Arto Hämäläinen & Jouni Ikonen 11
39 PDO, Kyselyn vaiheet Kysely valmistellaan tietokantayhteyden olion prepare()-funktiolla $kysely = $yhteys->prepare('select * FROM henkilo'); Kysely suoritetaan execute()-funktiolla $kysely->execute(); funktion palautusarvosta voidaan tarkistaa sen onnistuminen Kyselyn tuloksia voidaan käsitellä olion fetch() -jäsenfunktion avulla Arto Hämäläinen & Jouni Ikonen 12
40 PDO, muuttujien sitominen valmisteltuihin kyselyihin PDO:n avulla voidaan muodostaa dynaamisia kyselyitä sitomalla muuttujia valmisteltuihin kyselyhin bindparam() -funktiolla muuttujat voidaan sitoa nimettyihin kohtiin kyselyssä, $kysely->bindparam(':nimi', $nimi) indeksein, joihin viitataan kyselyssä?-merkillä $kysely->bindparam(1, $nimi); $kysely->prepare('select * from henkilo where etunimi = :nimi ') $kysely->bindparam(':nimi', $etunimi); // TAI $kysely->prepare('select * from henkilo where etunimi =? ') $kysely->bindparam(1, $etunimi); Arto Hämäläinen & Jouni Ikonen 13
41 PDO, muuttujien sitominen valmisteltuihin kyselyihin Suoritettaessa kyselyä execute()-funktiolla sijoitetaan muuttujien arvot kyselyihin sidotuille paikoilleen Muuttujan arvoa muuttamalla ja kutsumalla execute()-funktiota uudestaan saadaan aikaisemmin valmisteltu kysely suoritettua uudestaan uudella muuttujan arvolla Esim. taulukon tiedot voidaan lisätä tietokantaan foreachsilmukassa sijoittamalla sidottuihin muuttujiin taulukon kenttien arvot ja kutsumalla PDO:n execute-funktiota silmukan ajokerroilla Arto Hämäläinen & Jouni Ikonen 14
42 Yksinkertainen PDO-esimerkki // yhteydenmuodostus riippuu käytettävästä tietokannasta $yhteys = new PDO('mysql:host=localhost;dbname=test', $kayttaja, $salasana); // kyselyn määritys ja valmistelu, haetaan kaikkien Brianeiden tiedot $etunimi = 'Brian'; $kysely = $yhteys->prepare('select * FROM henkilo WHERE etunimi =?'); $kysely->bindparam(1, $etunimi); // kyselyn suoritus ja tuloksen käsittely if ($tila = $kysely->execute()) { } while ($rivi = $kysely->fetch()) { print_r($rivi); } $etunimi = 'Matti'; $kysely->execute(); //... Mattien tietojen haku $yhteys = null; // yhteyden sulkeminen Arto Hämäläinen & Jouni Ikonen 15
43 Yksinkertainen PDO-esimerkki, lisäys $yhteys = new PDO('mysql:host=localhost;dbname=test', $kayttaja, $salasana); // kyselyn määritys ja valmistelu $kysely = $yhteys->prepare('insert INTO henkilo (etunimi, sukunimi, puhelinnro) VALUES (:etunimi, :sukunimi, :puhelinnro)'); $kysely->bindparam( :etunimi, $etunimi); $kysely->bindparam( :sukunimi, $sukunimi); $kysely->bindparam( :puhelinnro, $puhelinnro); $etunimi = "Brian"; $sukunimi = "Kottarainen"; $puhelinnro = ' '; $kysely->execute(); // Brianin tiedot $etunimi = "Matti"; $sukunimi = "Meikäläinen"; $puhelinnro = ' '; $kysely->execute(); // Matin tiedot $yhteys = null; // yhteyden sulkeminen Arto Hämäläinen & Jouni Ikonen 16
44 PHP DOM-funktiot PHP:n avulla on mahdollista käsitellä dokumentteja Document Object Model -mallin (DOM) mukaisesti PHP:n DOM-funktiot on tarkoitettu erityisesti XML-tiedostojen käsittelyyn, mutta XHTML-tiedostojen käsittelykin onnistuu hyvin DOM-luokan olio voidaan luoda tyhjästä tai lukea olemassa oleva tiedosto Tiedosto voi olla paikallinen tai etätiedosto Arto Hämäläinen & Jouni Ikonen 17
45 PHP DOM-funktiot DOM-luokan olio voidaan luoda tyhjästä tai lukea olemassa oleva tiedosto Tiedosto voi olla paikallinen tai etätiedosto $dom = new DomDocument(); $dom->loadhtmlfile( " ); Esim. vaihdetaan sivun tyylikirjaston osoite, halutaan käyttää testi.css - tyylitiedostoa: $linkit = $dom->getelementsbytagname('link'); for ($i = 0; $i < $linkit->length; $i++) { if ($linkit->item($i)->getattribute('rel') == 'stylesheet'){ $linkit->item($i)->setattribute('href', 'testi.css'); } } Arto Hämäläinen & Jouni Ikonen 18
46 PHP DOM-funktiot Poistetaan kaikki <p></p> -elementit (kappaleet tiedostosta $runko = $dom->getelementsbytagname('body')->item(0); $kappaleet = $dom->getelementsbytagname('p'); $maara = $kappaleet->length; for($i=0;$i<$maara;$i++) } Lisätään uusi elementti $element = $dom->createelement("h2", "Uusi kakkostason otsikko"); $dom->appendchild($element); Tulostetaan dokumentti näytölle echo $dom->savehtml(); Arto Hämäläinen & Jouni Ikonen 19
47 PHP, PDF-funktiot PHP:n avulla voidaan luoda ja käsitellä PDF-tiedostoja yleisimmin käytetty PDFLib -kirjastoa ( myös vapaita kirjastoja olemassa PDF-tiedostojen luontiin PHP:llä (esim. FPDF ) PHP5:ssä voidaan käyttää PHP5:n oliomallin mukaista ohjelmointirajapintaa, PHP4:ssä erillisiä funktioita esim. dokumentin luonti FPDF-kirjastoa käyttäen käyttäen: /* PHP 5 */ require('fpdf.php'); /* ladataan fpdf-toiminnot fpdf:sta, joka on asennettu */ $pdf=new FPDF(); /* oletuksena Pysty A4 -koko ja millimetrit yksiköinä, sama kuin $pdf=new FPDF('P','mm','A4'); */ /* tämän jälkeen $pdf-oliota käyttäen voidaan pdf-dokumenttiin lisätä tietoa */ Arto Hämäläinen & Jouni Ikonen 20
48 PHP, FPDF-funktiot Funktioiden avulla voidaan käsitellä PDF:n näkyvää sisältöä ja sen yleisiä tietoja (tekijä yms.) <?php require('fpdf.php'); $pdf=new FPDF(); $pdf->setauthor("arto Hämäläinen"); $pdf->addpage(); $pdf->image('kuva.jpg', 0, 0, 150); $pdf->setfont('arial','b',16); $pdf->setxy(5,40); $pdf->cell($pdf->getstringwidth('esimerkkiteksti')+5,10,'esimerkkiteksti',1); $pdf->output();?> Arto Hämäläinen & Jouni Ikonen 21
Tuotteiden tiedot: Lisää uuden tuotteen tiedot. Muuta tai poista tuotteen tiedot. Selaa kaikkien tuotteiden tietoja.
laskutus_index http://media.stadia.fi/~0700527/laskutus/laskutus_index.html Sivu 1/1 13.12.2007 Laskutus -tietokanta Henkilöiden tiedot: Lisää uuden henkilön tiedot Muuta tai poista henkilön tiedot Selaa
Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:
Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,
SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet
SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin
Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)
HAAGA-HELIA ICT1TA006: Ohjelmointi 1 /5 Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) (Lähteet: Oracle java jdbc Tutorial, Arvo Lipitsäinen: Tietokannan käsittely JDBC:n
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman
LINUX-HARJOITUS, MYSQL
LINUX-HARJOITUS, MYSQL Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,
Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito
Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito Henri Kinnunen, Seppo Tompuri, Tero Malkki, Matti Heiskanen, Tommi Rönkönharju, Tuomas Valkeapää Sisällysluettelo 1. Alkusanat.2 2. Asennusohje..2 3.
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA. Jarkko Kähkönen
SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA Sisällysluettelo Luku 1 - Oman LABRA-sivutilan asennus ja käyttöönotto... 2 1.1 - LABRA-osoitteesi... 2 1.2 LABRA-tilan käyttö (verkko-asemana
Luento 3. Jouni Ikonen - Jouni.Ikonen lut.fi
CT30A3200 - WWW-sovellukset Luento 3 Jouni Ikonen - Jouni.Ikonen lut.fi Kalvot Arto Hämäläisen kalvojen pohjalta 1 Jouni Ikonen HTML-lomakkeet HTML-lomakkeiden avulla voidaan WWW-sovelluksessa hakea käyttäjän
Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas
Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä
Käyttöohje. Ticket Inspector. Versio 1.0. Sportum Oy
Käyttöohje Ticket Inspector Versio 1.0 Sportum Oy 10.5.2017 Sivu 1 Sisällysluettelo 1. Yleistä... 2 2. Kirjautuminen ensimmäisellä kerralla / PIN-koodin unohtuessa... 3 3. Tunnistautuminen... 4 4. Päänäkymä...
Ylläpitodokumentti Labra
Ylläpitodokumentti Labra Helsinki 26.8.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Kurssi 581260 Ohjelmistotuotantoprojekti (9+1op) Projektiryhmä Anssi Kapanen,
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman
Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36
!!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat
Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:
1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri
Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4
Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.
WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY
1 WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY 10.4.2015 Lounea Oy Tehdaskatu 6, 24100 Salo Puh. 029 707 00 Y-tunnus 0139471-8 www.lounea.fi Asiakaspalvelu 0800 303 00 Yrityspalvelu 0800 303 01 Myymälät 0800 303
Tietokannat II -kurssin harjoitustyö
Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava
Käytin tehtävän tekemiseen Xubuntu 13.04 -käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.
Tehtävänanto - Asenna ja testaa LAMP - Aiheuta vähintään 3 virhettä ja analysoi lokista - Tee nimipohjainen virtuaalipalvelin, joissa toimii myös www. (Karvinen, T. 23.09.2013) Työympäristö Tein tehtävän
AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML
AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen
OHJE 1 (14) Peruskoulun ensimmäiselle luokalle ilmoittautuminen Wilmassa
OHJE 1 (14) Peruskoulun ensimmäiselle luokalle ilmoittautuminen Wilmassa Wilman hakemukset ja muut lomakkeet EIVÄT NÄY mobiililaitteisiin asennettavissa Wilma-sovelluksissa. Huoltajan tulee siis käyttää
Luento 5. Timo Savola. 28. huhtikuuta 2006
UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke
Julkinen. Suomen Pankin ja Finanssivalvonnan suojattu sähköposti: ulkoisen käyttäjän ohje
Muistio 1 (7) Suomen Pankin ja Finanssivalvonnan suojattu sähköposti: ulkoisen käyttäjän ohje Sisällys 1 Johdanto... 1 2 Suojatun viestin vastaanottaminen... 1 3 Suojatun viestin lukeminen... 2 4 Vastaanotetun
Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita.
Arkkitehtuurikuvaus Käytössä olevat java-luokat: Kansio: /WEB_INF/classes/ - käännetyt luokat Kansio: /WEB_INF/src/ - lähdekoodi custom_pojos: Kurssi.java Java-luokka, jonka sisältö vastaa tietokannassa
Toteutusdokumentti. Aija. Helsinki 1.9.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos
Toteutusdokumentti Aija Helsinki 1.9.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos Sisältö 1. Johdanto...3 2. SQL -lauseet...3 3. Ajastettutoiminta - backrun.php...3
Ilmoitus saapuneesta turvasähköpostiviestistä
Tullin turvasähköposti Asiakkaan ohje www.tulli.fi versio 2.2 8.1.2015 Korvaa version 2.1 22.5.2014 Tullin turvasähköposti Tulli lähettää sinulle sähköpostiviestin salattuna silloin, kun viesti tai sen
Palvelinpuolen ohjelmointi
Palvelinpuolen ohjelmointi Staattiset ja dynaamiset web-sivut Staattiset web-sivut ovat valmiissa muodossaan palvelimella (tai paikallisesti omalla koneella). Javascript mahdollistaa paikalliset dynaamiset
Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu KÄYTTÖOHJE. LiKe Liiketoiminnan kehityksen tukiprojekti
Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu JÄRJESTELMÄN KÄYTTÖOHJE LiKe Liiketoiminnan kehityksen tukiprojekti Versio: 1.1 Tila: hyväksytty Päivämäärä: 13.2.2001
Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)
Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,
KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille
KServer Etäohjaus 1 (5) KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille Palvelimen toteutuksen ollessa versio 1.0, spesifikaation versio 1.0.0. 2009, Riku Eskelinen/ KServer Software Development
Luottamuksellinen sähköposti Trafissa
OHJE 1 (8) Luottamuksellinen sähköposti Trafissa Trafi käyttää Deltagon Sec@GW -ohjelmistoa sähköpostin luottamuksellisuuden suojaamiseen. D-Envelope sovelluksen avulla viestien vastaanottaminen ei edellytä
SQL Buddy JAMK Labranet Wiki
Page 1 of 9 SQL Buddy JAMK Labranet Wiki Sisällysluettelo Yleistä SQL Buddy:sta kotisivu :http://sqlbuddy.com/ SQL Buddy on kevyt hallintatyökalu MySQL-tietokannalle. Järjestelmävaatimukset Serverin vaatimukset
KAMPUSSALASANAN VAIHTAMINEN (SAVONIA-AMK KÄYTTÄJÄT)
KAMPUSSALASANAN VAIHTAMINEN (SAVONIA-AMK KÄYTTÄJÄT) Moodlen tunnukset ovat samat kuin verkon (=tietokoneille kirjautumisen), sähköpostin, Asion, Adobe Connectin ja Webropolin käyttäjätunnukset. Näiden
Olio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
OpenOffice.org Base 3.1.0
OpenOffice.org Base 3.1.0 Sisällysluettelo 1 Tietokannan luominen...1 2 Taulukon eli taulun luominen...3 3 Kysely...9 4 Raportti...14 1 Tietokannan luominen Tietokanta on kokoelma tietoja, joilla on yhteys
Tikon ostolaskujen käsittely
Toukokuu 2014 1 (8) Toukokuu 2014 2 (8) Sisällysluettelo 1. Käyttäjäasetukset... 3 2. Yleiset parametrit... 3 3. Kierrätysasetukset... 3 4. palvelimen tiedot... 4 5. lähetyksen aktivointi... 5 6. Eräajot
Käyttöohje. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Käyttöohje Aija Helsinki 2.9.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö 1. Yleistä...3 2. Järjestelmän toiminnot...4 2.1 Rekisteröityminen...4 2.2 Sisäänkirjautuminen...4
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 4.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 4.3.2009 1 / 35 Tiedostot Tiedostojen käsittelyä tarvitaan esimerkiksi seuraavissa tilanteissa: Ohjelman käsittelemiä
Toimittajaportaalin pikaohje
1 Toimittajaportaalin pikaohje Toimittajaportaalin rekisteröityminen Toimittajaportaalin sisäänkirjautuminen Laskun luonti Liitteen lisääminen laskulle Asiakkaiden hallinta Uuden asiakkaan lisääminen Laskujen
582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus
582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus Sisältö Mikä on web-sovellus? Selaimen rooli web-sovelluksessa Palvelimen rooli web-sovelluksessa Aineistopyynnöt Tiedon välittäminen
Sähköpostitilin luonti 07.06.2011
Sähköpostitilin luonti 07.06.2011 SÄHKÖPOSTITILIN LUONTI Tilin luonti pääkäyttäjän hallintaportaalissa 3 Sähköpostitilin luonti Outlook 2010 ohjelmaan 8 Tämä ohje on lyhennetty versio sähköpostilin Hallintaportaalin
2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)
2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi
OPPITUNTI 12 MySQL-tietokannan käyttö
12. MySQL-tietokannankäyttö 211 OPPITUNTI 12 MySQL-tietokannan käyttö PHP-kieleen kuuluu olennaisesti tietokantojen käyttämisen helppous. Tällä tunnilla keskitymme MySQLtietokantaan, mutta samanlaisia
Salasanojen hallinta. Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION
Salasanojen hallinta Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION Restaurant Enterprise Solution Asiakirjan tarkoitus Tämä asiakirja kertoo tarvittavat säännöt kuinka hallinnoida RES salasanoja
KYMP Webmail -palvelu
KYMP Webmail -palvelu Sisältö 1. Kirjautuminen... 3 2. Viestin merkinnät... 4 3. Viestien lukeminen... 4 Viestiin vastaaminen... 4 Viestin välittäminen edelleen / uudelleen ohjaus... 5 4. Viestin kirjoittaminen...
HAME PostGIS-tietokanta
HAME PostGIS-tietokanta Harmonisoidut maakuntakaavat e-palveluiksi (HAME) VSL 10.12.2019 HAME-hankkeelle maakuntakaavoja varten rakennettu PostGIS-serveri sijaitsee Lounaistiedon AWS (Amazon Web Service)
Tikon ostolaskujen käsittely
Toukokuu 2013 1 (7) 6.3.0 Copyright Aditro 2013 Toukokuu 2013 2 (7) Sisällysluettelo 1. Käyttäjäasetukset... 3 2. Yleiset parametrit... 3 3. Kierrätysasetukset... 3 4. palvelimen tiedot... 4 5. lähetyksen
Lemonsoft SaaS -pilvipalvelu OHJEET
Lemonsoft SaaS -pilvipalvelu OHJEET Lemonsoft-käyttäjätunnukset Käyttäjätunnukset voit tilata suoraan omalta Lemonsoft-myyjältäsi tai Lemonsoftin asiakaspalvelun kautta. Käyttäjätunnusta tilatessasi ilmoitathan
OPPITUNTI 20 Tilan tallentaminen istuntofunktioilla
20. Tilan tallentaminen istuntofunktiolla 353 OPPITUNTI 20 Tilan tallentaminen istuntofunktioilla Edellisellä tunnilla tutkimme tilan tallentamista evästeiden ja kyselymerkkijonojen avulla. PHP4 on kuitenkin
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 1.3.2010 1 / 36 Monikko Monikko (engl. tuple) muistuttaa listaa, mutta monikon sisältöä ei voi muuttaa sen jälkeen,
Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen
Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla
ICT1TN004. Lomakkeet. Heikki Hietala
Lomakkeet Heikki Hietala Lomakkeet Lomakkeita käytetään keräämään tietoa käyttäjältä ja siirtämään se palvelimelle Lomakkeen luominen ei yksin riitä, vaan pitää luoda myös lomakkeenkäsittelijä Lomakkeen
EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE: 15.03.
EMVHost Online SUBJECT: COMPANY: COMMENTS: AUTHOR: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT NETS OY EMVHost Online Client sovelluksen käyttöohje NETS OY DATE: 15.03.2011 VERSION: 1.0 1 SISÄLLYS SISÄLLYS...
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat
Käyttöohje. Visy Access Net UPM
Käyttöohje Visy Access Net UPM 1. Johdanto Visy Access Net on WWW-pohjainen käyttöliittymä, jolla UPM:n toimittajien pitää luvittaa omat ajoneuvonsa UPM:n tehtaille, jotta kulku onnistuu jatkossakin. Järjestelmä
Toimittajaportaalin rekisteröityminen Toimittajaportaalin sisäänkirjautuminen Laskun luonti Liitteen lisääminen laskulle Asiakkaiden hallinta Uuden
1 Toimittajaportaalin rekisteröityminen Toimittajaportaalin sisäänkirjautuminen Laskun luonti Liitteen lisääminen laskulle Asiakkaiden hallinta Uuden asiakkaan lisääminen Laskujen haku Salasanan vaihto
SSH Secure Shell & SSH File Transfer
SSH Secure Shell & SSH File Transfer TIETOHALLINTO Janne Suvanto 1.9 2002 Sisällysluettelo Sisällysluettelo... 1 Yleistä... 2 SSH Secure Shell ohjelman asetukset... 3 POP3 tunnelin asetukset... 6 Yhteyden
Visma Nova. Visma Nova ASP käyttö ja ohjeet
Visma Nova Visma Nova ASP käyttö ja ohjeet Oppaan päiväys: 2.2.2012. Helpdesk: http://www.visma.fi/asiakassivut/helpdesk/ Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai
Toimittajaportaalin pikaohje
1 Toimittajaportaalin pikaohje Toimittajaportaalin rekisteröityminen Toimittajaportaalin sisäänkirjautuminen Laskun luonti Liitteen lisääminen laskulle Asiakkaiden hallinta Uuden asiakkaan lisääminen Laskujen
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 3.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.3.2010 1 / 44 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
Julkinen. Suomen Pankin ja Finanssivalvonnan suojattu sähköposti: ulkoisen käyttäjän ohje
Ohje 1 (10) Suomen Pankin ja Finanssivalvonnan suojattu sähköposti: ulkoisen käyttäjän ohje Sisällys 1 Johdanto... 1 2 Suojatun viestin vastaanottaminen... 1 3 Suojatun viestin lukeminen... 2 4 Vastaanotetun
Pikaohje formaatin valmistamiseen
Pikaohje formaatin valmistamiseen Esko Otava Oy ver.1.0 Pääikkunasta (tulostusikkunasta) valitaan Cards-Show cards manager Paina Add 2 Paina New Kortinsuunnitteluikkuna on jaettu kolmeen osaan: Vasemmalla
Käsikirjan paperiversiota ei enää ylläpidetä ohjeen päivämäärän jälkeen. Viimeisimmät versiot ohjeista löydät ohjelman Help-ruudulta.
2 Käsikirjan paperiversiota ei enää ylläpidetä ohjeen päivämäärän jälkeen. Viimeisimmät versiot ohjeista löydät ohjelman Help-ruudulta. Sisällys 1 Yleistä... 3 1.1 Kirjanpitolain uudistus 2016... 3 Liitetietotosite...
sivu 1 Verkkopäätteen muuttaminen Anvian uuteen tekniikkaan Ohje käy seuraaviin verkkopäätteisiin
sivu 1 Verkkopäätteen muuttaminen Anvian uuteen tekniikkaan Ohje käy seuraaviin verkkopäätteisiin Zyxel Prestige 645 ISP Zyxel Prestige 645 WEB Zyxel Prestige 645R Zyxel Prestige 645 Ennen aloitusta tarkista,
IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit
IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
Ohjelmisto on tietokanta pohjainen tiedostojärjestelmä, joka sisältää virtuaalisen hakemisto rakenteen.
1 / 50 1. Etusivu Ohjelmisto on tietokanta pohjainen tiedostojärjestelmä, joka sisältää virtuaalisen hakemisto rakenteen. Virtuaali hakemistoihin voi tuoda tiedostoja tietokoneelta tai luoda niitä tällä
ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014
18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
Ohjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja
Webpalvelin muistitikulle - Ohje
- Ohje Jari Sarja jari.sarja @ 2017 Creative Commons Nimeä-JaaSamoin 4.0 Kansainvälinen SISÄLLYSLUETTELO 1 Johdanto... 3 1.1 Miksi asennus muistitikulle?... 3 2 Webpalvelimen asennus... 4 3 Käyttöliittymä...
Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin
Ohjausjärjestelmien jatkokurssi Visual Basic vinkkejä ohjelmointiin http://www.techsoft.fi/oskillaattoripiirit.htm http://www.mol.fi/paikat/job.do?lang=fi&jobid=7852109&index=240&anchor=7852109 Yksiköt
Käyttöohje. Labra. Helsinki 25.8.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Käyttöohje Labra Helsinki 25.8.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Kurssi 581260 Ohjelmistotuotantoprojekti (9+1op) Projektiryhmä Henrik Naakka, projektipäällikkö,
Fakta versio 5.3.0.1069 Forecast versio 1.3.0.53
1 (7) Fakta versio 5.3.0.1069 versio 1.3.0.53 Ohessa on luettelo uusista ja muuttuneista toiminnoista ja ominaisuuksista version x.2.1 jälkeen. Porautuminen saldoista tapahtuariveille.. Jako on mahdollista
Android. Sähköpostin määritys. Tässä oppaassa kuvataan uuden sähköpostitilin käyttöönotto Android 4.0.3 Ice Cream Sandwichissä.
Y K S I K Ä Ä N A S I A K A S E I O L E M E I L L E LI I A N P I E NI TAI M I K Ä Ä N H A A S T E LI I A N S U U R I. Android Sähköpostin määritys Määrittämällä sähköpostitilisi Android-laitteeseesi, voit
Harjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
Sähköposti ja uutisryhmät 4.5.2005
Outlook Express Käyttöliittymä Outlook Express on windows käyttöön tarkoitettu sähköpostin ja uutisryhmien luku- ja kirjoitussovellus. Se käynnistyy joko omasta kuvakkeestaan työpöydältä tai Internet Explorer
Digitaalisen median tekniikat. Luento 4: JavaScript
Digitaalisen median tekniikat Luento 4: JavaScript Luennot 1. Intro 2. XHTML 3. CSS 4. JavaScript Historia Syntaksi Dom Esimerkki: kuvagalleria 5. JavaScript-kirjastot & AJAX 6. Käytettävyys & saavutettavuus
Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);
Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun
Action Request System
Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet
Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen
Esimerkki: Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Luo tietokanta Koulu. Tietokantaan lisätään 3 taulua. Kurssit-taulu: kurssiid not null primary key INTEGER aineid not
OFFICE 365 PIKAOHJE 14.01.2014
OFFICE 365 PIKAOHJE 14.01.2014 SISÄLTÖ 1. O365 AVAAMINEN 3 2. KIRJAUTUMINEN 3 3. SALASANAN VAIHTAMINEN 5 4. SÄHKÖPOSTIN KANSIO RAKENNE 6 5. POISSAOLOVIESTI 7 6. SÄHKÖPOSTIN ALLEKIRJOITUS 8 7. YHTEYSTIEDOT
Luottamuksellinen sähköposti Lapin yliopistossa. Ilmoitusviesti
Luottamuksellinen sähköposti Lapin yliopistossa Lapin yliopisto käyttää Deltagon Sec@GW -ohjelmistoa sähköpostin luottamuksellisuuden suojaamiseen. D-Envelope sovelluksen avulla viestien vastaanottaminen
Maestro Lappeenranta Mannerheiminkatu Lappeenranta. Maestro Helsinki Huopalahdentie Helsinki
1 Uusi asiakasyrityksen käyttäjätunnus MaestroNG-järjestelmään 1 Yleistä... 2 2 Perusta käyttäjäryhmät... 2 3 Lisää käyttäjäryhmille oikeudet... 3 Oikeus sivustoon... 3 Oikeus firmaan... 4 Oikeudet sovelluksiin...
Hirviö Järjestelmätestauksen testitapaukset ja suoritusloki I1
Hirviö Järjestelmätestauksen testitapaukset ja suoritusloki I1 Jani Heikkinen Jukka Larja Kim Nylund Liia Sarjakoski 30. marraskuuta 2004 1 Sisältö 1 Sisään- ja uloskirjautuminen 3 1.1 Testitapaus F1-TC1................................
TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences
TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen
Zeon PDF Driver Trial
Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin
Fixcom Webmail ohje. Allekirjoitus. Voit lisätä yhden tai useamman allekirjoituksen.
Webmail on monipuolinen työkalu jolla voi tehdä paljon muutakin kuin lukea sähköpostia. Tässä ohjeessa on lyhyesti esitelty joitakin sen ominaisuuksia. Peruspostilaatikossa ei ole kaikkia ominaisuuksia,
VERKKOKÄYTTÄJÄN OPAS. Tulostuslokin tallennus verkkoon. Versio 0 FIN
VERKKOKÄYTTÄJÄN OPAS Tulostuslokin tallennus verkkoon Versio 0 FIN Oppaassa käytetyt kuvakkeet Tässä käyttöoppaassa käytetään seuraavaa kuvaketta: Vinkki kertoo, miten toimia tietyissä tilanteissa, tai
ARVI-järjestelmän ohje arvioinnin syöttäjälle 13.4. 2015
ARVI-järjestelmän ohje arvioinnin syöttäjälle 13.4. 2015 Sisältö ARVI-menettelyn perusteet... 1 Arvioinnin syöttäminen... 2 Arvion lähettäminen TE-toimistoon... 5 Sovelluksen sulkeminen... 6 Virhetilanteiden
1 Visma Econet Pro Arkistointi
1 Visma Econet Pro Arkistointi 1.1 Arkistointiajo Visma Econet Pro:n on lisätty ominaisuus, jolla tietokannassa olevista tiedoista voidaan ajaa arkistointiajo. Arkistointi luo määriteltyyn hakemistoon
Tentti erilaiset kysymystyypit
Tentti erilaiset kysymystyypit Monivalinta Monivalintatehtävässä opiskelija valitsee vastauksen valmiiden vastausvaihtoehtojen joukosta. Tehtävään voi olla yksi tai useampi oikea vastaus. Varmista, että
Merikarvian matkailu ry tietosuojaseloste
Merikarvian matkailu ry tietosuojaseloste 1. Rekisterinpitäjä Merikarvian Matkailu ry Postiosoite: Kauppatie 40 29900 Merikarvia Käyntiosoite: Kauppatie 40 29900 Merikarvia Rekisteri on vain Merikarvian
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen
Maestro Lappeenranta Mannerheiminkatu Lappeenranta. Maestro Helsinki Huopalahdentie Helsinki
1 Uusi asiakasyrityksen käyttäjätunnus MaestroNG-järjestelmään 1 Yleistä... 2 2 Perusta käyttäjäryhmät... 2 3 Lisää käyttäjäryhmille oikeudet... 3 Oikeus sivustoon... 3 Oikeus firmaan... 4 Oikeudet sovelluksiin...
TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö
TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3
Kieliteknologian ATK-ympäristö Toinen luento
Kieliteknologian ATK-ympäristö Toinen luento Miikka Silfverberg Nykykielten laitos 12. syyskuuta 2011 Miikka Silfverberg (Helsingin yliopisto) Kieliteknologian ATK-ympäristö: Luento 2 12. syyskuuta 2011
AsioEduERP v12 - Tietoturvaparannukset
AsioEduERP v12 - Tietoturvaparannukset Yhteenveto AsioEduERP v12:n tietoturvaa parantavat uudet ominaisuudet: Salasanakäytäntö Kirjautumisviive Käyttäjien aktiivisuuden seuranta Uloskirjautuminen (myös