Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Blad z ktorym sobie nie moge poradzic
Forum PHP.pl > Forum > Przedszkole
alex19
W jednym jedynym(chyba) skrypcie pokazuje mi sie cos takiego.
Cytat
Fatal error: Cannot redeclare odbierz() (previously declared in c:\appserv\www\xxxxx\functions\secure.php:9) in c:\appserv\www\xxxxx\functions\secure.php on line 9

Czytalem archiwum i niestety nic mi nie pomoglo. Nie dziala ani include_once, ani require_once.
Dzis zmienilem ustawienia serwera i wylaczylem register_globals. Nie sadze by to moglo miec jakis wplyw poniewaz wszystkie inne skrypty dzialaja poprawnie, a ten nie.

plik secure.php
  1. <?php
  2. function odbierz($pole) { //to linia numer 9 wczesniej sa komentarze
  3. $pole = trim($pole); // uwam zbędne spacje
  4. if (get_magic_quotes_gpc()) $pole = stripslashes($pole); // usuwam ukośniki
  5. $pole = str_replace(
  6. array("&" , '"'  , "<"  , ">"  , "0", "" , "'"),  // z
  7. array("&amp;", "&quot;", "&lt;", "&gt;", "" , "", "'" ), // na
  8. $pole
  9. );
  10. return $pole;
  11. }
  12. ?>

Pod spodem jest jeszcze pare innych funkcji, ale nazwa na 100% sie nie powtarza.

