![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 2 Dołączył: 19.04.2007 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Witam, kombinuję w php aby mi strona index.php wyświetlała różne zawartości html/php w głównej jej części, w zależności od linka jaki kliknę i zrobiłem sobie coś takiego:
w index.php na środku czyli tam gdzie treść będzie zmienna
no i porobiłem sobie plik funkcje który zaincludowałem do index.php
Ale wymaga to register globals on! Jest jakieś obejście tego bez włączania registerek? Chyba, że ktoś zna bardzo podobną opcję funkcjonowania takich rzeczy ;/ ================= Wcześniej robiłem coś na zasadzie includowania plików, co już mi się znudziło i chciałem przejść na funkcje i case, odchodząc od ciągłych include...
// i wywoływałem linkiem <a href="index.php?id=strona1">Strona1</a> Ten post edytował adek- 10.02.2012, 15:22:05 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
"To" nie wymaga włączenia opcji register_globals. Trzeba tylko wiedzieć, jak odbierać zmienne przesyłane w adresie URL. Swoją drogą to właśnie robiłeś, jak to nazwałeś, wcześniej i ten wcześniejszy sposób był dużo lepszy, choć najlepszym rozwiązaniem byłoby połączenie obudwu metod.
Czytając Twój temat można zgadnąć, że nie masz bladego pojęcia o podstawach programowania w PHP. W związku z tym odsyłam do pierwszego lepszego kursu. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 2 Dołączył: 19.04.2007 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Dzięki mortus, niezbyt pomogłeś i jak sam zauważyłeś piszę w przedszkolu jako początkujący... a tamtej metody nie chcę już używać, bo na case'ach będzie mi wygodniej tworząc bezlik funkcji łatwiejszych do edycji niż wcześniej grzebanie w kodzie w mnogich includach.
Niestety nieumiejętność niektórych rzeczy podczas obraniania takich jak ta podstaw przysparza mnie jak widać o pewne kłopoty, nawet jeśli inne kwestie robie "nieco" bardziej rozbudowane... dlatego pytam i proszę o pomoc ![]() oczywiście bierny nie jestem i próbuję również kombinować na własną rękę, ale zająłem się bardziej zagmatwanymi rzeczami narazie :_ |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
1. Mortus ma racje.. we wszystkim co napisał
2. Co ma "bezlik funkcji" do sposobu ich ładowania - include/funckje? 3.
layout.php
Ten post edytował CuteOne 10.02.2012, 18:54:03 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 2 Dołączył: 19.04.2007 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Ad1. CuteOne, a ja wcale się nie wypierałem... próbowałem raczej się wytłumaczyć, że jednak jestem początkującym, a dopiero wieloletnie, bądź jakiekolwiek doświadczenie weryfikuje takie właśnie błędy.
Ad2. bezlik funkcji mam na myśli jeden plik, gdzie mam umieszczone wszystkie case'y na podstrony, a każda podstrona posiada swoje funkcje, gdzie zawarte jest wszystko dotyczące danej sekcji strony... dodawanie/usuwanie tabel i danych, jak i wyświetlanie tych danych potrzebnych w danej sekcji strony, funkcje odpowienich kalkulatorów, czy masy innych zmiennych, przez co ograniczam liczbę plików do jednego includa "funkcje.php". Nie mówię, że jest to dobre rozwiązanie, po prostu dla mnie jak narazie najbardziej wygodne na stan mojej wiedzy dt. PHP/MySQL ![]() Moją bolączke rozwiązała sprawa:
Nie mniej jednak CuteOne jestem ciekaw Twojego rozwiązania, bo być może jest 100 razy lepsze jako bardziej doświadczonego. Nie bardzo tylko wiem o co chodzi z funkcją która sprawdza plik cache i jego świeżość. Chodzi o coś co będzie sprawdzało datę utworzenia, bądź edycji danego pliku który ma zostać zaincludowany? Tzn w folderze /cache/ są inne pliki niż /inlcude/ różniące się aktualną zawartością? Ten post edytował adek- 13.02.2012, 13:16:35 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Przecież to to samo (tablica superglobalna $_REQUEST "zawiera" w sobie inne teblice superglobalne, m.in. $_GET, $_POST) i jeśli w adresie URL nie będzie zmiennej show, to również zostanie wyświetlony błąd-uwaga. Temat include-owania jednego pliku zamiast kilku mniejszych był ostatnio na forum poruszany, przeszukaj tematy wstecz, a dowiesz się co będzie lepszym rozwiązaniem. Pisząc aplikacje strukturalnie również warto zadbać o jak najlepsze odseparowanie warstwy logicznej od warstwy prezentacji i starać się programować zgodnie z regułami DRY i KISS. Najprostszym przykładem jest w Twoim przypadku zbędna instrukcja switch, bo skoro nazwa funkcji przekazywana jest w adresie URL, to wystarczy:
Renderowanie widoków, to nic innego, jak wstawianie plików za pomocą include i wykorzystuje się to praktycznie wszędzie. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 2 Dołączył: 19.04.2007 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
mortus faktycznie, podałeś kapitalny i działający przykład. Dziękuję również za dobre tłumaczenie, łatwiej przyswoić sposób myślenia ku dobrym nawykom programowania. Jeszcze długo nie będę mógł sie nazywac programistom, ale taka pomoc która wskazuje na kierunek i pare definicji związanych z dorbrym programowaniem po obczytaniu się rozjaśnia trochę spraw. Człowiek w głowie robi sobie taki framework sposobu pisania. Przerabianie książek też pozwala pojąć ogrom sposobów podejścia. Dzięki jeszcze raz!
A na marginesie zastanawiam się, czy za pomocą jednej zmiennej get np również GET['show'] da się wrzucić dwie różne funkcje w różne miejsca z różnymi danymi. Mianowicie GET['cars'] i w częśc główną strony ładują sie rzeczy o samochodach, a w menu boczne menu z opcjami dla samochodów, GET['motors'] w menu główne ładuje się funkcja z informacjami o motorach, a w menu boczne funkcja z menu do motorów? Programuję jeszcze strukturalnie, bo nie wiem czy jest sens juz zaczynać uczyć się obiektówki zanim nie opanuję w miarę myslenia i działania z php. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 12:09 |