Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Podwójnie wczytywana funkcja
Forum PHP.pl > Forum > Przedszkole
Tomplus
Witam,

Dostaje błąd na stronie:
  1. Fatal error: Cannot redeclare zapytaj() (previously declared in /html/_system/func/mysql.php:23) in /html/inc/funkcje.inc on line 64


wyjasniając:
mam dwa pliki index.php - strona działająca
i nowyindex.php - czyli strona która ma w przyszłości zamienić starą

dla nowej ejst zrobiony .htaccess i przyjazne linki. w postaci strona?cos=1

takiego coś ja mam: pokaz?pobierz=1
i wyskakuj mi błąd wysyłając formularz na: pokaz?pobierz=2

Powyższy błąd się pokazuje mumo że w funkcje w katalogu _system/ należą TYLKO i WYŁĄCZNIE do nowyindex.php, a w tym drugim tylko do index.php


Może wydać się trudne pytanie, ale ja już nad tym siedzę trochę czasu (4h) i nie mogę rozkminić w jaki sposób wczytuje się plik funkcje.inc jeżeli w całym katalogu, we wszystkich plikach nowej strony nie ma ani jednego odnośnika do starych skryptów. nawet w stałych nie ma nic na temat adresu.
Jedyne co pokrywa się to te same nazwy funkcji.

Przeszukałem wszystkie (wszyściutkie) pliki nowej strony i nigdzie nie ma wzmianki o takiego słowa jak "funkcje" a co dopiero funkcje.inc
W bazie MySQL też nie ma.


Dodatkowe szczegóły:
Plik pobierz.php
  1. <?php
  2. include ('podaj.php'); // jak wylacze/skasuj tą linie to jest OK.
  3. include ('gosp.php');
  4. include ('gosc.php');
  5. include ('taktyki.php');
  6. ?>


plik podaj.php
  1. <?php
  2.  
  3. // tak dobrze widać, nic nie ma.
  4. // tzn. całą treść skryptu wrzuciłem w komentarz
  5. // błąd jest nadal !
  6. ?>



Powtórze się ale:
nowyindex.php
wczytuje _system/func/rozne funkcje.php // żadna nie ma ścieżki nawet w postaci cofnięcia do starych skryptów
potem wczytuje strony... wszystkie działają.
ale tutaj też żadna nie ma odniesienia do starych funkcji
potem pojawia się strona pokaz.php
która ma include pobierz.php
a ta z kolei include podaj.php
(czyli 4 poziomy include i require)



Jak może zrobić się include inne pliku z zupełnei innej strony ?
Czy jest coś takiego możliwe ?
Berg
Zainteresuj się tematem debuggerów w php. Dzięki temu będziesz mógł prześledzić wykonywanie skryptu linijka po linijce i znaleźć miejsce w którym skrypt dołącza niechciane pliki. Dodatkowo jeśli obie funkcje zapytaj są takie same to możesz użyć function_exists ale ja bym na Twoim miejscu raczej postawił na rozwiązanie problemu przez debugger, przyda się w przyszłości winksmiley.jpg
phpek
jeżeli zawartosc tamtego pliku to
  1.  
  2.  
  3. // tak dobrze widać, nic nie ma.
  4. // tzn. całą treść skryptu wrzuciłem w komentarz
  5. // błąd jest nadal !
  6.  


i to wszystko

to dlatego jest ten blad zmien to na

  1. <?php
  2.  
  3.  
  4. // tak dobrze widać, nic nie ma.
  5. // tzn. całą treść skryptu wrzuciłem w komentarz
  6. // błąd jest nadal !
  7.  
  8. ?>
Tomplus
taa... po prostu zawsze zapominam że jak daje tagi PHP na forum to z automatu dodadzą się znaczniki <?php ?> ale mimo wszystko to nie ma znaczenia... nadal jest błąd.

Cytat(Berg @ 6.09.2010, 18:05:55 ) *
Zainteresuj się tematem debuggerów w php. Dzięki temu będziesz mógł prześledzić wykonywanie skryptu linijka po linijce i znaleźć miejsce w którym skrypt dołącza niechciane pliki. Dodatkowo jeśli obie funkcje zapytaj są takie same to możesz użyć function_exists ale ja bym na Twoim miejscu raczej postawił na rozwiązanie problemu przez debugger, przyda się w przyszłości winksmiley.jpg


ale jest jakiś debbuger który mogę wbudować w skrypt ?

bo zauważyłem że są... ale zewnętrzne rozwiążania, biblioteki do PHP.
Berg
Debuggera najlepiej używać z jakimś edytorem który to wspiera, np. Eclipse PDT. Dodatkowo w swoim apache będziesz musiał zainstalować xdebug (o ile domyślnie nie będzie zainstalowany), instrukcję znajdziesz tutaj lub tutaj po polsku.
Darti
zamiast include zrób include_once i powinno być ok
Tomplus
@Berg
Ale jak to zrobię jeżeli to jest serwer zewnętrzny i nie mogę modyfikować jego usług.
a debugera nie ma.

@Darti
to nic nie daje. ani require. a nie require_once
Noidea
debug_print_backtrace (ewentualnie debug_backtrace) nie wystarczy? Wstaw sobie tą funkcję na początku funkcje.inc i sprawdź gdzie ten plik dołączasz
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.