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"; ?>
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.
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" » <a href="index.php?sivu=etusivu&PHPSESSID=b975398dedd24d6ad0d5d0f4644f8 Line 34, column 40: general entity "PHPSESSID" not defined and no default entity » <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 » <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 » <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 » <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).
Muistaakseni &-merkki piti korvata html entiteetillä. &-merkkiä vastaava taisi olla &
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ä?
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&PHPSESSID=b975398dedd24d6ad0d5d0f4644f8">linkkiteksi</a>
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 :)
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ä?
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.
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'
Aihe on jo aika vanha, joten et voi enää vastata siihen.