Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Sivu ei näy operalla

Sivun loppuun

TETRIS [25.08.2004 16:06:43]

#

Minulla on pieni ongelma kuvagallerian toimivuuden kanssa Operalla. Sivu toimii ihan kunnolla IE:llä, mutta Operalla tulee vain keskelle ruutua boxi jossa lukee Image. HTML ulostulo on tällainen :

<html>
<head>
<title>NumSoft - Kuvat</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../style.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td valign="middle" align="center">

<img src="../img/otsikko.gif" border="0" alt="NumSoft" width="235" height="45">
<br>
<br>

		<table width="550" height="267" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td height="22" class="otsikko-vieri">&nbsp;</td>
        <td class="otsikko-vieri">&nbsp;</td>
        <td class="otsikko" valign="middle" align="center"><b>Kuvat</b></td>
        <td class="otsikko-vieri">&nbsp;</td>
        <td class="otsikko-vieri">&nbsp;</td>
      </tr>
      <tr>
        <td height="22" class="vasen">&nbsp;</td>
        <td colspan="3" class="norm" valign="middle" align="center"><a href="../index.php?sivu=uutiset">Uutiset</a> |
<a href="../index.php?sivu=jasenet">Jäsenet</a> |
<a href="../index.php?sivu=kuvat">Kuvat</a> |
<a href="../index.php?sivu=linkit">Linkit</a> |
<a href="../index.php?sivu=admin">Ylläpito</a></td>
        <td class="oikea">&nbsp;</td>
      </tr>
      <tr>
        <td height="187" class="vasen">&nbsp;</td>
        <td colspan="3" class="keski" valign="top" align="left">

Tänne pistämme aina silloin tällöin kuvia jäsenistä, aseista ja pelipaikoista.<br><br>

<center>

<a href="kuva_1.jpg" target="_blank"><img src="thmb/tn_kuva_1.jpg" alt="Klikkaa tästä suurentaaksesi kuvan" border="1"></a><br><br>
</center>

		</td>
        <td class="oikea">&nbsp;</td>
      </tr>
      <tr>
        <td height="22" class="vasen">&nbsp;</td>
        <td colspan="3" class="norm" valign="middle" align="center">36 </td>
        <td class="oikea">&nbsp;</td>
      </tr>
      <tr>
        <td width="22" height="22" class="footer">&nbsp;</td>
        <td width="75" class="footer">&nbsp;</td>
        <td width="361" valign="middle" align="center" class="footer2"><b>[c] NumSoft 2004</b></td>
        <td width="75" class="footer">&nbsp;</td>
        <td width="23" class="footer">&nbsp;</td>
      </tr>
    </table>

	</td>
  </tr>
</table>
</body>
</html>

ja PHP koodi tällainen :

<?php $otsikko = "Kuvat"; ?>
<?php ob_start() ?>
<html>
<head>
<title>NumSoft - Kuvat</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../style.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td valign="middle" align="center">

<img src="../img/otsikko.gif" border="0" alt="NumSoft" width="235" height="45">
<br>
<br>

		<table width="550" height="267" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td height="22" class="otsikko-vieri">&nbsp;</td>
        <td class="otsikko-vieri">&nbsp;</td>
        <td class="otsikko" valign="middle" align="center"><b><?php echo $otsikko; ?></b></td>
        <td class="otsikko-vieri">&nbsp;</td>
        <td class="otsikko-vieri">&nbsp;</td>
      </tr>
      <tr>
        <td height="22" class="vasen">&nbsp;</td>
        <td colspan="3" class="norm" valign="middle" align="center"><?php include('menu.php'); ?></td>
        <td class="oikea">&nbsp;</td>
      </tr>
      <tr>
        <td height="187" class="vasen">&nbsp;</td>
        <td colspan="3" class="keski" valign="top" align="left">

Tänne pistämme aina silloin tällöin kuvia jäsenistä, aseista ja pelipaikoista.<br><br>

<center>

<?php

ob_start();

