Ensinnäkin pahoittelut huonosta otsikoinnista, en osannut nimetä tätä kun en oikein tiedä, että mitä etsin.
Olen siis rakentelemassa sivujani. Olen jakanut sivun kolmeen osaan, yla.php, itse sisältöön ja ala.php.
Minulla on kuitenkin ongelma, kyseisellä tavalla yla.php:hen lukeutuisi kaikki grafiikat (jolloin joka sivulla näkyisi samat grafiikat). Tavoite kuitenkin olisi saada kolmella eri sivulla (laukkahevoset, ratsuhevoset, ravihevoset) näkymään eri "logo" (ratsut_otsikko.jpg, ravi_otsikko.jpg, laukka.otsikko.jpg) sekä kuva (info_ratsut.jpg, info_ravi.jp, info_laukka.jpg).
Olisiko siis mahdollista, että jokin koodi tunnistaisi millä sivulla nyt ollaan (tajuaisi sisältösivun "arvon" : onko ratsu-, laukka- vai ravihevos-sivulla) ja käyttäisi kyseiselle sivulle tarkoitettuja grafiikoita?
----
Lisäksi olen miettinyt, että onko mahdollista tehdä lomaketta, joka lisää ölähetysö nappia painaessa lomakkeen sisällön suoraa samalle sivulle hieman alemmas. Uskon ettei tuossa ole niinkään haastetta, mutta lomakkeen sisältö (vain yksi laatikko, johon teksti kirjoitetaan) sisältö tulisi jakaa erilaisten otsikoiden alle?
Virtuaalitalleilla järjestetään kisoja - leikitään tällä kertaa, että järjestän vaikka estekisat. Kisoissani on vaikkapa kolme eri luokkaa:
Lk 1. 100cm
Lk 2. 120cm
Lk 3. 150cm
Osallistujat saavat osallistua rajatulla hevosmäärällä vaikka kaikkiin luokkiin. Lomakkeella tulee ilmoittaa seuraavat tiedot:
Luokan numero, johonalle listatut hevoset osallistuvat, sekä ratsastaja (ratsastajan tunnus) ja hevosen nimi. Yleinen ilmoitustapa kyseiselle litanjalle on seuraava:
Lk 1.
Heppu (VRL-0000) – Heppa Hoppunen
Heppu (VRL-0000) – Poni Poninen
Lk 2.
Heppu (VRL-0000) – Heppa Hoppunen
Heppu (VRL-0000) – Poni Poninen
Lk 3.
Heppu (VRL-0000) – Rautias Risto
Voiko jollakin koodilla määrittää, että tietyn "otsikon" alla oleva sisältö lisätään tiettyyn kohtaan, vai onko luotava esimerkiksi eri lomakelaatikot jokaiselle luokalle (se olisi ongelmallista, sillä luokkia voi olla vaikkapa 12). Lisäksi lisättyä sisältöä pitäisi pystyä poistamaan.
Kuten ehkä huomaatte, en ole mikään ohjelmoija hirmu, hyvä kun edes olen tajunnut miten php-koodi yleensä muodostetaan. Eli helpointa olisi varmaankin joku kädestä pitäen -opastus tai vaikkapa linkki jollekkin sivulle mistä löytyisi sopiva koodi käyttööni. Kiitos tuhannesti sille, joka pystyy minua auttamaan :)
Jos et tajunnut mitä tarkoitin, kysy!
muokk// miten musta tuntuu, että lähetin tämän vahingossa väärälle "palstalle", oikohan kuulunut tuonne ohjelmointi & kotisivut -alueelle... (mod. korjasi asian)
<?php # index.php # Tarkistetaan onko $_GET parametri "sivu" asetettu ja jos ei niin asetetaan # se etusivuksi. Esimerkissa muuttujan kayttoa ja linkin muodostaminen... # Lue, google, php.net ja kysy jos ei selkiä. # Koodi testaamatonta ja suoraan selaimeen kirjoitettu. ob_start(); if(isset($_GET['sivu'])){ $NYKYINEN_SIVU = $_GET['sivu']; }else{ $NYKYINEN_SIVU = 'etusivu'; } ?> <html> <head> <title><?php echo $NYKYINEN_SIVU;?></title> <style> @import url('perustyyli.css'); @import url('<?php echo $NYKYINEN_SIVU . '.css';?>'); </style> </head> <body> <p>Nykyinen sivu: <?php echo $NYKYINEN_SIVU;?></p> <a href="index.php?sivu=etusivu">etusivu</a><a href="index.php?sivu=ratsuhevoset">ratsuhevoset</a> </body> </html>
/* perustyyli.css */ p{ background-color: #acacac; } /* etusivu.css */ p{ font-size: .86em; } /* ratsuhevoset.css */ p{ font-size: 1.26em; }
Kysy, jos jäi vielä jotain epäselvää tämän hyvin epäselvän esimerkin jälkeen.
EDIT: Esimerkin ymmärtämisen kannalta merkittävä unohdus. .css liittäminen nykyiseen sivuun tyylitiedoston määrittämisessä.
(Mod. huom: Eri koodit eri kooditageihin!)
merlin kirjoitti:
Olisiko siis mahdollista, että jokin koodi tunnistaisi millä sivulla nyt ollaan (tajuaisi sisältösivun "arvon" : onko ratsu-, laukka- vai ravihevos-sivulla) ja käyttäisi kyseiselle sivulle tarkoitettuja grafiikoita?
Saat sivun nimen selville näin:
<?php $sivu = $_SERVER['REQUEST_URI']; echo $sivu; ?>
Tämän perusteella voit valita esim. näytettävän kuvan:
Huomaa myös, että esitetyssä esimerkissä on XSS-aukko.
Suosittelen tutustumaan tähän koodivinkkiin.
Muokkaus. Tarkoitin siis jimi-kimin esimerkkiä.
<?php // ... $sivut = array("etusivu", "ratsuhevoset"); if(!in_array($NYKYINEN_SIVU, $sivut)){ die("404 - Page not found.."); } ?> <html>...
Ellei nyt sitten jäänyt kiireessä jotain oleellista huomaamatta.
En mie saa noita toimimaan. Ongelmia tulee, kun näille sisältösivuille (index.php, ratsut.php, laukka.php, ravi.php) ei tule <html>, <head>, <style> ja <body> tageja, koska ne määritetään jo yla.php. Eli en voi tota tyyliä määrittää missään. Ja siis tämä tuossa jimi-kimin ohjeessa.
Antin ohjeessa taasen koodien sijoituspaikat hiukan hakusessa. Ilmeisesti tuo ensimmäinen joka sivun alkuun, pitääkö siitä muokata jotain? Ja tuo toinen sinne yla.php:hen vai?
Tässä tulee taas ilmi kuinka avuton oon tämmösten kanssa x)
Helpointa kai olisi, jos pääsisit sivun sisältöön jotenkin käsiksi..
# pohja.php <html> <head> <title><?php echo $SIVU_OTSIKKO;?></title> </head> <body> <?php echo $SIVU_SISALTO;?> </body> </html>
<?php # index.php ob_start(); $SIVU_OTSIKKO = ""; $SIVU_SISALTO = ""; $NYKYINEN_SIVU = $_SERVER['REQUEST_URI']; if($NYKYINEN_SIVU == "ratsut.php"){ $SIVU_OTSIKKO = "RATSUT OTSIKKO"; $SIVU_SISALTO = "RATSUT SIVUN SISALTO"; } # Voit jatkaa kaikki sivut else ifillä.. else{ $SIVU_OTSIKKO = "Etusivu"; $SIVU_SISALTO = "Etusivun sisalto"; } include_once('pohja.php');
Tässä taas yksi esimerkki miten tämä hoituu todella rumasti, mutta saat varmaan idean poimittua tuosta. Putkan muilta käyttäjiltä saat varmaankin kattavammat ohjeet..
jimi-kimi, ongelma on edelleen siinä, että en osaa asentaa tuota sivuilleni x) Kun en tiedä mitä minnekkin pitäisi tunkea. Laitanko tuohon pohja.php;hen ns. ulkoasun ilman sisältö ja index.php;hen tarkoitettu koodi tulee jokaiselle "sisältö"-sivulle?
merlin kirjoitti:
jimi-kimi, ongelma on edelleen siinä, että en osaa asentaa tuota sivuilleni x) Kun en tiedä mitä minnekkin pitäisi tunkea. Laitanko tuohon pohja.php;hen ns. ulkoasun ilman sisältö ja index.php;hen tarkoitettu koodi tulee jokaiselle "sisältö"-sivulle?
Tuossa on ideana, että on vain kaksi tiedostoa, toinen on sivupohja ja toisessa kaikki sisältö. Mielestäni siinä ei ole mitään järkeä, koska se vain hankaloittaa sivujen ylläpitoa.
Itse tekisin sen näin:
index.php
<?php $sivu = $_GET ['sivu']; $sivut = array ("etusivu.php", "takasivu.php", "sivu2.php"); if (!in_array ($sivu, $sivut)) $sivu = "etusivu"; ?> <html> <!-- tähän header --> <body> <img src="logo<?php echo $sivu; ?>.png"> <?php include ($sivu); ?> </body> </html>
Eli on vain yksi sivu, jossa on ulkoasu, ja siihen liitetään halutun sivun sisältö. Linkit ovat tässä tapauksessa muotoa index.php?sivu=sivu2.php .
-tossu-, eli siis jokaisen sivun sisältö lisätään samalle sivulle? Tuo on minun tapauksessani kyllä täyttä itsemurhaa x) Sisältöä tulee roppakaupalla ja varsinkin hevosten sivut tulisi todella vaikeaksi muokata (hevosia saattaa tulla jopa 100).
Ehkä kuitenkin toteutan tämän usemmalla eri yla.php:lla. Nyt siis enää apua tuohon toiseen pulmaan :)?
merlin kirjoitti:
-tossu-, eli siis jokaisen sivun sisältö lisätään samalle sivulle? Tuo on minun tapauksessani kyllä täyttä itsemurhaa x) Sisältöä tulee roppakaupalla ja varsinkin hevosten sivut tulisi todella vaikeaksi muokata (hevosia saattaa tulla jopa 100).
En tiedä käsitikö jotain tekstistäni väärin, mutta jos käytät tuota minun ratkaisuani, niin kaikki sisältö ei tule samalle sivulle.
-tossu-, ilmeisesti käsitin :D hetki pieni, yritän sisäistää tota (ja kokeilla käytännössä) ->
muokkaus! -tossu- kiitos, kiitos, kiitos! Kerrankin joku ohje, jonka tajusin (mitä nyt aluksi pientä haparointia). Ainoo ongelma on, että kun tuolla alussa on määritetty nimet .php päätteisiksi, niin kuvien osoitteet ei toimi (muutakuin tuo paasivu_otsikko.jpg ja info_paasivu.jpg), koska se .php änkee myös mukaan osoitteisiin?
Lisäksi toi sisalto ei näy/jotain virheitä koodissa.
Tämä: <?php include ($sivu); ?>
täksi: <?php include ("$sivu.php"); ?>
macro, ei vaikuta mitään. Ongelma taitaa olla siinä, että
<?php $sivu = $_GET ['sivu']; $sivut = array ("[l]paasivu.php[/l]", "ratsut.php", "ravi.php", "laukka.php"); if (!in_array ($sivu, $sivut)) $sivu = "[l]paasivu[/l]"; ?>
boldatut on erinimiset vai mitä? Koska paasivu.php'n sisältö ei näy, mutta kuvat toimii. Toisin kuin ratsut.php, ravi.php ja laukka.php kuvat ei toimi, mutta sisältö toimii?
Mod. lisäsi kooditagit
merlin kirjoitti:
macro, ei vaikuta mitään. Ongelma taitaa olla siinä, että
...
boldatut on erinimiset vai mitä?
Koodissani on näköjään kirjoitusvirhe. Ota .php pois myös sieltä arraysta ja muuta include <?php include ("$sivu.php"); ?>:ksi.
Nyt paasivu.php sisältö ja kuvat näkyy, mutta linkkejä kokeillessa mikään sivulla ei muutu (ensimmäisen väliotsikon, logon ja isoimman kuvan pitäisi muuttua ravi, laukka ja ratsut sivuja painaessa).
merlin kirjoitti:
Nyt paasivu.php sisältö ja kuvat näkyy, mutta linkkejä kokeillessa mikään sivulla ei muutu (ensimmäisen väliotsikon, logon ja isoimman kuvan pitäisi muuttua ravi, laukka ja ratsut sivuja painaessa).
Myös linkeistä pitää ottaa .php lopusta pois.
Nyt toimii, kiitos aivan superpaljon :) ! Olen ollut vaikea "asiakas" kun ei oikein php vielä ole hallussa. Nyt enää tuo tulostus-juttu :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.