Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl


zwiedzam
Napisane: 6.04.2011, 11:15:34





Grupa: Zarejestrowani
Postów: 10
Dołączył: 5.08.2009

Ostrzeżenie: (0%)
-----

Ok, ale w takim razie jak wklejam link w przeglądarkę, to błąd też powinien być, a nie ma ! Ten błąd wyskakuje na chwilę i przekierowuje mnie na stronę logowania źródła1. Tak naprawdę nie wiem co to za błąd bo wyskakuje info "Problem w bazie". I po chwili przekierowanie... Więc na pewno nie chodzi o mechanizm db, tylko o coś z sesją..
  Forum: PHP · Podgląd postu: #852497 · Odpowiedzi: 3 · Wyświetleń: 583

zwiedzam
Napisane: 6.04.2011, 10:48:09





Grupa: Zarejestrowani
Postów: 10
Dołączył: 5.08.2009

Ostrzeżenie: (0%)
-----

Pobieram dane z tabel z jednej ze stron (źródłowa1). Chcę mieć pod ręką, na mojej stronie (docelowa) te dane z źródłowej1 i z innej, źródłowej2, żeby je nieco przeliczyć i zrobić sobie znacznie wygodniejszy raport w jednym miejscu. Dane biorę metodą file_get_contents i nie ma problemu jeśli chodzi o źródłową2. Mogę je pobrać, przetworzyć wyrażeniem regularnym. Tu jest ok. Natomiast problem jest z pobraniem danych z źródłowej1. Po pierwsze muszę być zalogowany na tej stronie (jest id sesji). To mi nie przeszkadza, bo na początku pracy zawsze się tam loguję, więc mogę po prostu zrobić to jak zawsze, pobrać link z id sesji i przekleić do mojej strony docelowej. Jednak to nie chce działać. Kiedy próbuję wyświetlić te pobrane dane na próbę, zanim poddam je parsowaniu i wyłuskaniu tego co potrzebuję pojawia mi się informacja, że wystąpił problem z bazą danych. Co się może dziać ? Przecież nie wysyłam żadnych danych POST z powrotem do strony źródłowej1, tylko łykam do siebie i obrabiam na własnym serwerze. Samego linka natomiast jak przekleję z id sesii do innego okienka - działa, więc chyba powinno być ok.... co się więc dzieje ?
  Forum: PHP · Podgląd postu: #852483 · Odpowiedzi: 3 · Wyświetleń: 583

zwiedzam
Napisane: 6.08.2009, 11:25:27





Grupa: Zarejestrowani
Postów: 10
Dołączył: 5.08.2009

Ostrzeżenie: (0%)
-----

Ale temacik gorący (23 min. od tematu i 10 odpowiedzi). Każdy chce mieć własna grę ? winksmiley.jpg
Sam się w to bawiłem i podzielam zdania innych tutaj (ale dopiszę coś niecoś):

0.Pograj w kilka przynajmniej gierek tego typu i skumaj o co naprawdę chodzi.
1.Pomyśl, potem Google. Jak znasz PHP i Majsqula to w sumie dziwne pytanie zadałeś.
2.Miej pomysł konkretny świata i założeń gry - opisz cele, ważniejsze algorytmy <- tzw. plan winksmiley.jpg
3.Zastanów się co z grafiką (jest / nie ma). Zastanów się nad Interfacem.
4.Zrób frameworka z obsługą podstawowych, powtarzalnych czynności - obsługa DB, wyświetlanie, obsługa kont userów, opcji etc..
5.Zacznij pisać grę, ale wcześniej odwiedź strony traktujące o tym bezpośrednio (znowu Google), hasła: via browser, gry przez przeglądarkę etc..

No i w ogóle masz trochę mało lat z tego co łapię ; ) To jest fajna cecha (świeże podejście być może), albo i nie fajna (b. doświadczenia, brak dystansu)...
powodzenia.
  Forum: Hydepark · Podgląd postu: #645100 · Odpowiedzi: 41 · Wyświetleń: 4 935

