Autor | Zpráva | ||
---|---|---|---|
Vilak Profil |
#1 · Zasláno: 23. 7. 2015, 02:38:58
Zdravím. Zase jsem tu :/
Mám soubor, který jsem přímo vytvořil pomocí fopen($group.".php", "w") a chci do tohoto souboru vložit code, který obsahuje html, php, mysql (v budoucnu by mohl i css i js). Samotný code (co tam chci vkládat) nemám ještě tak úplně sepsaný. Můj code vypadá takto a nevím, jak udělat daný zápis: 1 if (!file_exists("../fotogalerie")) { if (!file_exists("../fotogalerie")) {
mkdir("../fotogalerie", 0777);
}
if (!file_exists("../fotogalerie/".$group)) {
fopen("../fotogalerie/".$group.".php", "w");
}
$zapis = fopen("../fotogalerie/".$group.".php", "a");
fwrite($zapis, /* A TADY CHCI VLOŽIT TEN CODE */);
fclose($zapis); |
||
Camo Profil |
#2 · Zasláno: 23. 7. 2015, 02:59:11
Vilak:
K tomu potrebuješ fread() na prečítanie súboru. Alebo file_get_contents() a file_put_contents(). |
||
Vilak Profil |
Ano, došel jsem (po přečtení několika fór) ke stejnému názoru. Teď code (funkční) vypadá takto:
1 if (!file_exists("../fotogalerie")) { if (!file_exists("../fotogalerie")) {
mkdir("../fotogalerie", 0777);
}
if (!file_exists("../fotogalerie/".$group)) {
fopen("../fotogalerie/".$group.".php", "w");
}
$soubor = fopen("fotogalerie_vypis.php", "r");
$vypis = fread($soubor, 100000);
fclose($soubor);
$zapis = fopen("../fotogalerie/".$group.".php", "a");
fwrite($zapis, $vypis);
fclose($zapis); fwrite($zapis, /*buď je nějak připojit tady a nebo do proměné $vypis, ale nevím jak - potřebuji s nimi pak dál pracovat*/$vypis); fwrite($zapis, /*buď je nějak připojit tady a nebo do proměné $vypis, ale nevím jak - potřebuji s nimi pak dál pracovat*/$vypis); |
||
Alphard Profil |
#4 · Zasláno: 23. 7. 2015, 03:36:03
Tento způsob generování kódů zdá se mi poněkud nešťastným.
Co kdyby se z kódu v fotogalerie_create.php vytvořila funkce s parametry $headline a $group? Pak by stačilo tuto funkci volat. |
||
Vilak Profil |
Alphard:
Promiň, ale nevím, jak to myslíš. V code, který chci vkládat, se mi několikrát objevuje <?php ?>, což celý přenos code stěžuje. Jak by měla daná funkce asi vypadat? |
||
Alphard Profil |
#6 · Zasláno: 23. 7. 2015, 10:33:12
Vilak [#5]:
To zas takový problém není, i tělo funkce lze přerušit a něco vypsat. Dobrý návrh to není, ale víc teď zřejmě nezvládnete. „Jak by měla daná funkce asi vypadat?“ Nevím jak vypadá součaný kód. Ani by to nemusela být funkce, stačilo by použít třeba include, ale neměl by se generovat nový kód. Měla by existovat jediná verze kódu, která se bude volat opakovaně. |
||
Vilak Profil |
Já to vyřešil jiným, asi příliš zbytečně složitým způsobem.
Vytvořil jsem si další tabulku v databázi (gallery_basic), kde se mi zapíší proměnné $headline a $group z fotogalerie_create.php. Poté ve fotogalerie_vypis.php získám $group z url adresy (protože $group mi slouží jako "rozdělovač"). Pomocí $group najdu v gallery_basic i proměnnou $headline, kterou poté vypíšu, a tak získám obě proměnné, které potom můžu zapsat do klasické databáze (gallery) při nahrávání obrázku. A vkládání code do souboru jsem nechal tak, jak bylo, tedy pomocí fopen. Takže to vypadá takto: fotogalerie_create.php 1 require_once "../include/db.php"; require_once "../include/db.php";
mysql_query("INSERT INTO `gallery_basic` (`group`, `headline`) VALUES ('".$group."', '".$headline."')");
$soubor = fopen("fotogalerie_vypis.php", "r");
$vypis = fread($soubor, 100000);
fclose($soubor);
$zapis = fopen("../fotogalerie/".$group.".php", "a");
fwrite($zapis, $vypis);
fclose($zapis); 1// získání proměnné group z aktuální adresy // získání proměnné group z aktuální adresy
$group_url2 = $_SERVER['PHP_SELF'];
$group_url1 = explode(".", $group_url2);
$group_url = explode("/", $group_url1[0]);
$group_normal = $group_url[2];
//echo $group_normal; // kontrola pro vypsání aktuální proměnné $group
require_once "../include/db.php";
$dotaz = mysql_query("SELECT * FROM `gallery_basic` WHERE `group` = '$group_normal' LIMIT 1");
while ($promenne = mysql_fetch_assoc($dotaz)) {
$headline = $promenne['headline'];
$group = $promenne['group'];
}
//echo $group." - ".$headline; // kontrola proměnných $group a $headline Pozn.: Vím, že získání proměnné group takto není ideální, protože kdyby se tam přidala někde další složka apod., tak by to logicky nefungovalo. Ovšem s tím, že by se tam přidávala kdykoliv jakákoliv další složka nepočítám. |
||
Keeehi Profil |
#8 · Zasláno: 23. 7. 2015, 13:22:31
To je tak moc špatně až to bolí. Předně generovat spustitelné soubory je blbost. Proč to nemáte jen jednou jako
galerie_vypis.php?group=jméno-skupiny ? Nelíbí se vám tato URL? To se dá klidně změnit (mod_rewrite) ale vespod to bude fungovat pořád jen s jedním souborem. A na co se to dá změnit? No třeba na www.example.com/fotogalerie/jméno-skupiny . To už i vypadá dobře, nebo ne?
|
||
Camo Profil |
#9 · Zasláno: 23. 7. 2015, 14:50:25
Vilak:
Neboj sa zahodiť blbé nápady. |
||
Vilak Profil |
Keeehi:
Díky, to mě nenapadlo. Říkám, že jsem nevěděl, a tak jsem to udělal způsobem, který funguje, ale vážně není pěkný... Btw. parametry v url (jestli je to dobře) mě nenapadly také z toho důvodu, že s tím moc neumím. Byl by někde nějaký odkaz, kde by to bylo lépe vysvětlené? |
||
Keeehi Profil |
#11 · Zasláno: 23. 7. 2015, 17:13:33
Vilak:
Nějaký základ najdeš na www.pehapko.cz/zakladni-kurz/12-predani-dat |
||
Vilak Profil |
#12 · Zasláno: 23. 7. 2015, 18:50:26
Díky moc, podívu se na na to ;)
|
||
Časová prodleva: 10 let
|
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.
Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:
Běda vám, jestli to bude blábol.
0