$polku = getcwd(); // Hakee hakemiston polun
$thmb = "thmb/";

    if(is_dir($polku)) {
    if($dh = opendir($polku)) {

        while(($file = readdir($dh)) !== false) {
        if(is_file($file)) {

        list($width, $height, $type, $attr) = getimagesize($file); // Listaa kuvan tiedot

        $tiedostopaate = substr(strrchr($file, '.'), 1);

        $tiedostonkoko = filesize($file) / 1024; // Muuttaa kuvan kooksi jotain kilotavua
        $tiedostonkoko = round($tiedostonkoko, 2); // Antaa 2 lukua desimaalipisteen jälkeen

        $paatteet = array("jpeg","jpg","png"); // Taulukko josta tarkistetaan onko kyseinen kuva sopiva

        if(in_array($tiedostopaate,$paatteet)) // Tiedostopäätteen tarkistus

       if($file==true) {

     // Määritellään pikkukuvan mitat
     $thumb_w = 100;
     $thumb_h = 80;

header("Content-type: " .image_type_to_mime_type($type));

          $thumbnail = imagecreatefromjpeg($file);

          $pikkukuva =ImageCreateTrueColor($thumb_w, $thumb_h);
           imagecopyresized($pikkukuva,$thumbnail,0,0,0,0,$thumb_w,$thumb_h,$width,$height);


           //tarkistetaan onko pikkukuva kansio olemassa. Jos ei niin luodaan sellainen
          if(is_dir($thmb)) {
          imagejpeg($pikkukuva,"thmb/tn_$file");
        } else {
            mkdir("thmb", 0700);
             imagejpeg($pikkukuva,"thmb/tn_$file");
         }

               // Tulostaa pikkukuvan ruudulle
              echo "<a href=\"$file\" target=\"_blank\"><img src=\"thmb/tn_$file\" alt=\"Klikkaa tästä suurentaaksesi kuvan\" border=\"1\"></a><br><br>";
     }

   }
 }
}
        }

ob_end_flush();


?>

</center>

		</td>
        <td class="oikea">&nbsp;</td>
      </tr>
      <tr>
        <td height="22" class="vasen">&nbsp;</td>
        <td colspan="3" class="norm" valign="middle" align="center"><?php include('laskuri.php'); ?></td>
        <td class="oikea">&nbsp;</td>
      </tr>
      <tr>
        <td width="22" height="22" class="footer">&nbsp;</td>
        <td width="75" class="footer">&nbsp;</td>
        <td width="361" valign="middle" align="center" class="footer2"><b><?php include('footer.php'); ?></b></td>
        <td width="75" class="footer">&nbsp;</td>
        <td width="23" class="footer">&nbsp;</td>
      </tr>
    </table>

	</td>
  </tr>
</table>
</body>
</html>
<?php ob_end_flush() ?>

Miten saisin sivut toimimaan kunnolla Operalla?

Deewiant [25.08.2004 20:12:06]

#

Ääk, kauheaa spagetti-HTML:ää. Täydellisessä maailmassa tuo ei olisi tehty taulukoilla (ainakaan tyhjillä celleillä), ja kaikki mahdollinen olisi CSS:ssä. Mutta sellaisessahan emme elä.

No eniveis. Ongelma lienee HTML-koodissa eikä PHP:ssä, sillä PHP ulostaa samat asiat browserista välittämättä. Laitat vain sivun jonnekin, avaat sen, katsot sorsan, ja etsit tageja, joita ei ole suljettu, tjms.

ajv [25.08.2004 20:21:30]

#

Validaattori ei tuosta oikeastaan virheitä löytänyt. Kokeileppa tyhjentää Operan cache. Ainakin omalla Operalla (v. 7.5) on paha tapa jättää päivittämättä sivu, vaikka painaakin refreshiä. Sitten kun sitä rämpyttää oikeen kunnolla, niin vasta päivittää.

Edit: typo

Edit2: Hmmm... Koodin olen nähnyt jossain.

nD [25.08.2004 21:24:25]

#

Sirrry XHTML:ään

tuomas [25.08.2004 21:59:57]

#

Syy on siinä IE tulkkaa kaiken paskankin koodin ja muut selaimet eivät. IE:n koodista muistaakseni oli jossain vaiheessa 75% koodia pelkästään tuon huonon koodin tulkkausta varten. Sanalla sanoen: Hyi!

