Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Miten PHP pistetään HTML:n sekaan

Sivun loppuun

MikSor [31.05.2007 13:11:10]

#

Vasta-alkajana kysyn näinkin helppoa kysymystä teiltä, jotka jo ymmärtävät php:sta jotain. Elikkä mihin kohtaan pistän php koodin html koodin sekaan, ihan minne vaan? Vai pitääkö olla joku tietty kohta ja voinko, vaikka tehdä html koodista php kieltä, jos pistän vain ylös ja alas näin (ylös)<?php ja (alas)?>

Antti Laaksonen [31.05.2007 13:22:00]

#

Jos PHP-koodi tulostaa jotain, se pitää laittaa siihen kohtaan, johon tulostus halutaan. Seuraavassa PHP tulostaa sekä pari HTML-tagia (lihavoinnin aloitus ja lopetus) että laskun tuloksen.

Laskun tulos on:
<?php
echo "<b>" . (123 * 456) . "</b>";
?>

Muuten PHP-koodin voi sijoittaa yleensä mihin tahansa kohtaan sivulla, ja se voi olla sivulla monessa erillisessä osassa. Poikkeuksena on esim. evästeiden lähetys, joka täytyy tehdä heti sivun alussa.

tgunner [31.05.2007 13:22:27]

#

Yleensä sitä kirjoitetaan <body>-tagien väliin.

<html>
    <body>
        <?php
            echo ":--D";
        ?>
    </body>
</html>

Cornix [31.05.2007 16:05:04]

#

tgunner kirjoitti:

Yleensä sitä kirjoitetaan <body>-tagien väliin.

...mutta esimerkiksi head-tagin alla olevaan title-tagiinkin voidaan haluta tekstiä PHP:llä tulostettavaksi:

<html>
<head>
<title><?php echo $sivuston_otsikko; ?></title>
</head>
<body>
<?php
echo '<h1>' . $sivuston_otsikko . '</h1>';
?>
</body>
</html>

tai ihan mihin kohtaan tahansa sivua! Evästeet (cookies) ja headerit tosiaan ovat ainoita, joita ennen ei saa tulostaa yhtäkään merkkiä. HTML-headerit kun lähetetään aivan aluksi selaimelle.

MikSor [31.05.2007 19:23:11]

#

Hyvä nyt, jos jotain ymmärsin. Entä jos joku käviälaskuri samanlailla?

Lumpio [31.05.2007 20:49:28]

#

Hyvä idea on tehdä kaikki prosessointi ennenkuin tulostaa mitään ja sitten kun kaikki logiikka on hoidettu niin vasta tulostaa jotain. Tällöin vältetään esim. em. headeriongelmat, ja tyyliin virheiden raportointi jne helpottuu. (Helppo vaan päättää tulostaa virhesivu eikä kesken tulostuksen yrittää sitä tehdä, tulee purkka jos niin tekee)

Matso [01.06.2007 09:28:35]

#

Näin asiaa sivuten. Viitsisikö joku hieman valaista mitä tuo <?php ob_start(); ?> tekee itseasiassa, kun sen laittamalla voi asettaa headereita ja cookieita missä kohtaa tahansa.

Lebe80 [01.06.2007 09:56:02]

#

Se puskuroi tulosteen. Eli echoilla yms. tulostamalla tietoa ei lähetetäkään vielä käyttäjän selaimeen, vaan tuloste lähetetään vasta esim. ob_flush() -funktiolla.

ja siis koska käyttäjälle ei ole tulostettu mitään, voidaan edelleen muokata otsaketietoa (sessioita, keksejä yms.).


Sivun alkuun

Vastaus

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

Tietoa sivustosta