plik ze skryptem
  1. <?php
  2. include './functions/secure.php';
  3.  
  4. # odbieramy dane z formularza #
  5. $nazwa  = odbierz($_POST['nazwa']);
  6. $nip  = odbierz($_POST['nip']);
  7. $kod  = odbierz($_POST['kod']);
  8. $miasto  = odbierz($_POST['miasto']);
  9. $emial  = odbierz($_POST['email']);
  10. $tel1  = odbierz($_POST['tel1']);
  11. $tel2  = odbierz($_POST['tel2']);
  12. $os_kontakt = odbierz($_POST['os_kontakt']);
  13. $regon  = odbierz($_POST['regon']);
  14. $krs  = odbierz($_POST['krs']);
  15. $il_prac  = odbierz($_POST['il_prac']);
  16. $os_up  = odbierz($_POST['os_up']);
  17. $rok_zal  = odbierz($_POST['rok_zal']);
  18. $woj = odbierz($_POST['wojewodztwo']);
  19. $branza = odbierz($_POST['branza']);
  20. $idf = $_POST['idf'];
  21.  
  22. # ustalanie pola checkbox #
  23. if ( $_POST['zgoda'] == 'on' ) {
  24. $zgoda = 1;
  25. }
  26. else {$zgoda = 0;}
  27.  
  28. # obrobienie branzy #
  29. if ( $branza == '' ) {
  30. $branza = '';
  31. }
  32. else {
  33. $branza = "branza='$branza',";
  34. }
  35.  
  36. # obrobienie wojewodztwa #
  37. if ( $woj == '' ) {
  38. $woj = '';
  39. }
  40. else {
  41. $woj = "wojewodztwo='$woj',";
  42. }
  43.  
  44. # zerowanie bledow #
  45. $blad  = FALSE;
  46. $blad_2 = FALSE;
  47. $b_nazwa = '';
  48. $b_nip = '';
  49. $b_emial  = '';
  50. $b_kod  = '';
  51. $b_miasto  = '';
  52. $b_tel1  = '';
  53. $b_tel2 = '';
  54. $b_os_kontakt= '';
  55. $b_regon  = '';
  56. $b_krs  = '';
  57. $b_il_prac  = '';
  58. $b_os_up  = '';
  59. $b_rok_zal  = '';
  60.  
  61. #############################
  62. # sprawdzamy otrzymane dane #
  63. #############################
  64.  
  65. # prawdzamy czy nazwa nie pusta #
  66. if ( $login == '' ){
  67. $blad  = TRUE;
  68. $b_nazwa  = 'class="blad"';
  69. }
  70.  
  71. # sprawdzamy nip #
  72. if (nip($nip)) {
  73. $nip = preg_replace("/[^0-9]/", "", $nip);
  74. }
  75. else {
  76. $blad = TRUE;
  77. $b_nip = 'class="blad"';
  78. }
  79.  
  80. # sprawdzamy kod pocztowy #
  81. if ( $kod != '') {
  82. if ( !eregi("[0-9]{2}-[0-9]{3}",$kod) ){ 
  83. $blad_2 = TRUE;
  84. $b_kod = 'class="blad"';
  85. }
  86. }
  87.  
  88. # sprawdzamy miasto #
  89. if ( $miasto != '' ) {
  90. if( eregi("[0-9]",$miasto) ) {
  91. $b_miasto = 'class="blad"';
  92. $blad_2 = TRUE;
  93. }
  94. }
  95.  
  96. # sprawdzamy telefon 1 #
  97. if( $tel1=='' ) {
  98. $b_te11 = 'class="blad"';
  99. $blad  = TRUE;
  100. }
  101.  
  102. # sprawdzamy prawdziwosc email #
  103. if ( $email != '' ) {
  104. if( !eregi(".+@.+..+",$email) ) {
  105. $b_email = 'class="blad"';
  106. $blad_2 = TRUE;
  107. }
  108. }
  109.  
  110. # sprawdzamy osobe kontaktowa #
  111. if ( $os_kontakt != '' ) {
  112. if ( eregi("[0-9]",$os_kontakt) ) {
  113. $b_os_kontakt  = 'class="blad"';
  114. $blad_2  = TRUE;
  115. }
  116. }
  117.  
  118. # sprawdzamy osobe upowazniona do zawierania umow #
  119. if ( $os_up != '' ) {
  120. if( eregi("[0-9]",$os_up) ) {
  121. $b_os_up  = 'class="blad"';
  122. $blad_2  = TRUE;
  123. }
  124. }
  125.  
  126. # sprawdzamy ilos pracownikow #
  127. if ( $il_prac != '' ) {
  128. if ( !is_numeric($il_prac) ) {
  129. $blad_2 = TRUE;
  130. $b_il_prac  = 'class="blad"';
  131. }
  132. else {
  133. $il_prac = "ilosc_pracownikow='$il_prac',";
  134. }
  135. }
  136. else {
  137. $il_prac = '';
  138. }
  139.  
  140. # sprawdzamy rok zalozenia #
  141. if ( $rok_zal != '' ) {
  142. if ( !is_numeric($rok_zal) || $rok_zal>date("Y") ) {
  143. $blad_2 = TRUE;
  144. $b_rok_zal  = 'class="blad"';
  145. }
  146. else {
  147. $rok_zal = "rok_zal='$rok_zal',";
  148. }
  149. }
  150. else {
  151. $rok_zal = '';
  152. }
  153.  
  154. #sprawdzamy czy wystapily bledy a jak nie to zapisujemy #
  155. if( $blad || $blad_2 ) {
  156. $_GET['id'] = $idf;
  157. include 'klienci_edytuj.php';
  158. }
  159. else {
  160. if(mysql_query("update klient set adres='$adres',
  161. $branza
  162. email='$email',
  163. email_zgoda='$zgoda',
  164. $il_prac
  165. kod_pocztowy='$kod',
  166. krs='$krs',
  167. miasto='$miasto',
  168. nazwa='$nazwa',
  169. nip='$nip',
  170. os_kontaktowa='$os_kontakt',
  171. os_zawierajaca='$os_up',
  172. regon='$regon',
  173. $rok_zal
  174. sprawdzona='0',
  175. telefon_1='$tel1',
  176. telefon_2='$tel2',
  177. $woj
  178. where id='$idf'")){
  179. echo 'Zmiany zapisane pomyślnie.<br /><br />';
  180. }
  181. else{
  182. echo 'Zapis do bazy nie powiódł się';
  183.  
  184. }
  185. }
  186. ?>
php programmer
Cytat
Fatal error: Cannot redeclare odbierz() (previously declared in c:\appserv\www\xxxxx\functions\secure.php:9) in c:\appserv\www\xxxxx\functions\secure.php on line 9


Nie możesz zadeklarować jedenj funkcji dwa razy (tutaj odbierz)
nospor
@php programmer jak widzisz ze bbcode ci nie wyszlo to popraw smile.gif (zakladam ze widziales winksmiley.jpg )
pozatym tekst:
Cytat
Nie możesz zadeklarować jedenj funkcji dwa razy (tutaj odbierz)
Nic nie wnosi do topicu, bo autor topicu o tym wie, gdyz napisal te slowa:
Cytat
Pod spodem jest jeszcze pare innych funkcji, ale nazwa na 100% sie nie powtarza.


Natomiast autor topicu moze nie zdawac sobie sprawy, ze jesli dwa razy includuje sie dany plik z deklaracjami funkcji, to taki blad sie pojawia.
piszesz:
  1. <?php
  2. include './functions/secure.php';
  3. ?>

najwyraźniej gdzies jeszcze includujesz ten sam plik i tu jest problem. Proponuje zamienic na include_once wszystkie wywolania include. No chyba za pliki te zawieraja jeszcze wykonywalny kod, a nie same deklaracje, trzeba bedzie wowczas troche to przeorganizowac
alex19
No wlasnie problem jest w tym ze nie includuje 2 razy tego pliku.
Probowalem include_once i nic sie nie zmienia.
Ten plik nie moze byc zaincludowany 2 razy poniewaz "dookola" niego jest zaincludowanu index, jedno menu, potem drugie menu, ten plik i stopka. W zadnym z powyzszych nie includuje tego pliku z funkcjami bo nie jest mi on potrzebny. Mam tak samo zrobione we wszystkich innych plikach i dziala tak jak trzeba.

Moge dodac tyle ze w sumie to te funkcje sa w zakodoawnym pliku gdzie znajduje sie jeszcze zabezpieczenie(pisalem tu kiedys o tym) i jest ich duzo wiecej(oczywiscie nazyw sie nie powtarzaja). Jak zaincluduje ten zakodowany plik to nie wywala sie na funkcji odbierz() tylko na funkcji czysckatalog(), ktora jest pierwsza z brzegu. Podkreslam ze to sie dzieje tylko w tym jednym pliku, a we wszystkich innych dziala prawidlowo.
nospor
No nie ma bata, albo ladujesz dwa razy ten sam plik, albo juz gdzies jest odbierz(). Przelec wyszukiwarka po projekcie i poszukaj czy gdzies nie zapodziala sie ta funkcja.
bili.pl
Spróbuj deklarację funkcji odbierz objąć w if'a w warunku wykorzystując funkcję function_exists.
alex19
Cytat(nospor @ 15.11.2006, 14:58:59 ) *
No nie ma bata, albo ladujesz dwa razy ten sam plik, albo juz gdzies jest odbierz(). Przelec wyszukiwarka po projekcie i poszukaj czy gdzies nie zapodziala sie ta funkcja.

Probowalem tez bez include'a i wtedy pisze ze nie ma funkcji odbierz worriedsmiley.gif.


Cytat(bili.pl @ 15.11.2006, 15:05:20 ) *
Spróbuj deklarację funkcji odbierz objąć w if'a w warunku wykorzystując funkcję function_exists.

W ten sposob?
  1. <?php
  2. if(function_exists(odbierz)){
  3. //odbieranie danych?
  4. }
  5. ?>
bili.pl
  1. <?php
  2. if(function_exists('odbierz')) {
  3. function odbierz($pole) {
  4. // funkcja odbierz
  5. }
  6. }
  7. ?>
alex19
Kurcze blade!!!
Mieliscie racje, a ja chyba jestem slepy :roll2: . Okazlalo sie ze w pliku wczesniej tez includuje to samo. W sumie nie powinno byc problemu, bo w tym pierwszym pliku jest formluarz i dane sa odbierane w zupelnie innym pliku. Jak pozamienialem obydwa na include_once o zaczelo dzialac.
Troche to moim zdaniem dziwne, ale liczy sie ze dziala.

Dzieki wszystkim za pomoc guitar.gif
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.