Antti Laaksonen [25.08.2004 22:29:29]

#

Kokeilin sivua IE:llä, Operalla ja Mozillalla, ja kaikilla näytti samalta. Hankala siis auttaa tämän perusteella. Onko juuri tuo yllä oleva HTML-sivu se, joka ei toimi kunnolla Operalla? Voitko laittaa jonnekin kuvankaappauksen virheellisesti näkyvästä sivusta? Kuinka uutta Operan versiota käytät?

pistemies [26.08.2004 10:22:48]

#

Miten tarkka opera on noitten meta-tagien suhteen. Pitäisikö myös seuraavat Meta-määreet olla listattu: keywords, description, author ja generator ? Content-arvoksi voi panna tyhjää ( " " ), jos ei niitä halua kertoa?
Minun sivut nimittäin näkyy Operalla ja ainoa ero tuohon ylläolevaan (ellei tuosta taulukosta löydy virhettä) on noiden metatagien listaus (+ css-filu polku, mutta tuskin opera sitä vaatii)

Ps: Miksi näin:

<?php $otsikko = "Kuvat"; ?>
<?php ob_start() ?>

Miksi ei näin:

<?php
ob_start();
$otsikko = "Kuvat";
?>

Tuossa on ainakin PHP-koodissa virhe, puuttu puolipiste.

Blaze [26.08.2004 11:06:14]

#

No kun tämä nyt ei kerran vieläkään ole ratkennut, niin annappa URL tuohon galleriaan, niin pääsee paikan päälle katsomaan.

ajv [26.08.2004 12:28:01]

#

Pekka Mansikka kirjoitti:

<?php $otsikko = "Kuvat"; ?>
<?php ob_start() ?>

Tuossa on ainakin PHP-koodissa virhe, puuttu puolipiste.

Ei ole virhettä. Knoppitietona vain, että jos koodirivejä on vain yksi, niin tulkki ei tarvitse puolipistettä ilmoittamaan komennon lopusta. "?>" ikään kuin ajaa saman asian. Sitä en tosin tiedä, enkä just pääse testaamaan, voisiko viimeiseltä riviltä aina jättää puolipisteen pois. Kuitenkin fiksuinta on aina päättää rivi puolipisteeseen, niin välttää turhat parse errorit, kun lisäilee rivejä.

makeuu [26.08.2004 13:27:27]

#

ajv kirjoitti:

Edit2: Hmmm... Koodin olen nähnyt jossain.

Mureakuhassa oli tuo koodi aika vasta :)

TETRIS [27.08.2004 19:12:05]

#

Joo.. koodi on kuhasta. Operan 7.54 versiota käytän. Galleria löytyy tuolta : www.numsoft.shyper.com/kuvat

Pitänee kokeilla tyhjentää cache...

Blaze [27.08.2004 19:30:46]

#

[blaze@sakura2 ~]$ lynx -head -dump http://www.numsoft.shyper.com/kuvat/
HTTP/1.1 200 OK
Date: Fri, 27 Aug 2004 16:26:39 GMT
Server: Apache/1.3.31 (Unix) mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwl
imited/1.4 PHP/4.3.8 FrontPage/5.0.2.2634a mod_ssl/2.8.19 OpenSSL/0.9.7a
X-Powered-By: PHP/4.3.8
Connection: close
Content-Type: image/jpeg

Lähetät HTML-tiedoston tyypillä image/jpeg. Opera toimii oikein ja yrittää näyttää sen kuvana (mikä ei tietenkään toimi, vaan tuloksena on tuo rikkinäisen kuvan merkki). IE taas ei välitä mime-tyypeistä hölkäsen pöläystä (rikkoo siis HTTP-speksejä), vaan haistelee tiedoston sisältöä, toteaa sen olevan HTML:ää ja näyttää sen sellaisena.

Säädä skriptisi lähettämään tuo HTML-tiedosto oikealla mime-tyypillä (text/html), niin oikein toimivatkin selaimet saavat sen näytettyä.


Sivun alkuun

Vastaus

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

Tietoa sivustosta