Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Headeri ohjaus bugaa?

Sivun loppuun

TETRIS [06.12.2003 14:01:02]

#

Mulla on sellanen ongelma, että jos käytän tollasta koodia

$filu = file.zip;
header ("Location: ". $filu);

mun scriptissä niin saan virhe ilmotuksen :

Warning: Cannot modify header information - headers already sent by (output started at F:\Abyss Web Server\htdocs\tests\Apu\uds3.php:14) in F:\Abyss Web Server\htdocs\tests\Apu\uds3.php on line 50

niin mitenkäs ton saa korjattua?

Antti Laaksonen [06.12.2003 14:07:43]

#

Et saa kirjoittaa sivulle mitään ennen header-funktion käyttöä.

T.M. [06.12.2003 14:18:55]

#

joo ja kannattaa pistää toi file.zip juttu stringiksi näin: $filu = "file.zip";

TETRIS [06.12.2003 14:30:22]

#

Joo kokeilin jo laittaa sen stringiksi, mutta ei toimi. Johtuu varmaankin headerin ohjaus jutusta jota käytin ennen tuota koodia (siis sellanen index.php?dwl=lataa juttu) sain kumminkin toimimaan kun käytin html:n ohjausta, mutta olisi kiva saada toimimaan myös tuolla tavalla.

T.M. [06.12.2003 16:22:07]

#

$filu = "file.zip";
header("Location: $filu");

eiköhän tolla ala toimimaan....

k-mikko [06.12.2003 18:22:52]

#

lainaus:

Warning: Cannot modify header information - headers already sent by (output started at F:\Abyss Web Server\htdocs\tests\Apu\uds3.php:14) in F:\Abyss Web Server\htdocs\tests\Apu\uds3.php on line 50

Ymmärräthän, ettet voi tulostaa mitään sivulle ennen headeria.

Ei tuossa mitään muuta vikaa ole, ainoastaan se, että siellä on jotain tekstiä jo ennen header()-funktiota.

TETRIS [06.12.2003 20:47:49]

#

Jos sen saa toimimaan sillä tavalla, että kirjoittaa osoitteeksi index.php?sivu=uds&?dwl=now niin jos headerin ohjaus on tehty HTML:llä niin se hyppää heti siihen imuroitavaan filuun vaikka osoiteeksi kirjoittaisi vain index.php?sivu=uds ja jos taas se ohjaus on tehty PHP:llä niin se antaa tuon virheilmoituksen. Epäilen siis, että vika on koko imurointilaskuri scriptissä joten tässä sen koodi :

<?php
if ($sivu=="uds" && !$dwl=="now")
{
# luetaan lataukset
$file = fopen("laskuri.txt", "r");
$loadi = fread($file, filesize("laskuri.txt"));
fclose($file);

# lisätään latausta yhdellä
$loadi = $loadi + 1;

# kirjoitetaan lataus tiedostoon
$file = fopen("laskuri.txt", "w");
fputs($file, $loadi);
fclose($file);

# ohjataan selain imuroitavaan tiedostoon
$file = "sivut/file.zip";
echo '<META HTTP-EQUIV="Refresh" content="0; URL=' . $file . '">';
}
?>

vika voisi johtua myös index sivun koodista koska olen käyttänyt dynaamista systeemiä... joten etusivun koodi myös :

<html>
<head>

