Uložení PHP kódu do databáze – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Uložení PHP kódu do databáze – PHP – Fórum – Programujte.comUložení PHP kódu do databáze – PHP – Fórum – Programujte.com

 

radek
~ Anonymní uživatel
133 příspěvků
4. 10. 2013   #1
-
0
-

Zdravím, potřeboval bych radu. Zkouším si vytvářet svůj malý publikační systém a narazil jsem na problém. Obsahy jednotlivých stránkek mám uložené v tabulce v MySQL databázi, takže pro každou stránku si pak jen vytáhnu příslušný obsah z datábáze. Mám však další tabulku, jejíž hodnoty bych potřeboval vkládat do obsahu stránky. Jenže když vložím PHP kód pro vytahování hodnot z druhé tabulky do tabulky, kde mám obsah stránky, tak následně mi obash stránky vrátí PHP kód jako text (PHP příkaz se nevykoná) .

Podařilo se mi najít, že tento problém by měla vyřešit funkce eval(), nicméně se toto řešení nedoporučuje. Je nějaká jiná možnost jak se to v praxi řeší?

Nahlásit jako SPAM
IP: 82.99.140.–
KIIV
~ Moderátor
+43
God of flame
4. 10. 2013   #2
-
0
-

tak neukladej php, ale pouzij nejaky sablonovaci system - bude to beztak trosku bezpecnejsi nez tam prat cisty php a pak to prohanet evalem...

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
radek
~ Anonymní uživatel
133 příspěvků
5. 10. 2013   #3
-
0
-

OK, díky, mrknu se na ten šablonovací systém.

Nahlásit jako SPAM
IP: 82.99.140.–
peter
~ Anonymní uživatel
3981 příspěvků
7. 10. 2013   #4
-
0
-

Proc to neulozis jako html stranku na disk? Html nepotrebuje volat php ani mysql, zobrazeni bude 10x rychlejsi. Stranka se bude editovat 1x, zobrazovat 10.000x za rok.

Eval neni bezpecne z toho duvodu, ze pokud se hacker naboura do prihlasovani, pak do db muze ulozit vlastni php kod, ktery se diky eval take spusti (napr smazani souboru, smazani db). Lepsi je tam takovy kod neukladat. Sblonovaci systemy to resi jen castecne, nektere pouzivaji tez eval nebo prikazy mu podobne.

Nahlásit jako SPAM
IP: 193.84.207.–
radek
~ Anonymní uživatel
133 příspěvků
8. 10. 2013   #5
-
0
-

#4 peter
Teď nevím, jestli jsem to dobře pochopil, ale když bych na hosting nahrál statickou html stránku, tak bych tím nic nevyřešil. Ten obsah dejme tomu bych editoval 1x do roka, ale tu další SQL tabulku, kterou bych potřebaval do toho obsahu načítat by se aktualizovala pravidelněji. Třeba, že by se tam aktualizovali nové výsledky zápasů. Na to přeci již musí existovat nějaké řešení. Nevím, jestli jsem to dobře vysvětlil, co potřebuji:

V MySQL vytvořím tabulku OBSAHY a tabulku VYSLEDKY a teď bych potřeboval do jednoho obsahu (jednoho řádku tabulky OBSAHY) vložit skript, který by mi generoval dotaz z tabulky VÝSLEDKY.

Nahlásit jako SPAM
IP: 82.99.140.–
peter
~ Anonymní uživatel
3981 příspěvků
9. 10. 2013   #6
-
0
-

Ta tabulka by sla nacitat ajaxem nebo do iframu, kdyby na to prislo.
"načítat by se aktualizovala pravidelněji" - no sak jo, pri kazde aktualizaci celou html stranku prepises (php umi vytvaret a ukladat do souboru a umi ho nazvat "stranka.html"). Ale ta aktualizace se nedela kazdou sekundu.

Nahlásit jako SPAM
IP: 193.84.207.–
radek
~ Anonymní uživatel
133 příspěvků
9. 10. 2013   #7
-
0
-

#6 peter
Mohl bys mi poslat odkaz na nějaký příklad, abych to nastudoval?

Nahlásit jako SPAM
IP: 78.128.154.–
peter
~ Anonymní uživatel
3981 příspěvků
10. 10. 2013   #8
-
0
-

http://cz2.php.net/manual/en/function.fwrite.php

Example #1 A simple fwrite() example
<?php
$filename = 'test.txt';
$somecontent = "Add this to the file\n";

// Let's make sure the file exists and is writable first.
if (is_writable($filename)) {

    // In our example we're opening $filename in append mode.
    // The file pointer is at the bottom of the file hence
    // that's where $somecontent will go when we fwrite() it.
    if (!$handle = fopen($filename, 'a')) {
         echo "Cannot open file ($filename)";
         exit;
    }

    // Write $somecontent to our opened file.
    if (fwrite($handle, $somecontent) === FALSE) {
        echo "Cannot write to file ($filename)";
        exit;
    }

    echo "Success, wrote ($somecontent) to file ($filename)";

    fclose($handle);

} else {
    echo "The file $filename is not writable";
}
?>
Nahlásit jako SPAM
IP: 193.84.207.–
radek
~ Anonymní uživatel
133 příspěvků
11. 10. 2013   #9
-
0
-

Díky

Nahlásit jako SPAM
IP: 82.99.140.–
radek
~ Anonymní uživatel
133 příspěvků
13. 10. 2013   #10
-
0
-

Ještě bych se chtěl zeptat, jak se v dnešní době řeší ukládání obsahu webů, dejme tomu například nějaké větší a známější weby nebo e-shopy, kde je mnoho stránek. Ukládají do databáze nebo také generují jednotlivé stránky jako html?


Nahlásit jako SPAM
IP: 82.99.140.–
Kit+15
Guru
13. 10. 2013   #11
-
0
-

#10 radek
Většinou je ukládají do databáze a na výstupu mají reverzní proxy servery.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
3981 příspěvků
14. 10. 2013   #12
-
0
-
Nahlásit jako SPAM
IP: 193.84.207.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý