Hevoset.com - Keskustelu: Php:n alkeita virtuaalihevostelijoille - Hevoset.com - Keskustelu

Siirry

Vanha suomennos, pelit ja galleria palaavat kyllä. Älkää huoliko :)
Ulkoasu on muuttunut, lisää aiheesta Palaute-alueella.
Sivu 1 / 1
  • Et voi aloittaa uutta aihetta
  • Et voi vastata tähän aiheeseen

Php:n alkeita virtuaalihevostelijoille

#1 Jäsen ei ole paikalla   Meepu 

  • Auktoriteetti
  • PipPipPipPipPip
  • Ryhmä: Jäsen
  • Viestejä: 3 776
  • Liittynyt: 25.05.04

Lähetetty 26.09.2008 - 21:14

Päivitetty 9.10.2008, uudet kohdat sinisellä. Kaikki kommentit tervetulleita.

--

Lyhyehkö tutoriaali, joka käsittää vain muutaman perusasian PHP:stä. Tietokantoihin ei kosketa.

Jutussa ei opeteta PHP:n lataamista omalle koneelle, koska miuta ei nyt vain huvita kirjoittaa siitä. Ehkä joskus myöhemmin. Jos/kun alat kirjoittaa PHP:tä enemmän, kannattaa ehdottomasti tehdä se ensin omalla koneella ja siirtää sivut nettiin vasta, kun on testannut niiden toimivuuden. Helpoiten ohjelmointiympäristön saa asennettua Wampserverin avulla.

Tutoriaalissa oletetaan, että sinulla on joko PHP:tä tukeva tietokone (ja olet saanut PHP:n päälle ja tiedät, mihin kansioon sivut on tallennettava) tai että sinulla on PHP:tä tukevaa kotisivutilaa (melkein miltä tahansa firmalta hankittua maksettua sivutilaa tai ilmaista sivutilaa palvelimelta, joka tukee PHP:tä).

Oletan myös, että osaat kirjoittaa HTML:ää. Tässä tutoriaalissa käytettävä HTML ei ole täysin validia. Jätän pois dokumenttityypin määrittelyt ja suuren osan peruskoodeista ja keskityn sivun niihin osiin, jotka ovat PHP:n kannalta oleellisia.

--

1. PHP:n kirjoittaminen, echo

PHP kirjoitetaan suoraan HTML-koodin sisään. PHP-koodi erotetaan HTML-koodista ympäröimällä se tageilla <?php ja ?>

Seuraavalle sivulle on lisätty PHP-koodi, joka näyttää sivulla tekstin "Hello World!"

<html>
	   <head><title>Tervehdys</title></head>
	   <body>
	   <h1>Tervehdys</h1>
	   <p><?php echo "Hello World!"; ?></p>
	   </body>
	   </html>


Paitsi että PHP-koodia voi kirjoittaa HTML:n sisään, myös HTML:ää voi kirjoittaa PHP:n sisään. Seuraava sivu on aivan yhtä toimiva:

<?php
	   echo "<html><head><title>Tervehdys</title></head><body><h1>Tervehdys</h1><p>Hello World!</p></body></html>"; ?>


Koodi näyttää kyllä paremmalta, jos tulostettavan tekstin - tai tässä tapauksessa HTML-koodin - jakaa useammalle riville. PHP ei (yleensä) välitä rivinvaihdoista tai ylimääräisestä tyhjästä tilasta.

<?php
	   echo "<html>
		 <head><title>Tervehdys</title></head>
		 <body>
		 <h1>Tervehdys</h1>
		 <p>Hello World!</p>
		 </body>
		 </html>";
   ?>


PHP koostuu aloitus- ja lopetustagien väliin kirjoitettavista lauseista eli komennoista. Jokainen komento päätetään puolipisteellä. Koodin luettavuuden takia komennot kannattaa kirjoittaa eri riveille.

<?php
	   echo "<p>Tämä komento lisää sivulle ";
	   echo "kappaleen tekstiä. PHP-koodissa teksti on jaettu ";
	   echo "neljään eri komentoon, mutta ";
	   echo "sivulla se näkyy yhtenä kappaleena.</p>";
	   ?>


PHP-sivut tallennetaan tiedostopäätteellä .php.

--

2. Muuttujat

Toistaiseksi PHP ei ole vielä tehnyt mitään ihmeellistä - miksi haluaisimme lisätä tekstiä sivulle PHP:llä, kun sen voi kirjoittaa suoraan HTML:ään? Yksi minkä tahansa kielen ohjelmoinnin tärkeimmistä työkaluista ovatkin muuttujat, joiden avulla sivu saadaan nimensä mukaisesti muuttumaan.

