[Grafika] [WebTip] [Fotografování] [Galerie] [MujMac] [Printing]
  Redakce: info (at) builder.cz   Inzerce: reklama (at) grafika.cz
Diskuzní fóra
.Net (68471)
ASP (1591)
ActiveX (168)
Allegro (136)
Assembler (3926)
C++ Builder (23160)
C/C++ (44499)
Databáze (30680)
Delphi (78808)
DelphiX (1655)
DirectX (1464)
Java (39508)
JavaScript (12598)
Matematické programy (2178)
OOP a UML (732)
OpenGL (6920)
Php (65224)
PowerBuilder (464)
Problémy a algoritmy (10473)
Programování v Linuxu (2000)
Právo a programování (3384)
Python (1353)
Ruby (136)
Visual Basic (12078)
Visual C++ (12956)
Wap (56)
Web (10895)
Web servery (5549)
Win32 (13553)
Windows CE (865)
XML/XSL (1860)
Textová inzerce
Služby Builder.cz
  • Bazar - koupím(0)
  • Bazar - prodám(0)
  • Hledám práci(0)
  • Nabízíme práci(0)
  • Projekty(0)
  • Ankety
    V dnešním posledním díle umožníme v RS používat ankety. Na závěr si bude možno stáhnout kompletní zdrojový kód celého systému.
    Redakční systém v PHP
    Předchozí díl: Náhrada FTP

    Autor: Ondřej Žižka
    Rubrika: PHP
    Publikováno: 03.04. 2003
     Tisk článku
    Poslat odkaz emailem
     

     V dnešním posledním díle si ukážeme, jak přidat do našeho systému ankety a na konec dám ke stažení dlouho očekávaný, opakávaný a vyprošovaný kompletní zdorojový kód.

    Nejprve si musíme s souboru menu.php přidat tento odkaz.
    .
    .
    .
    echo "<A HREF=ankety.php target=main $click>Ankety</A><BR>\n";
    .
    .
    .
    

    Komu umožníte, aby mohl editovat, vytvářet a mazat ankety je na Vás.

    První co budeme potřebovat, je databáze s touto strukturou.
    CREATE TABLE ankety (
      id int(11) NOT NULL auto_increment,
      otazka text NOT NULL,
      odpovedi text NOT NULL,
      stav varchar(255) NOT NULL default '',
      zobrazit enum('a','n') NOT NULL default 'a',
      PRIMARY KEY  (id)
    ) 
    

    Možná si říkáte, proč je zde místo jen pro jednu odpověď? Vše vysvětlím později.

    Jako úvodní se nám po kliku na odkaz spustí následující script ankety.php.
    <?
    Header("Pragma: No-cache");
    Header("Cache-Control: no-cache");
    Header("Expires: ".GMDate("D, d M Y H:i:s")."GMT");
    
    if (!isset($PHP_AUTH_USER)):
    echo "Neautorizovaný přístup";
    exit;
    endif;
    
    @include "../conn.php";
    @include "../function.php";
    
    auth();
    
    if (isset($did) && $did > 0)
    {
    @$sql = mysql_query("DELETE FROM ankety WHERE id = $did");
    
    }
    
    head();
    ?>
    
    
    <h3>Ankety</h3>
    
    <P><A HREF="ankety_pridat.php">Přidat anketu</A></P>
    <?
    @$sql = mysql_query("SELECT id,otazka,zobrazit FROM ankety");
    
    if (@mysql_num_rows($sql) == 0)
    {
    echo "<h3><b>Není definována žádná anketa !!!</b></h3>\n";
    }
    else
    {
    ?>
    <table border=0 cellspacing=0 cellpadding=1 WIDTH="100%">
    <tr bgcolor=#C0C0C0>
    <td bgcolor=#C0C0C0><b> Otázka</b></td>
    <td bgcolor=#C0C0C0 align="center"><b> Zobrazena </b></td>
    <td bgcolor=#C0C0C0 align="center"><b> Statistika </b></td>
    <td bgcolor=#C0C0C0 align="center"><b> Smazat </b></td>
    </tr>
    <?
    $i = 0;
    
    while (@$row = mysql_fetch_row($sql))
    {
    if ($i%2==0) $bgcolor=''; 
    else 
    $bgcolor=" bgcolor=#C0C0C0";
    ?>
    <tr<? echo $bgcolor; ?>>
    <td<? echo $bgcolor; ?>> 
      <b><A HREF="ankety_editovat.php?id=<?=$row[0]?>">
      <? echo $row[1];?></A></b></td>
    <td<? echo $bgcolor; ?> align="center"> <? echo $row[2];?></td>
    <td<? echo $bgcolor; ?> align="center"> 
      <A HREF="statistika.php?id=<?=$row[0]?>">statistika</A></td>
    <form method="get" action="ankety.php">
      <input type="hidden" name="did" value="<? echo $row[0]; ?>">
    <td<? echo $bgcolor; ?> align="center"> 
      <input type="submit" value="Smazat" onclick="return 
        confirm('Opravdu chceš anketu smazat ?')"> </td>
    </form>
    </tr>
    <?
    // zvýšíme proměnnou i o 1.
    $i++;
    }
    // uvolníme výsledek
    mysql_free_result($sql);
    
    echo "</TABLE>\n";
    }
    ?>
    <?
    foot();
    @mysql_close($conn);
    ?>
    
    

    Zde se pro každou anketu opakuje smyčka, kde se zobrazí odkaz pro její editaci, zda je zobrazena (může být pouze jedna), odkaz na její statistiku a tlačítko pro smazání ankety.

    Pro přidání ankety nám slouží script ankety_pridat.php.
    <?
    Header("Pragma: No-cache");
    Header("Cache-Control: no-cache");
    Header("Expires: ".GMDate("D, d M Y H:i:s")."GMT");
    
    // pokud nenproběhla autorizace, ukončíme skript
    if (!isset($PHP_AUTH_USER))
    {
    echo "Neautorizovaný přístup";
    exit;
    }
    
    @include "../function.php";
    @include "../conn.php";
    
    // autorizace
    auth();
    
    $error = ''; // proměnná obsahuje případné chybové hlášení
    
    if ($otazka != "")
    {
    $oddelovac="@@";
    @$sql = mysql_query("SELECT id FROM ankety WHERE zobrazit='a'");
    if (@mysql_num_rows($sql) > 0)
    {
    $error = "<DIV ALIGN=CENTER>Anketa, 
              nejde nastavit na zobrazení !!!</DIV>\n";
    $zobrazit="n";
    }
    // updatujem anketu;
    $ind=0;
    while(list(,$b)=each($odpoved))
    {
    	if($b=="")
    		continue;
    
    	if($odpovedi!="")
    		$odpovedi.=$oddelovac;
    
    	$odpovedi.=$b;
    $ind++;
    }
    $stav=0;
    for($i=0;$i<$ind;$i++)
    	$stav.=$oddelovac."0";
    @mysql_query("INSERT INTO ankety VALUES('','$otazka','$odpovedi',
                            '$stav','$zobrazit')");
    
    @mysql_close($conn);
    header("Location: ./ankety.php");
    exit;
    }
    
    // databázi již nebudeme potřebovat
    @mysql_close($conn);
    
    head()
    ?>
    
    <H4 ALIGN="CENTER"><B>Přidání ankety</B></H4>
    
    <? echo $error; ?>
    
    <FORM METHOD="POST" ACTION="ankety_pridat.php">
    <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" ALIGN="CENTER">
    <TR>
    <TD>Otázka: * </TD>
    <TD><INPUT TYPE="TEXT" NAME="otazka" MAXLENGTH="50" 
                   SIZE="40" VALUE="<? echo $otazka; ?>"></TD>
    </TR>
    <TR>
    <TD>Odpověď: </TD>
    <TD><INPUT TYPE="TEXT" NAME="odpoved[]" MAXLENGTH="50"
                   SIZE="40" VALUE="<? echo $odpoved[0]; ?>"></TD>
    </TR>
    <TR>
    <TD>Odpověď: </TD>
    <TD><INPUT TYPE="TEXT" NAME="odpoved[]" MAXLENGTH="50"
                   SIZE="40" VALUE="<? echo $odpoved[1]; ?>"></TD>
    </TR>
    <TR>
    <TD>Odpověď: </TD>
    <TD><INPUT TYPE="TEXT" NAME="odpoved[]" MAXLENGTH="50" 
                   SIZE="40" VALUE="<? echo $odpoved[2]; ?>"></TD>
    </TR>
    <TR>
    <TD>Odpověď: </TD>
    <TD><INPUT TYPE="TEXT" NAME="odpoved[]" MAXLENGTH="50" 
                   SIZE="40" VALUE="<? echo $odpoved[3]; ?>"></TD>
    </TR>
    <TR>
    <TD>Odpověď: </TD>
    <TD><INPUT TYPE="TEXT" NAME="odpoved[]" MAXLENGTH="50" 
                   SIZE="40" VALUE="<? echo $odpoved[4]; ?>"></TD>
    </TR>
    <TR>
    <TD>Zobrazit: </TD>
    <TD><INPUT TYPE="CHECKBOX" NAME="zobrazit" VALUE="a" ></TD>
    </TR>
    <TR>
    <TD COLSPAN="2" ALIGN="CENTER">
    <INPUT TYPE="SUBMIT" VALUE="Přidat">
    </TD>
    </TR>
    </TABLE>
    </FORM>
    
    <?
    foot();
    ?>
    
    

    Zde se budu muset trochu pozastavit. Jak ve formuláři vytvořím pole snad vysvětlovat nemusím. Možná vás trochu překvapuje proměnná $oddelovac. Pomocí ní spojíme odpovědi do jednoho řetězce a uložíme do databáze. Proč ke spojování nepoužívám funkci Join() nebo Implode()? Jednoduše proto, že funkce spojí všechny(!) prvky pole. Tedy i prázdné položky. což se konstrukci tohoto systému v enduser části nebude moc líbit. Něco podobného uděláme i u počtu hlasů s tím rozdílem, že nám zde pomůže proměnná $ind, ve které máme počet odpovědí. Na úplném začátku jsme si zjistili, jestli exsistuje nějaká ankety která je zobrazená. Pokud ano a právě zpracovávaná anketa je také nastavena na zobrazení, přepne se současná do režimu "nezobrazovat". Tento způsob nám umožňuje dát k jedné otázce až neomezený počet odpovědí. Já jsem to omezil na 5.

    <?
    Header("Pragma: No-cache");
    Header("Cache-Control: no-cache");
    Header("Expires: ".GMDate("D, d M Y H:i:s")."GMT");
    
    // pokud nenproběhla autorizace, ukončíme skript
    if (!isset($PHP_AUTH_USER))
    {
    echo "Neautorizovaný přístup";
    exit;
    }
    
    @include "../function.php";
    @include "../conn.php";
    
    // autorizace
    auth();
    
    $error = ''; // proměnná obsahuje případné chybové hlášení
    $oddelovac="@@";
    if ($otazka != "")
    {
    if($zobrazit=='')
    	$zobrazit='n';
    @$sql = mysql_query("SELECT id FROM ankety WHERE zobrazit='a'");
    $b=mysql_fetch_row($sql);
    if (@mysql_num_rows($sql) > 0 and $b[0]!=$id)
    {
    $error = " <DIV ALIGN=CENTER>Anketa, 
          nejde nastavit na zobrazení !!!</DIV>\n";
    $zobrazit="n";
    }
    // updatujem anketu
    $c=mysql_query("SELECT stav FROM ankety WHERE id='$id'");
    $d=mysql_fetch_row($c);
    $e=explode($oddelovac,$d[0]);
    $odpovedi="";
    $stav="";
    while(list($a,$b)=each($odpoved))
    {
    	if($b=="")
    		continue;
    
    	if($odpovedi!="")
    		$odpovedi.=$oddelovac;
    
    	$odpovedi.=$b;
    
    	if($stav!="")
    		$stav.=$oddelovac;
    
    	if($e[$a]=="")
    		$stav.=0;
    
    	$stav.=$e[$a];	
    }
    
    
    @mysql_query("UPDATE ankety SET otazka='$otazka',odpovedi='$odpovedi',
               stav='$stav',zobrazit='$zobrazit' WHERE id = $id");
    
    @mysql_close($conn);
    header("Location: ./ankety.php");
    exit;
    }
    
    head();
    @$sql = mysql_query("SELECT * FROM ankety WHERE id = $id");
    if (@mysql_num_rows($sql) == 0)
    {
    echo "Neplatná anketa!!!";
    foot();
    exit;
    }
    
    @$row = mysql_fetch_array($sql);
    
    // databázi již nebudeme potřebovat
    @mysql_close($conn);
    
    
    
    $odpoved=explode($oddelovac,$row[odpovedi]);
    ?>
    
    <H4 ALIGN="CENTER"><B>Editace ankety</B></H4>
    
    <? echo $error; ?>
    
    <FORM METHOD="POST" ACTION="ankety_editovat.php">
    <INPUT TYPE="HIDDEN" NAME="id" VALUE="<? echo $id; ?>">
    <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" ALIGN="CENTER">
    <TR>
    <TD>Otázka: * </TD>
    <TD><INPUT TYPE="TEXT" NAME="otazka" MAXLENGTH="50" 
                SIZE="40" VALUE="<? echo $row[1]; ?>"></TD>
    </TR>
    <TR>
    <TD>Odpověď: </TD>
    <TD><INPUT TYPE="TEXT" NAME="odpoved[]" MAXLENGTH="50"
                SIZE="40" VALUE="<? echo $odpoved[0]; ?>"></TD>
    </TR>
    <TR>
    <TD>Odpověď: </TD>
    <TD><INPUT TYPE="TEXT" NAME="odpoved[]" MAXLENGTH="50"
                SIZE="40" VALUE="<? echo $odpoved[1]; ?>"></TD>
    </TR>
    <TR>
    <TD>Odpověď: </TD>
    <TD><INPUT TYPE="TEXT" NAME="odpoved[]" MAXLENGTH="50"
                SIZE="40" VALUE="<? echo $odpoved[2]; ?>"></TD>
    </TR>
    <TR>
    <TD>Odpověď: </TD>
    <TD><INPUT TYPE="TEXT" NAME="odpoved[]" MAXLENGTH="50"
                SIZE="40" VALUE="<? echo $odpoved[3]; ?>"></TD>
    </TR>
    <TR>
    <TD>Odpověď: </TD>
    <TD><INPUT TYPE="TEXT" NAME="odpoved[]" MAXLENGTH="50"
                SIZE="40" VALUE="<? echo $odpoved[4]; ?>"></TD>
    </TR>
    <TR>
    <TD>Zobrazit: </TD>
    <TD><INPUT TYPE="CHECKBOX" NAME="zobrazit" 
       VALUE="a" <? If($row[zobrazit]=="a") echo "CHECKED"; ?>></TD>
    </TR>
    <TR>
    <TD COLSPAN="2" ALIGN="CENTER">
    <INPUT TYPE="SUBMIT" VALUE="Editovat">
    </TD>
    </TR>
    </TABLE>
    </FORM>
    
    <?
    foot();
    ?>
    
    

    Tady vysvětlím jen zpracování, neboť zbytek je podobný scriptu pro přidání ankety. Je zde trochu problém s tím, že pokud smažeme odpověď, na kterou kliklo několik hlasujících, tak nám procentuální rozložení hlasů nebude souhlasit. Z toho důvodu se s každou odpovědí edituje i počet jejích hlasů. Samozřejmě, že se poměr změní, ale bude vypočítáván jen z hlasů u platných odpovědí. Nebudou se započítávat hlasy u odpovědí, které jsme smazali.

    Jak se dozvíme průběžné výsledky i nezobrazované ankety? Pomocí scriptu statistika.php.

    <?
    Header("Pragma: No-cache");
    Header("Cache-Control: no-cache");
    Header("Expires: ".GMDate("D, d M Y H:i:s")."GMT");
    
    // pokud nenproběhla autorizace, ukončíme skript
    if (!isset($PHP_AUTH_USER))
    {
    echo "Neautorizovaný přístup";
    exit;
    }
    
    @include "../function.php";
    @include "../conn.php";
    
    // autorizace
    auth();
    
    $error = ''; // proměnná obsahuje případné chybové hlášení
    $oddelovac="@@";
    
    @$sql = mysql_query("SELECT * FROM ankety WHERE id = $id");
    if (@mysql_num_rows($sql) == 0)
    {
    echo "Neplatná anketa!!!";
    foot();
    exit;
    }
    
    @$row = mysql_fetch_array($sql);
    
    // databázi již nebudeme potřebovat
    @mysql_close($conn);
    
    head();
    
    $odpoved=explode($oddelovac,$row[odpovedi]);
    $stav=explode($oddelovac,$row[stav]);
    ?>
    
    <H4 ALIGN="CENTER"><B>Výsledky ankety</B></H4>
    
    <? echo $error; ?>
    
    
    <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" ALIGN="CENTER">
    <TR BGCOLOR="#C0C0FF">
    <TD WIDTH=100>Otázka:</TD>
    <TD><B><? echo $row[otazka]; ?></B></TD>
    </TR>
    <?
    for($i=0;$i<count($odpoved);$i++)
    {
    if($i%2) $bg=' BGCOLOR="#FFFFFF" '; else $bg=' BGCOLOR="#DADADA" ';
    if($odpoved[$i]=="")
    	continue;
    ?>
    <TR <?=$bg?>>
    <TD WIDTH="70%"><? echo $odpoved[$i]." </TD>
      <TD>Počet hlasů: ".$stav[$i]; ?></TD>
    </TR>
    <?
    }
    ?>
    <TR BGCOLOR="#C0FFC0">
    <TD>Zobrazit: </TD>
    <TD><B><? echo $row[zobrazit]?></B></TD>
    </TR>
    <TR>
    <TD COLSPAN="2" ALIGN="CENTER">
    <A HREF="ankety.php">zpět</A>
    </TD>
    </TR>
    </TABLE>
    
    <?
    foot();
    ?>
    

    Princip je opět stejný jako u editace, a proto ho nebudu znovu vysvětlovat.

    Nyní se dostáváme do uživatelské části. Je opět na vás kam si anketu umístíte. Já jsem ji dal do scriptu levy.php.
    .
    .
    .
    </TABLE>
    * - nutno vyplnit
    </FORM>
    <P>
    <?
    include "./anketa.php";
    ?>
    

    Jak jednoduché. Samotný script ankety.php vypadá následovně.
    <?
    $a=mysql_query("SELECT * FROM ankety WHERE zobrazit='a'");
    if(mysql_num_rows($a)==1)
    {
    $b=mysql_fetch_array($a);
    ?>
    <FORM METHOD="POST" ACTION="ankety_zapis.php">
    <INPUT TYPE="HIDDEN" NAME="id" VALUE="<?=$b[id]?>">
    <TABLE BORDER=0 WIDTH=185 ALIGN="CENTER" RULES="rows"
       FRAME="void" CELLPADDING=3 CELLSPACING=0>
    <TR BGCOLOR="#CEB896" ALIGN="Center">
    	<TD><B><?=$b[otazka]?></B></TD>
    </TR>
    <?
    $oddelovac="@@";
    $odpoved=explode($oddelovac,$b[odpovedi]);
    $stav=explode($oddelovac,$b[stav]);
    $celkem=array_sum($stav);
    $procento=($celkem/100);
    for($i=0;$i<count($odpoved);$i++)
    {
    if($odpoved=="")
    	continue;
    @$cast=round(($stav[$i]/$procento));
    //zavináč je zde důležitý
    $sirka=round($cast*1.8);
    if($i%2) $bg=' BGCOLOR="#DEDFD6" ';
       else $bg=' BGCOLOR="#DBD1D5" ';
    ?>
    <TR <?=$bg?>>
      <TD>
         <INPUT TYPE="RADIO" NAME="hlasovani" VALUE="<?=$i?>">
             <?=$odpoved[$i]?><BR>
           <IMG SRC="./images/enduser/cara.gif" WIDTH=<?=$sirka?>
             HEIGHT=10 ALIGN="left"><BR>
            Počet hlasů: <?=$stav[$i]?> (<?=$cast?>%)
            </TD>
    </TR>
    <?
    }
    ?>
    <TR>
       <TD ALIGN="Center" BGCOLOR="#C0C0C0">
       <? if($_COOKIE[anketa_rs]!="true"): ?>
          <INPUT TYPE="SUBMIT" VALUE="Hlasovat">
       <? else: ?>
          <CENTER>Již jste hlasoval(a)</CENTER>
       <? endif; ?>
       </TD>
    </TR>
    </TABLE>
    </FORM> 
    <?
    }
    ?>
    

    Vybereme anketu kterou zobrazíme (jak víme, může být jen jedna) a zobrazíme otázku. Následně si každou odpověď a hlasy k ní určené rozdělíme. Funkce Array_Sum() nám sečte hodnoty všech prvků v poli. Dostaneme celkový stav. Určíme si jedno procento (klasické počítání se senem pro X králíků na Y dní) a začneme zobrazovat. Spočítáme si délku čáry, jako podílu odpovědí. Soubor cara.gif budete mít v konečném balíčku. Proč je tam poznámka, že je zavináč důležitý? Je to prosté. Pokud se hlasuje prvně, je celkový součet odpovědí 0, to jest 1% z toho dostaneme 0 a jak vím, tak nulou se dělit nesmí. Číslo 1,8 je tam jen proto, aby to graficky trochu vypadalo a můžete si ho podle svého uvážení změnit. Za zmínku ještě stojí poslední podmínka. Ta uživateli zabrňuje, aby hlasoval vícekrát. Pokud má ovšem vyplý příjem cookies, je nám to k ničemu.

    Poslední script, který si ukážeme je ankety_zapis.php, kterým nám zpracuje anketu.
    <?
    SetCookie("anketa_rs","true",time()+1800);
    Header("Pragma: No-cache");
    Header("Cache-Control: no-cache");
    Header("Expires: ".GMDate("D, d M Y H:i:s")."GMT");
    
    @include "./conn.php";
    
    $a=mysql_query("SELECT stav FROM ankety WHERE id='$id'");
    $b=mysql_fetch_array($a);
    
    $oddelovac="@@";
    $stav=explode($oddelovac,$b[stav]);
    
    $stav[$hlasovani]++;
    
    $st=implode($stav,$oddelovac);
    
    @mysql_query("UPDATE ankety SET stav='$st' WHERE id='$id'");
    
    Header("Location: ./index.php");
    ?>
    

    Pošeleme cookies, která zabrání v hlasování na další půl hodinu. Délku platnosti cookies si můžete nastavit individuálně. Z databáze si zjistíme stav hlasování, rozdělíme pomocí oddělovačů a přičteme k příslušné hodnotě postinkrementací jedničku. Tuto hodnotu uložíme spolu se zbytkem znovu do databáze a přesměrujeme na úvodní stránku.

    Tím jsme náš seriál zdárně zakončili a zde je ke stažení kompletní zdrojový kod, který byl tak dlouho žádaný. Přípdané dotazy k jeho úpravám, funkčnosti či nefunkčnosti, Vám zodpovím na svém e-mailu.

    Zpět na začátek stránky

    Autor: Ondřej Žižka
    Klikni pro další články autora

    Hodnocení článku
    1 | 2 | 3 | 4 | 5
    Aktuální známka: 2.61
    (Počet známek: 9172)

    Komentáře k článku
    Onza25.09.21:50beh RS
    Ondřej Žižka25.09.22:30RE: beh RS
    Honza29.09.14:53RE: RE: beh RS
    Ondřej Žižka30.09.15:16RE: RE: RE: beh RS
    mmfvnrfj06.10.5:39mmfvnrfj
    destructor07.09.13:19destructor
    reuse07.09.18:25reuse
    djbrat24.09.18:33helfnite
    Honza14.09.9:46databaze
    Honza14.09.14:10RE: databaze
    Honza22.09.13:19RE: RE: databaze
    Petr27.08.0:22Dotaz ohledně hesla
    Ondřej Žižka27.08.17:45RE: Dotaz ohledně hesla
    Petr27.08.19:43RE: RE: Dotaz ohledně hesla
    Ondřej Žižka28.08.9:43RE: RE: RE: Dotaz ohledně hesla
    Petr28.08.14:35RE: RE: RE: RE: Dotaz ohledně hesla
    Ondřej Žižka28.08.15:59RE: RE: RE: RE: RE: Dotaz ohledně hesla
    Davids23.08.22:02Práva ; místo rámů tabulka
    Ondřej Žižka25.08.0:22RE: Práva ; místo rámů tabulka
    Marek Suscak20.07.16:52Pluginy na WEBE
    Ondřej Žižka24.07.22:54RE: Pluginy na WEBE
    00014.09.17:30problem s pridavanim a korekturou clanku
    Reagle14.08.17:53Přidani uživatele
    Lukáš28.03.22:07RE: Přidani uživatele
    anonymous07.08.11:25Článek neexistuje !!!
    Vasek11.03.20:08Nastavení serveru Apatche
    bat13.03.11:55RE: Nastavení serveru Apatche
    Vasek18.03.20:18RE: RE: Nastavení serveru Apatche
    Frank29.12.19:16Pristupove udaje
    pogoo31.10.15:46Anketa bez refreshu stranky
    estru07.06.12:57RE: Anketa bez refreshu stranky
    Rix14.10.23:28Prosím pomoc
    funous15.10.21:06RE: Prosím pomoc
    Fun22.07.19:20Detail k odhlašování
    Ondra26.12.10:33RE: Detail k odhlašování
    Aznul25.06.21:15Je možné bez SQL??
    Yarda29.12.9:24RE: Je možné bez SQL??
    virtual05.06.13:24MySQL
    virtual14.06.17:01RE: MySQL
    endroo20.10.19:39RE: RE: MySQL
    Honza14.09.14:21RE: RE: RE: MySQL
    Lukas28.05.21:04www.all4web.sk --> ankety
    Karel Splichal16.05.7:57Slabe
    Jarda26.12.10:38RE: Slabe
    inty29.04.14:38cely system
    Incognito12.04.15:04ukazka
    Yetti14.05.20:24RE: ukazka
    Urbi08.07.14:40RE: ukazka
    Replicator05.06.20:55RE: RE: ukazka
         





    info@builder.cz
    Vydává Grafika Publishing, s.r.o.
    Copyright (c) 1997-2002 Všechna práva vyhrazena