Pomalé zobrazování stránky

Dobrý den, učím se vytvářet stránky v PHP na projektu pro kamaráda: argentis.wz.cz a stránky se zobrazují pomalu a někdy vůbec. Poradil by mi někdo kde se stala chyba?

Děkuji


Zde je kód index.php:

<?php
ob_start();
session_start();
require "funkce.php";

if ($_GET["clanek"]=="prihlaseni")
{
$id = iduzivatele($_POST["prezdivka"], $_POST["heslo"]);
if ($id<>0)
{
$_SESSION["id"]=$id;
}
}
elseif ($_GET["clanek"]=="odhlaseni")
{
unset($_SESSION["id"]);
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" href="style.css" type="text/css">
<title>Vítejte na stránkách SHŠ Argentis</title>
</HEAD>

<BODY>
<div id="hlavni">

<a href="index.php?clanek=uvod"><div id="horni"></div></a>

<div id="levy">

<?php
include_once "menu.php";
?>

</div>

<div id="telo">
<?php
presmeruj();
?>

</div>
<div id="spodni">
<?php
include_once "paticka.php";
?>
</div>
</div>
</BODY>

<?php ob_end_flush();?>
K čemu je tam bufferování? Dle kódu si myslím, že je to zbytečné.
Navíc to může způsobovat ono zpomalování. Uvedený buffer nedělá nic jiného než, že veškerý obsah nejdříve uloží do bufferu, až pak to celé pošle klientovi. Takže se zdržuje tím, že to ukládá do bufferu, než aby to rovnou poslal klientovi.
<HTML>Tomík: To by nemělo mít takový vliv, já to ve staré verzi enginu svého webu používal zcela běžně a žádný problém.

Aleš: Co dělají presmeruj() a iduzivatele()? Co obsahují funkce.php, menu.php, paticka.php?</HTML>
soubor menu.php,paticka.php obsahuji kod pro menu s odkazy a pro paticku kde je odkaz pro administraci je to jen proto, aby byl index.php co nejmenší...v souboru funkce.php je tohle:
<?php

if (!isset ($_GET["clanek"])) $_GET["clanek"]="uvod";

$GLOBALS["link"]=
mysql_connect("","","");
mysql_select_db("
");
mysql_query("SET CHARACTER SET utf8");

function presmeruj()
{
if ((string)$_GET["clanek"]<>"") $pokracuj=$_GET["clanek"]; else $pokracuj="uvod";
if (is_file ("./".$pokracuj.".php")):
$nazevclanku=$pokracuj.".php";
elseif (is_file ("./".$pokracuj.".htm")):
$nazevclanku=$pokracuj.".htm";
else:
$nazevclanku="nenalezeno.php";
endif;
require $nazevclanku;
}

function iduzivatele ($prezdivka, $heslo)
{
$vysledek=mysql_query("select id from uzivatele where prezdivka='".$prezdivka."' and heslo='".$heslo."'");
if (mysql_num_rows($vysledek)==0)
return false;
else {
$radek = mysql_fetch_array($vysledek);
return (int)$radek["id"];
}
}
function prihlasen()
{
if (!isset($_SESSION["id"])) return false;
{$vysledek=mysql_query("select id from uzivatele where id='".$_SESSION["id"]."'");
return (boolean)mysql_num_rows($vysledek);
}
}
function kdo()
{$vysledek=mysql_query("select prezdivka from uzivatele where id='".$_SESSION["id"]."'");
$kdo=mysql_fetch_array($vysledek);
return $kdo["prezdivka"];
}
?>
<HTML>Asi jsem slepý, ale důvod pomalého zpracování nevidím. Nicméně nelíbí se mi pár věcí:

1) Míchání staré a "nové" syntaxe. Jde o funkci presmeruj(), kde se používají pravěké konstrukce s dvojtečkami a endif.

2) Neošetření SQL injection. Funkci iduzivatele se předává přesně to, co uživatel poslal a přesně tak se vkládá do dotazu. Pokud zadám jako heslo např. ' OR '' = ', přihlásí mě to, protože výsledek dotazu bude pozitivní (vyzkoušeno). Přidej do funkci iduzivatele před mysql_query tyto řádky:
$prezdivka = mysql_real_escape_string($prezdivka);
$heslo = mysql_real_escape_string($heslo);</HTML>
Myslím, že jste tady opominuli přirozenou vlastnost webzdarmích serverů - občasná nevyzpytatelná lenost... :-)
Tak děkuji moc za rady a návštěvník stránky si prostě chvíli počká :)