Niille, jotka ovat joskus ohjelmoineet muita kieliä tiedoksi, että PHP:ssa muuttujan tyyppiä ei tarvitse erikseen määrittää.

Ohjelmoija saa itse keksiä muuttujille nimet. Jokaisen muuttujan nimi alkaa kuitenkin aina $-merkillä. Muuttujalle annetaan arvo kirjoittamalla nimen perään = arvo. Jos arvo on tekstimuotoinen (ei siis esim. numero), se kirjoitetaan lainausmerkkien sisään. Luodaan esimerkiksi muuttuja $hevonen ja annetaan sille arvoksi erään hevosen nimi.

<?php
   $hevonen = "Polle";
   
   echo "$hevonen on rodultaan suomenhevonen ja sukupuoleltaan ori. $hevonen on mukava hoitaa ja ratsastaa. $hevonen kilpailee kouluratsastuksessa tasolla he A.";
   ?>


Sivulle ilmestyy teksti: "Polle on rodultaan suomenhevonen ja sukupuoleltaan ori. Polle on mukava hoitaa ja ratsastaa. Polle kilpailee kouluratsastuksessa tasolla he A."

Tehdäänpä pari muutakin muuttujaa:

<?php
	 $hevonen = "Polle";
   $rotu = "suomenhevonen";
   $sukupuoli = "ori";
   $koulutustaso = "he A";
	 
	 echo "$hevonen on rodultaan $rotu ja sukupuoleltaan $sukupuoli.  $hevonen on mukava hoitaa ja ratsastaa. $hevonen kilpailee  kouluratsastuksessa tasolla $koulutustaso.";
	 ?>


Teksti näyttää sivulla aivan samalta kuin äskenkin.

Tallilla saattaa olla myös toinen hevonen. Sen esittely voisi näyttää tältä:

<?php
	   $hevonen = "Matador IX";
	 $rotu = "trakehner";
	 $sukupuoli = "ruuna";
	 $koulutustaso = "GP";
	   
	   echo "$hevonen on rodultaan $rotu ja sukupuoleltaan $sukupuoli.  $hevonen on mukava hoitaa ja ratsastaa. $hevonen kilpailee  kouluratsastuksessa tasolla $koulutustaso.";
	   ?>


Nyt sivulla lukeekin: "Matador IX on rodultaan trakehner ja sukupuoleltaan ruuna. Matador IX on mukava hoitaa ja ratsastaa. Matador IX kilpailee kouluratsastuksessa tasolla GP." Huomaa, että tekstin kirjoittava echo-komento on aivan samanlainen kuin Pollenkin sivulla.

--

3. If

Meillä on siis talli, jossa on kaksi hevosta, Polle ja Matador IX. Ylempää huomasimme, että hevosten esittelyt voidaan kirjoittaa samalla echo-komennolla kunhan vain muuttujilla on oikeat arvot. Ollaanpa siis laiskoja ja tehdään yhteinen esittelysivu, jolla voidaan esitellä kumpi tahansa hevosista.

Ensimmäinen ongelma on, ettemme tiedä, kumman hevosen tietoja kävijä haluaa katsella. Käytännössä hevosen voi valita linkin, lomakkeen tai vaikka pudotusvalikon kautta, mutta niitä emme ehdi käsitellä tässä tutoriaalissa. Oletamme nyt vain, että kävijä on tehnyt valintansa ja skriptiin kuuluu osa, jonka ansiosta $hevonen-muuttujan arvo on nyt joko "Polle" tai "Matador IX". (Meidän ei tarvitse tietää, kumpi.)

Meidän pitää siis kertoa skriptille, että jos $hevonen on "Polle", $rotu on "suomenhevonen", $sukupuoli "ori" ja $koulutustaso "he A". Jos taas $hevonen on "Matador IX", $rotu on "trakehner", $sukupuoli "ruuna" ja $koulutustaso "GP".

PHP:n if-komento tekee juuri tämän. Syntaksi näyttää seuraavalta:

if (ehto) {
tee tämä
}

Jos sulkujen sisällä oleva ehto toteutuu, suoritetaan aaltosulkujen sisällä oleva koodi. Esimerkiksi

if (ulkona sataa) {
ota sateenvarjo mukaan;
}

Hevosesimerkillämme siis:

