Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Sisennyksen automaattinen teko includessa

Sivun loppuun

Bagard [25.09.2004 10:42:22]

#

Eli includettavat sivut ovat tiedostoissa ilman minkäänlaista sisennystä. Onko mahdollista laittaa jokaisen rivin eteen 8:n välilyönnin verran tyhjää, että rivit olisivat samalla tasolla ennen includea olevien html-koodien kanssa? Vai kannattaako vain poistaa joka paikasta nuo sisennykset (tekee vaikeammaksi lukea)?

Ennen olen toteuttanut sen sillä tavalla, että olen laittanut includettaviin fileihin tyhjää eteen, mutta silloin muokkaus on yhtä helvettiä :)

Tuonhan pystyisi toteuttamaan sillä tavalla, että echoaa jokaisen rivin kerrallaan, ja niiden eteen se sisennys. Mutta onko yksinkertaisempaa tapaa? Tuossa php-koodi, jolla sivut liitetään index.php:hen.

<?php
if (isset($_GET["sivu"])) {
    if ($_GET["sivu"] == "valikko" or $_GET['sivu'] == "ylapalkki") {
        $virhe = "Hakemaasi sivua ei löytynyt!";
        include("sivut/virhe.php");
    }
    else {
        $sivu = "sivut/".$_GET['sivu'].".php";
        if (file_exists($sivu))
        include($sivu);
        else {
            $virhe = "Hakemaasi sivua ei löytynyt!";
            include("sivut/virhe.php");
        }
    }
}
else {
    include("sivut/uutiset.php");
}
echo "\n";
?>

Antti Laaksonen [25.09.2004 10:51:55]

#

Ei onnistu includella, mutta

Bagard kirjoitti:

Tuonhan pystyisi toteuttamaan sillä tavalla, että echoaa jokaisen rivin kerrallaan, ja niiden eteen se sisennys.

on hyvä ja toimiva ratkaisu.

Bagard [25.09.2004 13:19:27]

#

Niinpä se kai pitää tehdä, tiedätkö muuten minkä takia W3C HTML Validator valittaa seuraavaa:

Line 34, column 40: cannot generate system identifier for general entity "PHPSESSID"

&nbsp;» <a href="index.php?sivu=etusivu&PHPSESSID=b975398dedd24d6ad0d5d0f4644f8

Line 34, column 40: general entity "PHPSESSID" not defined and no default entity

&nbsp;» <a href="index.php?sivu=etusivu&PHPSESSID=b975398dedd24d6ad0d5d0f4644f8

Line 34, column 49: reference to entity "PHPSESSID" for which no system identifier could be generated

...href="index.php?sivu=etusivu&PHPSESSID=b975398dedd24d6ad0d5d0f4644f8083">Etus

Line 34, column 39: entity was defined here

&nbsp;» <a href="index.php?sivu=etusivu&PHPSESSID=b975398dedd24d6ad0d5d0f4644f8

Line 35, column 54: reference to entity "PHPSESSID" for which no system identifier could be generated

..."index.php?sivu=yhteystiedot&PHPSESSID=b975398dedd24d6ad0d5d0f4644f8083">Yhte
Line 34, column 39: entity was defined here

&nbsp;» <a href="index.php?sivu=etusivu&PHPSESSID=b975398dedd24d6ad0d5d0f4644f8

Line 36, column 46: reference to entity "PHPSESSID" for which no system identifier could be generated

...<a href="index.php?sivu=info&PHPSESSID=b975398dedd24d6ad0d5d0f4644f8083">Info


Line 34, column 39: entity was defined here

&nbsp;» <a href="index.php?sivu=etusivu&PHPSESSID=b975398dedd24d6ad0d5d0f4644f8

Eli valittaa noista PHPSESSID arvoista linkin perässä. Kun otan session_startin pois, niin tuleekin Validdia (eli ei ole noita PHPSESSID juttuja).

Akseli F [25.09.2004 13:27:34]

#

Muistaakseni &-merkki piti korvata html entiteetillä. &-merkkiä vastaava taisi olla &amp;

Bagard [25.09.2004 13:32:27]

#

Akseli F kirjoitti:

Muistaakseni &-merkki piti korvata html entiteetillä. &-merkkiä vastaava taisi olla &

Mites se onnistuu, kun enhän minä itse tuota &PHPSESSID ole tuohon laittanut? :)

Ja Antti, en usko että sittenkään onnistuu sillä tavalla, että echoaa filun sisällön. Nimittäin aika monessa niistä on PHP-koodia, jota ei ajettaisi (toisin kuin includen yhteydessä), vaan tulostettaisiin suoraan sivulle. Taitaa ainut ratkaisu olla, että poistaa sisennykset index.php:stä?

Akseli F [25.09.2004 13:43:57]

#

Bagard kirjoitti:

Akseli F kirjoitti:

Muistaakseni &-merkki piti korvata html entiteetillä. &-merkkiä vastaava taisi olla &

Mites se onnistuu, kun enhän minä itse tuota &PHPSESSID ole tuohon laittanut? :)

No jos sinä et niin kuka sitten? Vai eikö koodissasi eikö koodissasi todellakaan ole tuollaista linkkiä?
Ehkä olisi hyvä jos pistäisit hieman koodiasi näkyville.

Näin se silti toimisi:
<a href="index.php?sivu=etusivu&amp;PHPSESSID­=b975398dedd24d6ad0d5d0f4644f8">linkkiteksi</a>

Bagard [25.09.2004 14:21:58]

#

Serveri sen muuttaa, en minä. Esim. "index.php" muuttuu "index.php?PHPSESSID=päläpälä". Eli sivun alussa on session_start(), joka sitten lisää linkkeihin tuon PHPSESSID:n automaattisesti. Tämän takia en sitä itse voi muuttaa, tai ainakaan osaa :)

Akseli F [25.09.2004 15:25:57]

#

Missä vaiheessa palvelin tuon lisää? Päättelisin, että heti tietojen siirtämisen jälkeen palvelimelle, jos kerran voit nähdä tuon koodin. Oletko koettanut poistaa sitä?
Mikä palvelin on kyseessä?

Bagard [25.09.2004 16:04:19]

#

Eli kyseessä on PHP-tiedosto. Kun tiedosto avataan, niin siinä vaiheessa serveri lisää PHPSESSID:n, samalla kun tekee muutkin hommat (includet, kävijälaskuri, yms). Tiedosto kyllä pysyy samana, mutta tieto mikä annetaan selaimelle, on erilainen (kuka nyt PHP-koodia haluaisi lukea? :P).

Kyseessä on Mbnetin palvelin.

folio [25.09.2004 18:11:45]

#

Php-tulkki lisää tuon phpsessid:n automaattisesti linkkien perään, eikä muuta lähdekoodeja tjsp. Asetuksia muuttamalla saa tuon automatiikan pois mutta jos käytössä on mbnet en tiedä onko niiden muuttaminen mahdollista. Kokeilla kannattaa kuitenkin aina:

ini_set('session.use_trans_sid', 0);

& -merkin saa vaihdettua xhtml-tyyliseksi muuttamalla asetusta 'arg_separator.output'

ps. https://www.php.net/configuration.changes


Sivun alkuun

Vastaus

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

Tietoa sivustosta