Autor Zpráva
Han
Profil
Ahoj,
mám súbor, v ktorom sú PHP skripty a v nich istá premenná $xy. Tento súbor potrebujem vložiť do iného na základe podmienky. V tomto nadradenom súbore mám definovanú túto premennú $xy. Pre pochopenie: potrebujem načítať súbor "vypis.php", ktorý obsahuje php skripty a v nich použitú premennú $xy do súboru "index.php", v ktorom mám už skôr nadefinovanú túto premennú. Ale potrebujem to tak aby sa tieto skripty nevykonávali, len sa načítal obsah súboru, vyplnili sa jeho časti pomocou premennej $xy a následne file_put_contents() a zápis do iného súboru. Budem vďačný za rady. PHP veľmi neovládam :)
Spectator
Profil
Proč je to tak zbytečně komplikované? Proč se ta proměnná jmenuje stejně? Proč ve vypis.php neni nějaká funkce?
Han
Profil
Ja ani neviem preoč to je ako to je, nejak nerozmýšľam. Ide mi o to že v indexe mám form. Tento odosielam na index, kde sa spracuje (insert do DB, vytvorenie súboru, hláška užívateľovi). A podľa typu vybraného používateľom potrebujem vytvoriť jeden z troch variant súborov. Lenže do týchto súborov potrebujem zároveń zapísať hodnoty zadané používateľom vo formulári. S tým, že ešte insertujem isté dáta do DB.
Bertram
Profil
Han:
Ahoj, zkus být trochu konkrétnější, vždy když čtu podobné příspěveky, vzpomenu si na svého spolupracovníka, který říkává „To je takové udělátko, to je k tem a to je od teho‟.
Han
Profil
Bertram:
Ako konkrétnejší?
Mám formulár: Názov(text),Popis(text),Typ(radio)
po odoslaní vykonávam INSERT zadaných hodnôt do DB.
Potom však ale potrebujem vytvoriť súbor podľa vybraného typu vo formulári. Tento súbor ale obsahuje php skripty a tu prichádza problém. Keď zadám do premennej obsah budúceho súboru, ktorý vytváram, rozhodí sa mi to, pretože v tomto budúcom súbore sú všade úvodzovky, a neviem ako to ošetriť.
Pôvodne som mal problém so zapísaním vložených hodnôt z formulára do tohto súboru, no došlo mi to.
Bertram
Profil
Han:
Jakých hodnot nabývá Typ a o jaké soubory jde a jaký je jejich účel atd, zkrátka jsem měl na mysli vysvětlení (popis) konkrétního problému.
Už tě nebudu dál trápit, třeba je chyba ve mě a jen si nedokážu představit k čemu to může vlastně sloužit.
Ugo
Profil
použij normální template a nemixuj něco tam kde to nemá být, mohlo by ti pomoct ob_start()
ob_start();
include('file.php');
$tmp=ob_get_contents();
ob_end_clean();
na uvozovky se kdyžtak nechá použít addslahes(), str_replace, preg_replace .... na vše je možností spousta, ale i já se přikláním k tomu že dobře nechápu oč jde, ale působí to na mě z popisu dost nečistě
Han
Profil
Napíšem teda o čo mi ide. Vytváram nové rubriky. Po vybratí názvu, popisu a typu(možnosti "statik","vypis" či "index") užívateľom insertujem toto do DB tabuľky rubriky. Toto mi slúži na generovanie menu a i. Ale potrebujem aj vytvoriť stránku .php ktorá bude obsahovať kód zabezpečejúci samotný výpis článkov, či stránky. A s vytvorením tohto súboru mám problém.
nemeja
Profil
No já bych to řešil základním souborem index.php a pak přes mod_rewrite v htaccess si pomkocí metody get, posílat názvy stránek a do předem vytvořený stránky na základě hodnoty přijaté z $_GET načítat stránku z DB.
Takhle jsem to řešil já - je to čistě to vkládání
.htaccess
RewriteRule ^(ucet|profil)$ index.php?slozka=uzivatel&stranka=prehled_profilu
RewriteRule ^kosik$ index.php?slozka=uzivatel&stranka=kosik
// atd.
PHP:
if(isset($_GET['stranka'])){
  $vnitrek=$_GET['slozka']."/".$_GET['stranka'].".php";
  //echo $vnitrek;
  include($vnitrek);
}
Han
Profil
Ale zas.. nechcem kvôli vytvoreniu jedného súboru meniť logiku mojej stránky ;)
panther
Profil
Han:
nechcem kvôli vytvoreniu jedného súboru meniť logiku mojej stránky ;)
ta stávající logika je dost nelogická. Chápu dobře, že pro každý článek generuješ PHP soubor, který je totožný s ostatními a liší se jen obsahem, tedy článkem?