zwiedzam
Napisane: 5.08.2009, 11:16:21





Grupa: Zarejestrowani
Postów: 10
Dołączył: 5.08.2009

Ostrzeżenie: (0%)
-----

"Drobna" edyta poprzedniego tematu (bo może nie każdemu chce się czytać winksmiley.jpg )

kwestia taka:

  1. <?php
  2. class pseudosingleton {
  3.    
  4.    private $instancje = array();
  5.  
  6.    function __construct() {
  7.        $GLOBALS['obi'] = $this
  8.    }
  9.  
  10.    //Warunki ladujace plik, klase i zmienne, zwracające odwołania do instancji i reszta...
  11. }
  12. ?>


W ten sposob, bo malym zabiegu w postaci frywolnej funkcji gdzieś poza klasą:

  1. <?php
  2. function QUICK() {
  3.    return $GLOBALS['obi'];
  4. }
  5. ?>


Można w dowolnym miejscu ('na zewnatrz', w innej funkcji, w klasie, etc..) korzystać z referencji do danej klasy bez konieczności ładowania jej jako $this->itd, czy global $x.. np.:

  1. <?php
  2. QUICK()->cos->gdzies();
  3.  
  4. class x {
  5.  
  6.    function jakasFunkcja() {
  7.        QUICK()->cos->cosInnego();
  8.    }
  9. }
  10. ?>


itd...

Moje pytanie brzmi - czy to bezpieczne !?
Po zrzucie tablicy $GLOBALS widać 'flaki' wszystkich stworzonych w ten sposob obiektow.
Jeśli więc ktoś doczepiłby moją stronę do swojej i wywołał var_dumpa (lub w inny sposób) - mógłby podejrzeć nazwy pól i tym samym dalszą strukturę obiektów położonych niżej. Jednak ten sposób jest niezmiernie wygodny - po dodatkowej zmienia "QUICK" na "Q" - odwoływanie się z dowolnego miejsca do dowolnego obiektu to czysta przyjemność. Jak więc zabezpieczyć się przed podejrzeniem pól w $GLOBALS ?
  Forum: Przedszkole · Podgląd postu: #644634 · Odpowiedzi: 0 · Wyświetleń: 312

zwiedzam
Napisane: 6.08.2009, 10:25:09





Grupa: Zarejestrowani
Postów: 10
Dołączył: 5.08.2009

Ostrzeżenie: (0%)
-----

Znalazłem ; )

Jak by ktoś szukał rozwiązania podobnego typu - brzmi: debug_backtrace(); tongue.gif
  Forum: Przedszkole · Podgląd postu: #645059 · Odpowiedzi: 8 · Wyświetleń: 1 090

zwiedzam
Napisane: 5.08.2009, 11:08:12





Grupa: Zarejestrowani
Postów: 10
Dołączył: 5.08.2009

Ostrzeżenie: (0%)
-----

@ - wolę używać w includeX - jeden wpis do wszystkich includów za jednym zamachem.
try-catch w funkcjach wywołujących to zawsze coś, ale daje więcej linii kodu zamiast jednego słowa + drugie w nawiasie.
Hmm.. .będzie trzeba się na coś zdecydować.

thx za odp.
  Forum: Przedszkole · Podgląd postu: #644633 · Odpowiedzi: 8 · Wyświetleń: 1 090

zwiedzam
Napisane: 5.08.2009, 09:43:25





Grupa: Zarejestrowani
Postów: 10
Dołączył: 5.08.2009

Ostrzeżenie: (0%)
-----

Zwykły komunikat niestety nie wystarczy - sporo powiązań klasowych, chcę wiedzieć szybko dokładnie która klasa > metoda i zbadać dlaczego coś jest nie tak. Co do obsługi Exceptions - ok, ale jak ?

  1. <?php
  2. try {
  3. if (!include($file)) throw new Exception('tresc');
  4. }
  5. catch (Exception $e) {
  6. //i co ? $e->getCO ?;
  7. }
  8. ?>


Próbowałem już bez throw, niestety nadal pojawiał się komunikat, którego nie chcę i nie kierowało mnie do bloku catch, a nawet jak się udało mniej więcej tak j.w. to jak pobrać dane dot. pliku nadrzędnego, który wywołał funkcję ?
  Forum: Przedszkole · Podgląd postu: #644585 · Odpowiedzi: 8 · Wyświetleń: 1 090

zwiedzam
Napisane: 5.08.2009, 09:31:34





Grupa: Zarejestrowani
Postów: 10
Dołączył: 5.08.2009

Ostrzeżenie: (0%)
-----

  1. <?php
  2. function includeX($plik) {
  3. include($plik);
  4. }
  5. ?>


Chcę stworzyć własną funkcję, dzięki której będę miał większą kontrolę nad przebiegiem doczepiania plików.

Problem pojawia się jednak w momencie, gdy pliku brak, bo info o nieistniejącym pliku dotyczy miejsca gdzie znajduje się funkcja (plik w którym definiuję funkcję, linia z include()), a chciałbym wiedzieć raczej o miejscu gdzie ta funkcja została wywołana (plik wywołujący, linia z includeX()).
Z tego co wiem - można od biedy przekazywać parametr __FILE__, __LINE__ etc, podczas wywoływania funkcji, ale nie chodzi przecież o to by wypisywać długie linie kodu, tam gdzie właściwie chodzi tylko o jeden parametr - ścieżkę do pliku jaki chcę dołączyć.

Czy jest więc możliwe pobranie informacji o wywołującym w jakiś przystępny sposób ?
  Forum: Przedszkole · Podgląd postu: #644574 · Odpowiedzi: 8 · Wyświetleń: 1 090

zwiedzam
Napisane: 5.08.2009, 09:36:59





Grupa: Zarejestrowani
Postów: 10
Dołączył: 5.08.2009

Ostrzeżenie: (0%)
-----

Fajne forum - Ledwie zdążyłem się zapisać i zadać pytanie ; )
Tak, o to chodziło. Dzięki Janusz.
  Forum: Przedszkole · Podgląd postu: #644578 · Odpowiedzi: 4 · Wyświetleń: 576

zwiedzam
Napisane: 5.08.2009, 09:21:41





Grupa: Zarejestrowani
Postów: 10
Dołączył: 5.08.2009

Ostrzeżenie: (0%)
-----

nic ! Chodzi o to, że go nie ma. powinien być wygenerowany błąd jak zazwyczaj:

Warning: include(test.php) [function.include]: failed to open stream: No such file or directory in...

a zamiast tego jest ta ciekawostka..
  Forum: Przedszkole · Podgląd postu: #644569 · Odpowiedzi: 4 · Wyświetleń: 576

zwiedzam
Napisane: 5.08.2009, 09:03:44





Grupa: Zarejestrowani
Postów: 10
Dołączył: 5.08.2009

Ostrzeżenie: (0%)
-----

Witam.

Po wpisaniu (w czystym pliku index.php, lub gdziekolwiek indziej:) <?php include('test.php'); ?> i odpaleniu tego w przeglądarce pojawia się komunikat:

#!/usr/bin/php -q phpcs is not available. Please first install the PHP_CodeSniffer

O cóż tu chodzi ? Nie mogę dołączyć pliku test.php przez to... to jakaś zarezerwowana nazwa ? Błąd przestrzeni nazw ? Skąd to się bierze,
bo inne nazwy spokojnie wchodzą.. wystarczy zmienić jedną literę chociaż..
  Forum: Przedszkole · Podgląd postu: #644564 · Odpowiedzi: 4 · Wyświetleń: 576


New Posts  Nowe odpowiedzi
No New Posts  Brak nowych odpowiedzi
Hot topic  Popularny temat (Nowe)
No new  Popularny temat (Brak nowych)
Poll  Sonda (Nowe)
No new votes  Sonda (Brak nowych)
Closed  Zamknięty temat
Moved  Przeniesiony temat
 

RSS Wersja Lo-Fi Aktualny czas: 5.05.2024 - 07:12