<style>
A.menu {color: #000000; text-decoration: none}
A.menu:hover {color: #003399; text-decoration: none}
</style>
<meta name="webmaster" content="TETRIS - tetris_90@jippii.fi - www.mikkisoft.se8.org">

<title>Mikkisoft [v 5.0]</title>
</head>

<body background="bg.gif" topmargin="12" leftmargin="12" text="#000000" link="#000000" vlink="#000080" alink="#000080">

<img border="0" src="otsikko.gif" width="209" height="41"><br>

<table border="0" width="55%" height="329">
  <tr>
    <td width="110" valign="top" height="139">
<TABLE border="0" cellpadding="3" cellspacing="1" bgcolor="#000000" style="font-style: normal; font-variant: normal; font-weight: normal; line-height: 12px; font-size: 8pt; font-family: Verdana; color: #000000" width="100%" height="129">
<TR>
	<TD bgcolor="#E9E9E9" width="87" height="2" valign="top" cellspacing="0" cellpadding="0" style="background-image: url('table.gif'); background-repeat: repeat-x; color: #FFFFFF; font-size: 10px; background-position: left top">
      <b>MENU</b>
    </TD>
<TR>
	<TD bgcolor="#E9E9E9" width="87" height="111" valign="top">
      <img border="0" src="list.gif" width="7" height="7">   <a href="?sivu=etusivu" class="menu">etusivu</a><br>
      <img border="0" src="list.gif" width="7" height="7">   <a href="?sivu=imuroi" class="menu">imuroi</a><br>
      <img border="0" src="list.gif" width="7" height="7">   <a href="?sivu=projektit" class="menu">projektit</a><br>
      <img border="0" src="list.gif" width="7" height="7">   <a href="?sivu=vieraskirja" class="menu">vieraskirja</a><br>
      <img border="0" src="list.gif" width="7" height="7">   <a href="?sivu=palaute" class="menu">palaute</a><br>
      <img border="0" src="list.gif" width="7" height="7">   <a href="?sivu=uutiset" class="menu">uutiset</a><br>
      <img border="0" src="list.gif" width="7" height="7">   <a href="?sivu=linkit" class="menu">linkit</a><br>
      <img border="0" src="list.gif" width="7" height="7">   <a href="?sivu=tutoriaalit" class="menu">tutoriaalit</a><br>
      <img border="0" src="list.gif" width="7" height="7">   <a href="?sivu=admin" class="menu">admin</a>
    </TD>
</table>
<br>
<TABLE border="0" cellpadding="3" cellspacing="1" bgcolor="#000000" style="font-style: normal; font-variant: normal; font-weight: normal; line-height: 12px; font-size: 8pt; font-family: Verdana; color: #000000" width="100%" height="129">
<TR>
	<TD bgcolor="#E9E9E9" width="87" height="2" valign="top" cellspacing="0" cellpadding="0" style="background-image: url('table.gif'); background-repeat: repeat-x; color: #FFFFFF; font-size: 10px; background-position: left top">
      <b>GALLUP</b>
    </TD>
<TR>
	<TD bgcolor="#E9E9E9" width="87" height="111" valign="top">
<?php include('gallup.php'); ?>
    </TD>
</table>
</td>
    <td width="5" valign="top" height="325"></td>
    <td width="506" height="325" valign="top">

<left>
      <?php
    // Here you have to list every page you want that can be loaded
    $pages = Array (
		"uds" => "sivut/uds2.php",
                "etusivu" => "sivut/etusivu.php"
             );

    // We check if there is page given. If not by default we load etusivu.php
    $page = ($_GET["sivu"] != "") ? $_GET["sivu"] : "etusivu";

    // Lets check that the file exists and it is in $pages array
    if (isset($pages[$page]) AND file_exists($pages[$page])) {
        // Everything's allright lets load the page
        include ($pages[$page]);
    } else {
        // Somethings wrong! We show error message
        echo "Error 404 - Sivua ei löydy.";
    }

    function MakeArray ($dir) {
        global $pages;
        $handle = OpenDir ($dir) or die ("Ei voi avata $handle!");
        while (FALSE !== ($file = ReadDir($handle))) {
            if ($file != ".." AND $file != ".") {
                if (is_dir($dir . $file)) {
                    MakeArray ($dir . $file . "/");
                } else {
                    $pages[ereg_replace("\.(.*)$", "", $file)] = $dir . $file;
                }
            }
        }
        CloseDir ($handle);
    }

?>
      </left>

</td>
  </tr>
</table>

</body>
</html>

toivottavasti joku osaa auttaa... :(

leftover [07.12.2003 07:39:54]

#

Jos laiskottaa eikä jaksa alkaa etsimään sorsista tulosteita, kannattaa lisätä aivan sivun alkuun ob_start() ja aivan loppuun ob_end_flush(). Johan alkaa pelittämään ilman virheitä (tosin noin muutaman mikrosekunnin hitaammin :).

TETRIS [07.12.2003 11:55:02]

#

no kiitos :) toi ob_ juttu toimi, mutta nyt on ongelmana toi ohjaus. Nyt siis toimii myöskin PHP:n headerin ohjaus, mutta se joko hyppää suoraan siihen imuroitavaan tiedostoon tai sitten ei tee mitään (vaan pelkästään "päivittää" sivun) johtuuko se mahdollisesti tuosta :

if ($sivu=="uds" && $dwl=="now")

p.s
bugaa muuten hauskasti toi bbcode systeemi :D


Sivun alkuun

Vastaus

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

Tietoa sivustosta