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 |
#2 · Zasláno: 17. 1. 2012, 21:44:01
Proč je to tak zbytečně komplikované? Proč se ta proměnná jmenuje stejně? Proč ve vypis.php neni nějaká funkce?
|
||
Han Profil |
#3 · Zasláno: 17. 1. 2012, 22:09:34
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 |
#4 · Zasláno: 17. 1. 2012, 22:26:08
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 |
#6 · Zasláno: 17. 1. 2012, 23:06:39
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 |
#7 · Zasláno: 18. 1. 2012, 07:43:21
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(); |
||
Han Profil |
#8 · Zasláno: 18. 1. 2012, 20:05:22
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. if(isset($_GET['stranka'])){ $vnitrek=$_GET['slozka']."/".$_GET['stranka'].".php"; //echo $vnitrek; include($vnitrek); } |
||
Han Profil |
#10 · Zasláno: 18. 1. 2012, 22:25:13
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 |
#13 · Zasláno: 19. 1. 2012, 07:48:19
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 |
#14 · Zasláno: 19. 1. 2012, 14:56:24
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 |
#15 · Zasláno: 19. 1. 2012, 15:17:28
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 |
#16 · Zasláno: 19. 1. 2012, 17:04:25
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 |
#17 · Zasláno: 21. 1. 2012, 16:58:51
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
|
||
Časová prodleva: 11 let
|
0