Witam, mam problem bo tworzę bazę produktów i przy dodawaniu produktu do bazy mysql chce dodać stronę która się tworzy za pomocą funkcji fopen();, lecz tam jako wartość można dać tylko zmienną, a mi chodzi o to aby dodać całą stroną z wyglądem i przy danych takie jak specyfikacja dodać zmienne, a pisanie całej strony pod jedną zmienna to się tak chyba nie robi
Ja nic z tego co opisałeś nie zrozumiałem (tj. nie wiem, na czym konkretnie polega Twój problem). Może podaj fragment kodu, określ jak jest do tej pory, a jak chciałbyś (przykładowo) żeby to wyglądało?
Robię taki jakby sklep internetowy. Mam tam zakładkę produkty, gdzie je dodaje poprzez panel administracyjny produkty do bazy danych i wyświetlają się one w zakładce produkty. I teraz do każdego produktu chcę dodać link “więcej”, gdzie poprzez kliknięcie przechodzi do specyfikacji produktu. Chodzi dokładnie mi o to, że dodając do bazy danych produkty chce jednocześnie utworzyć stronę ze specyfikacją do tego produktu. Strony się tworzy za pomocą polecenia fopen(“nazwa_strony.php”,“w”); i edycja fwrite(“nazwa”,"$tresc"); i w zmiennej tresc mozna wpisac co ma zawierac, a ja chce zeby strona zawierała całą stronę główną z innym środkiem i innymi zmiennymi do specyfikacji.
Jeśli działasz z bazą danych (tu: MySQL), to czemu część danych sklepu chcesz trzymać w osobnych plikach HTML (zawierających to “więcej” o danym produkcie)? Nie lepiej jest te dane (zawartość strony HTML) trzymać w bzie danych (w zmiennej typu TEXT lub BLOB)?
Poza tym, jak używasz fopen, to po otwarciu pliku (tu: do zapisu) otrzymujesz uchwyt (handler) i to jego używasz w funkcji fwrite, a z tego co napisałeś, robisz to błędnie - powinno być tak:
$fp = fopen("nazwa_strony.php","w");
fwrite($fp,$tresc);
fclose($fp);
I potem w treści właściwej strony (pokazującej to “więcej”) robisz w miejscu, gdzie te indywidualne dane maja się pokazywać, po prostu include(“nazwa_strony.php”) zaczytujący stosowny kod (ale jako PHP).
Zamiast funkcji żywcem wyjętych z c++ użyj
$content = file_get_contents (‘http://www.example.com/’);
file_put_contents (‘foo.txt’, $content);
nie, nie robi się tak. Niebezpieczne, niewygodne, trudne do testowania, takie rozwiązanie nie ma żadnych plusów.
czemu BLOB?
Dokładnie, te funkcje upraszczają sprawę w PHP.
A czemu BLOB? Dla danych binarnych (np. zdjęć), ale jeśli to ma być tylko tekst, to wystarczy TEXT (do 64 KB) lub MEDIUMTEXT (jeśli więcej - do 16MB).
ale zaraz… ty chcesz tworzyć plik.php od tego towaru?
Jeśli dobrze zrozumiałem to stąpasz po grząskim gruncie.