Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Linkin määrittely sivulle, jota ei fyysisesti ole olemassa?

theodorakis [10.08.2006 20:02:46]

#

Probleemana on, miten linkittää sivulle, joka luodaan "lennosta". Miten/Missä määritellään osoite, jota ei fyysisesti ole olemassa?

Taustaideana tässä on, että olen rakennellut taulukon, johon haetaan MySQL-kannasta lista kaupungeista. Kuhunkin kaupunkiin liittyy lyhyt kuvaus kyseisestä kohteesta ja linkki varsinaiseen kaupungille omistettuun sivuun.

PHP ja MySQL yhdistelmällä saisin siis aikaiseksi esim. taulukon:

| Kaupunki: | Selite: | Asukasluku: |
+-----------+----------------+-------------+
| Helsinki | Pääkaupunkimme | 500000 |
+-----------+----------------+-------------+
| Kuopio | Kalakukkoi | 50000 |
+-----------+----------------+-------------+
| Rovaniemi | RoPS:n koti | 45000 |


Jos kyse olisikin perus-html:stä, niin ymmärtäisin ja osasinkin tehdä taulukkoon linkin noihin kaupunkikohtiin tyyliin:

<th><a href=".$linkki.">".$nimi."</a></th> jossa siis $linkki on kiinteä osoite esim. Helsinki.htm, joka olisi tallennettuna tietokantaan.

Mutta tämä ratkaisumallihan tarkoittaisi samalla sitä, että joutuisin rakentamaan jokaista kaupunkia varten oman .htm -tiedoston. Tuntuu vähän hölmöltä. Mutta jos/kun nuo tarkemmat tiedot kaupungista tallennettaisiin MySQL-kantaan ja PHP:llä väännetään sivu lennosta, niin miten määritellään linkki kyseiselle sivulle, jota ei oikeastaan fyysisesti ole edes olemassa? Ja samalla herää kysymys, että voiko tällaiseen linkkiin viitata suoraan nettiselaimessa?

Toivottavasti ongelman ytimestä joku sai kiinni - en välttämättä osannut asiaani riittävän selvästi ilmaista. Olen yrittänyt noita PHP-oppaita tutkiskella, mutta joko A) en osaa hakea oikealla termillä tai B) en ole ymmärtänyt nähneeni jo ratkaisumallia tai C) lähestymistapani ei ole ylipäätään järkevä.

Kaikennäköinen lisätieto / info tai linkki mistä asiaan löytyy ohjeita kiinnostaa. Kiitoksia vaan vaivannäöstä jo etukäteen!

Antti Laaksonen [10.08.2006 20:08:21]

#

Ratkaisu on, että osoitteet muodostetaan tähän tapaan:

kaupunki.php?nimi=Helsinki
kaupunki.php?nimi=Tukholma
kaupunki.php?nimi=Oslo

Sivun osoite on joka kerta sama, ainoastaan kysymysmerkin jälkeen tuleva muuttuja vaihtuu.

Kaupungin nimen saa selville PHP-tiedostossa (kaupunki.php) näin:

<?php
echo "Valittu kaupunki: " . $_GET['nimi'];
?>

Siis osoitteen perään laitettu muuttuja ilmestyy $_GET-taulukkoon. Tästä muodostetaan edelleen SQL-kysely.

Tällaisen osoitteen voi mainiosti pistää linkiksi, ja nettiselain hyväksyy sen mukisematta. Katsopa vaikka tämän sivun osoitetta. :)

theodorakis [10.08.2006 21:05:41]

#

Ohoh. Olipas se helppoa! Kiitoksia. Mutta jatkokysymys vielä, johon törmäsin samantien kun kokeilin tuota esimerkkiäsi käytännöss: nimittäin välilyönnit? Jos minulla on vaikkapa 'Mikkelin maalaiskunta', niin miten sen kanssa pitää toimia?

Blaze [10.08.2006 21:16:58]

#

Minkä tahansa merkin voi URL:ssä eskapoida prosenttimerkin ja sen Unicode-numeron (heksana) avulla. Välilyönti on siis %20

kayttaja-2791 [10.08.2006 21:44:31]

#

Tämän tekee PHP:n funktio urlencode. Uudet selaimet osaavat kyllä muuttaa nuo jo automaattisestikin.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta