Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP kuvagalleria ongelma

EterAnal [14.06.2006 15:59:19]

#

Moro,

Katselin tuolta koodivinkeistä kuvagalleriantekoa (https://www.ohjelmointiputka.net/koodivinkit/23929-php-kuvagalleria) ja olen nyt muokkaamassa kyseistä galleriaa omille sivuille sopivaksi. Kysyisin paria kohtaa.
Koodi on nyt "toiminnassa" osoitteessa: http://kokko.web.cern.ch/kokko/versio2/php/gallery.php

Miten saan nuo hakemistopolut poistettua näkyvistä niin, että jäljelle jää vain vuosiluvut? Juuri huomasin, että noiden vuosilukujen alla pitäisi olla alikansioita, niitä ei jostain syystä näy. Ne olisi hyvä näkyä. Siitä varmaan johtuu sekin että skripti ilmoittaa ettei hakemistoa löydy.

Tuossa alla vielä liitteenä palanen skriptiä:

<?php include "../header.htm"; ?>
<?php include "asetukset.php"; ?>
<?php
echo "<style type=\"text/css\">";
if (isset($t_wid)) echo "img { width: {$t_wid}px; }\n";
else if (isset($t_hei)) echo "img { height: {$t_hei}px; }\n";
echo "</style>";
?>
<h1>Gallery</h1>

<?php
// ellei hakemistoa ole annettu, niin listataan mahdollisuudet
if (!isset($_GET["d"])) {
    echo "<p>Valitse hakemisto:</p>\n<ul>\n";
    $hakit = glob("../image/orig/*", GLOB_ONLYDIR);
    foreach ($hakit as $hak)
    echo "\t<li><a href=\"?d=$hak\">$hak</a></li>\n";
    echo "</ul>\n";
?>
<?php include "../footer.htm"; ?>
<?php
    die();
}

?>
<?php include "../footer.htm"; ?>
<?php

$hak = $_GET["d"];
// hakemisto olemassa ja oikeassa paikassa
if (!is_dir($hak)
        || dirname($hak) != "."
        || realpath($hak) == realpath(".")
        || $hak == "..") die("<p>Annettua hakemistoa ei loydy!</p>");

echo "<h2>$hak</h2>\n";

Mod. edit: kooditagit

Merri [14.06.2006 17:57:44]

#

En ole varma nyt tähän hätään, mutta basename taisi kertoa alimman osan hakemistosta suoraan:

echo "\t<li><a href=\"?d=$hak\">".basename($hak)."</a></li>\n";

Blaze [14.06.2006 17:59:32]

#

Vuosiluvun voinee olettaa aina olevan neljä merkkiä, joten tulostaessa (echo "\t<li><a href=\"?d=$hak\">$hak</a></li>\n";) ottaa tuon koko $hakin sijaan neljä viimeistä merkkiä (https://www.ohjelmointiputka.net/hak/?kieli=PHP­&nimi=substr)

EterAnal [14.06.2006 18:54:11]

#

Kiitoksia, näyttää toimivan tuo basename-funktio. Tuokin on kiinnostava huomio tuo vuosiluku-kikka.

Olisko kertoa vinkkiä miten saan jostakin php-skriptistä vietyä muuttujan arvon johonkin toiseen skriptiin?

Sitten tuli toinen mielenkiintoinen ongelma:
http://kokko.web.cern.ch/kokko/versio2/php/gallery/gallery.php
Mihin se hukkaa headerin stylesheetin kun includoin header.php:n tuohon gallery.php:hen?
CSS-tiedosto sijaitsee yhtä kansiota ylempänä ja CSS-kansiossa jos vertaa tähän header.php tiedostoon. Onko tuo polkumäärittely ihan oikein?

<link rel="stylesheet" media="all" type="text/css" href="../css/stylesheetmain.css"/>

Blaze [14.06.2006 20:33:25]

#

EterAnal kirjoitti:

CSS-tiedosto sijaitsee yhtä kansiota ylempänä ja CSS-kansiossa jos vertaa tähän header.php tiedostoon.

Selain vaan kun ei vertaa sitä header.php:n, selain ei edes tiedä mokoman olemassaolosta.

EterAnal kirjoitti:

Onko tuo polkumäärittely ihan oikein?

Ei, pitää mennä yksi ylemmäksi. Kaikki polut ovat suhteellisia siihen dokumenttiin, johon ne liitetään.

Vastaus

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

Tietoa sivustosta