<?php
  if ($hevonen == "Polle") {
  $rotu = "suomenhevonen";
   $sukupuoli = "ori";
   $koulutustaso = "he A";
  }
  
  if ($hevonen == "Matador IX") {
   $rotu = "trakehner";
	 $sukupuoli = "ruuna";
	 $koulutustaso = "GP";
   }
   
  echo "$hevonen on rodultaan $rotu ja sukupuoleltaan $sukupuoli. $hevonen on mukava hoitaa ja ratsastaa. $hevonen kilpailee kouluratsastuksessa tasolla $koulutustaso.";
  
  ?>


Ensin skripti tutkii, onko $hevonen-muuttujan arvo "Polle". Jos on, se antaa $rotu, $sukupuoli ja $koulutustaso-muuttujille arvot. Jos ei ole, ei tehdä mitään. Sitten tutkitaan, onko $hevonen-muuttujan arvo "Matador IX". Jos on, annetaan muuttujille arvot, jos ei, ei tehdä mitään. Lopuksi kirjoitetaan sivulle hevosen esittely käyttäen niitä arvoja, jotka muuttujat saivat.

Mitä sitten tapahtuu, jos kävijä valitsee jotain muuta kuin "Polle" tai "Matador IX"? Jos muuttujan $hevonen arvo on vaikkapa "Milton", sivu näyttää seuraavalta:

Milton on rodultaan ja sukupuoleltaan . Milton on mukava hoitaa ja ratsastaa. Milton kilpailee kouluratsastuksessa tasolla .

$hevonen muuttui siis Miltoniksi, mutta $rotu, $sukupuoli ja $koulutustaso saivat arvoikseen tyhjän merkkijonon eivätkä siis näy sivulla. Jos ne on määritelty aiemmin koodissa, niiden arvoiksi jää se, mitä niihin on viimeeksi määritelty. Joka tapauksessa sivu on virheellinen. Tällaiseen tapaukseen täytyy varautua. Se käy helposti if:iin yhdistettävällä else-lauseella. Toimintalogiikka on tällainen:

if (ulkona sataa)
{ ota sateenvarjo }
else
{ älä ota sateenvarjoa }

Else kertoo siis, mitä tehdään, jos if:n ehto ei täyty. Tässä tapauksessa haluamme siis jotain tämäntapaista:

<?php
  if ($hevonen == "Polle") {
  $rotu = "suomenhevonen";
   $sukupuoli = "ori";
   $koulutustaso = "he A";

echo "$hevonen on rodultaan $rotu ja sukupuoleltaan $sukupuoli. $hevonen on mukava hoitaa ja ratsastaa. $hevonen kilpailee kouluratsastuksessa tasolla $koulutustaso.";

  }

else {

echo "Tallilla ei ole hevosta nimeltä $hevonen.";

} ?>


Nyt tarkistettiin kuitenkin vasta Pollen tiedot. Seuraavaksi lisätään mukaan myös Matador IX. Koodin on tarkoitus toimia seuraavasti: ensin tarkistetaan, onko $hevonen Polle. Jos on, tulostetaan Pollen tiedot. Jos $hevonen ei ole Polle, luodaan uusi if-lause, jossa tarkistetaan, onko $hevonen Matador IX. Jos on, tulostetaan sen tiedot. Jos $hevonen ei ole myöskään Matador IX, tulostetaan virheilmoitus.

<?php
   if ($hevonen == "Polle") {
   $rotu = "suomenhevonen";
	$sukupuoli = "ori";
	$koulutustaso = "he A";

echo "$hevonen on rodultaan $rotu ja sukupuoleltaan $sukupuoli. $hevonen on mukava hoitaa ja ratsastaa. $hevonen kilpailee kouluratsastuksessa tasolla $koulutustaso.";

}

 else {

if ($hevonen == "Matador IX") {
   $rotu = "trakehner";
	 $sukupuoli = "ruuna";
	 $koulutustaso = "GP";

echo "$hevonen on rodultaan $rotu ja sukupuoleltaan $sukupuoli. $hevonen on mukava hoitaa ja ratsastaa. $hevonen kilpailee kouluratsastuksessa tasolla $koulutustaso.";
   }

else {

echo "Tallilla ei ole hevosta nimeltä $hevonen.";

}

 } ?>


Meepu on muokannut viestiä: 09.10.2008 - 22:31

0

#2 Jäsen ei ole paikalla   körppis 

  • oma persoonansa.
  • PipPipPipPipPip
  • Ryhmä: Jäsen
  • Viestejä: 354
  • Liittynyt: 03.12.06

Lähetetty 19.10.2008 - 11:22

johan selkeni! itse olen googlen kautta yrittänyt oppia PHP:ta, mutta en ole älynnyt yhtään. Tämä auttoi ja paljon, kiitos!
Posted Image
0

#3 Jäsen ei ole paikalla   Mewy 

  • Jäsen
  • PipPipPipPipPip
  • Ryhmä: Jäsen
  • Viestejä: 2 256
  • Liittynyt: 01.01.05

Lähetetty 18.12.2008 - 18:22

onko jotain tehtävissä, jos tietokone ei tue php:tä?
0

#4 Jäsen ei ole paikalla   Meepu 

  • Auktoriteetti
  • PipPipPipPipPip
  • Ryhmä: Jäsen
  • Viestejä: 3 776
  • Liittynyt: 25.05.04

Lähetetty 23.12.2008 - 22:41

Toki on. Tietokoneelle voi asentaa tuon aloitusviestiin linkitetyn Wampserverin (mikäli koneessasi on Windows), joka asentaa koneelle Apache-palvelimen, PHP-tuen, MySQL-tietokannan ja pari sen hallintaan tarkoitettua ohjelmaa.

Muista vain asentaessasi katsoa, minkä kansion asetat localhost-kansioksi. Jos asetat localhostiksi kansion C:/phpsivut, pääset tiedostoon C:/phptiedostot/index.php käsiksi kirjoittamalla selaimesi osoitekenttään http://localhost/index.php.
0

#5 Jäsen ei ole paikalla   Mewy 

  • Jäsen
  • PipPipPipPipPip
  • Ryhmä: Jäsen
  • Viestejä: 2 256
  • Liittynyt: 01.01.05

Lähetetty 17.01.2009 - 14:01

Latasin koneelleni Wampserverin, mutten ymmärrä sen toimintaperiaatetta. Miten .php-päätteiset sivut saa avattua ja millä ohjelmalla? Tulisiko esimerkiksi index.php:n avautua ie:llä samalla tavalla kuin index.html:n?
0

#6 Jäsen ei ole paikalla   Mirja R. 

  • Jäsen
  • PipPipPipPipPip
  • Ryhmä: Jäsen
  • Viestejä: 42
  • Liittynyt: 12.10.07

Lähetetty 17.01.2009 - 14:48

Mistä tietää ettei kone tue php:tä? Siitäkö ettei se avaa .php -päätteisiä sivuja?
Who knows other people, is unprejudiced. Who knows herself, is clever.
0

#7 Jäsen ei ole paikalla   Meepu 

  • Auktoriteetti
  • PipPipPipPipPip
  • Ryhmä: Jäsen
  • Viestejä: 3 776
  • Liittynyt: 25.05.04

Lähetetty 18.01.2009 - 23:23

PHP-sivut saa avautumaan näin:

1. Käynnistä WAMPServer.
2. Tarkista, missä kansiossa PHP-sivujen pitää olla. Klikkaa tilarivistä WAMPServerin kuvaketta ja valitse "www directory", jolloin kansio avautuu.
3. Siirrä PHP-sivut em. kansioon, elleivät ne ole jo siellä.
4. Avaa haluamasi selain.
5. Tarkista haluamasi sivun nimi. (Esim. index.php)
6. Kirjoita selaimen osoiteriville http://localhost/sivunnimi. (Esim. http://localhost/index.php) ja paina enteriä.

Jos koneessa on Windows, mutta et ole erikseen asentanut siihen PHP-tukea (/WAMPServeriä), se ei tue PHP:tä.
0

#8 Jäsen ei ole paikalla   Pullan 

  • jäsen kai...
  • PipPipPipPipPip
  • Ryhmä: Jäsen
  • Viestejä: 104
  • Liittynyt: 10.10.09

Lähetetty 07.02.2010 - 16:42

Minä en edes tiedä mikä / mitä PHP on? :'D
Give a man a fish and you feed him for a day.
Teach a man to fish and you feed him for a lifetime.
Hatama, Aakkos-Saarelaiset, http://www.hevoset.com/keskustelu/index.ph...&hl=fjellby. Käymään :)
0

#9 Jäsen ei ole paikalla   Minority 

  • wnb british
  • PipPipPipPipPip
  • Ryhmä: Jäsen
  • Viestejä: 16 811
  • Liittynyt: 10.05.05

Lähetetty 11.02.2010 - 12:45

^ http://www.menthal27.net/artikkelit/helpot...n-avulla-osa-1/
0

Kerro aiheesta muille:


Sivu 1 / 1
  • Et voi aloittaa uutta aihetta
  • Et voi vastata tähän aiheeseen