Pokud ano, zvolil jsi špatný postup a správný je ten, který nastínil nemeja: mít jednu šablonu a do té vypisovat data z DB na základě GET proměnné.
Han
Profil
Takže je nesprávne mať súbor istej rubriky, napríklad weby.php, v URL ?str=weby? S tým že v indexe includujem súbor z GET a vo weby.php už vypisujem dáta z DB. Prepáčte, ale som začiatočník. Čo vlastne robí tento mod_rewrite?
Ugo
Profil
Han:
Není to nesprávné a ani se o tom takto nemluví (předpoklad byl jiný), mod_rewrite obsahuje pravidla cest (co->kam) a dělá tedy např. hezké url, takže místo ?str=weby bys měl /weby/ , výsledek je ale stejný. Většinou se používá na to aby téměř ze všeho volal index, kde se pak rozhodne co s požadavkem dál.

Ukládání souborů jako .php a ne v db taky není špatně, jen pro tvůj účel je to nedostačující, udělat to jde a aji celkem snadno, ovšem při jakékoliv úpravě, rozšíření atp. to bude pořád těžší udržet, db máš tak tam jen přihoď data a na práci s php soubory se vykašli ;)
Han
Profil
Takže mám prehodiť kódy z .php súborov do DB a potom na základe GET vkladať rôzne kódy podstránok z DB, ak tomu správne rozumiem? Som možno nechápavý, ale ako potom ajtak zapíšem do DB, nie do súboru teda kódy? Ide mi o to, že mám nejaký defaultný kód stránky výpisu článkov. No, a do tohoto kódu potrebujem dosadiť dáta zadané používateľom viz. [#5]? A, prepáčte, ale na čo presne by bol mne takýto mod rewrite? Potrebujem niečo presmerovávať?
Ugo
Profil
zde dochází k nedorozumění, php kód do db neukládej, ale generovat php soubor na základě uživatelem zadaných dat není optimální, ať kvůli bezpečnosti, tak z hlediska přehlednosti a udržovatelnosti. Jelikož dokážeš tenhle soubor vygenerovat jednou při uložení, není problém ho z uložených dat generovat pokaždé ne? Jinými slovy si vytvoříš ručně šablony a ty pak budeš plnit daty, URL v tomhle případě jestli chápu by se mohla změnit třeba na ?str=weby&id=5 tak aby sis předal údaj z kterého dokážeš data zpracovat

Přesměrovávat nepotřebuješ nic, nepotřebuje to ani google, ani jpw ... v situacích kdy nemáš hotový router ti to akorát bude ztěžovat práci (ale naučil bych se to)
Han
Profil
Snažím sa porozumieť, no veľmi sa mi nedarí. Takže budem mať šablónu výpisu článkov. Podľa prvého parametra z GET budem selectovať z DB priradenej tomuto parametru, takže ak je ?str=weby tak budem ťahať výpisy článkov z weby. Ďalej ale potrebujem nad tento výpis napísať nadpis rubriky (O weboch). Takže tiež podľa GET vyberiem čisto tento názov a vložím ho do už pripravenej šablóny na jeho miesto, tiež pomocou DB. Rozumiem tomu správne? Tým pádom pre každú rubriku nebudem pridávať nový .php súbor, ale budem pracovať výlučne z DB (vytvorenie tabuľky s článkami v danej kategórii, uloženie nadpisu, popisu, typu), však?
Han
Profil
Už som to pochopil a veľmi pekne vám ďakujem :) Už prekopávam mojú nelogickú logiku a myslím že som spravil svoj systém rubrík obratnejší. Stačia dve príkazy na DB a mám novú rubriku. A posledné čo mi treba riešiť je málo miesta v menu :D

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: