Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Błąd redeclare
NEONIX
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 3
Dołączył: 16.02.2008

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


O co z tym chodzi mam taki błąd:
Cytat
Fatal error: Cannot redeclare putword() (previously declared in C:wampwww\test.php:45) in C:wampwww\test.php on line 45

[/b]A 45 linia wygląda:
  1. <?php
  2. function putWord($matches)
  3. ?>


Ten post edytował NEONIX 15.04.2008, 20:50:14
Go to the top of the page
+Quote Post
pyro
post
Post #2





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


taka funkcja jest juz zadeklarowana, musisz nadac inna nazwe
Go to the top of the page
+Quote Post
nevt
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


najprawdopodobniej dwukrotnie inkludujesz plik z definicją funkcji putWord()...
Go to the top of the page
+Quote Post
NEONIX
post
Post #4





Grupa: Zarejestrowani
Postów: 33
Pomógł: 3
Dołączył: 16.02.2008

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


No właśnie, zmienilem nazwe to wyskakuje bład z tą nazwą, a tego pliku nie includuje tylko jest kod wklepany
Go to the top of the page
+Quote Post
pyro
post
Post #5





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


mozna jasniej ;P?
Go to the top of the page
+Quote Post
NEONIX
post
Post #6





Grupa: Zarejestrowani
Postów: 33
Pomógł: 3
Dołączył: 16.02.2008

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


Plik z ta funkcją putWord nie jest includowany a więc podwójne includowanie tego odpada.
Wyskakuje mi ten błąd:
Cytat
Fatal error: Cannot redeclare putword() (previously declared in C:wampwww\test.php:45) in C:wampwww\test.php on line 45

A jak zmienie nazwe funkcji na np neonix to wyskakuje:
Cytat
Fatal error: Cannot redeclare neonix() (previously declared in C:wampwww\test.php:45) in C:wampwww\test.php on line 45


Co najdziwniejsze gdy testuje sam kod funkcji w osobnym pliku działa, a gdy go dorzucę do jakiegoś pliku php to wywala error.

Ten post edytował NEONIX 15.04.2008, 21:15:15
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


No sorry, ale to wyglada tylko na podwojne includowanie
Go to the top of the page
+Quote Post
NEONIX
post
Post #8





Grupa: Zarejestrowani
Postów: 33
Pomógł: 3
Dołączył: 16.02.2008

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


to dziwne bo ja nie includuje nigdzie tego pliku, poza tym zamiast include używam require. a w tym wypadku ani jednego ani drugiego.
Funkcja wygląda tak:
  1. <?php
  2. function putWord($matches)
  3. {
  4. static $counter;
  5.  
  6. $matches = $matches[0];
  7. $counter++;
  8.  
  9. return (!($counter%3))?$matches." wyraz ":$matches;
  10. }
  11.  
  12. $text = "To jest zdanie. I to też jest zdanie. To jest zdanie. ";
  13. $text .= "I to też jest zdanie. To jest zdanie. I to też jest zdanie. ";
  14. $text .= "To jest zdanie. I to też jest zdanie.";
  15.  
  16. $text = preg_replace_callback("#.#", "putWord", $text);
  17.  
  18. echo $text;
  19. ?>
jak jest tylko ten kod php w pliku to kod działa, a jak dorzucę go do jakiegokolwiek pliku gdzie już coś jest to wywala error.

Ten post edytował NEONIX 15.04.2008, 21:17:25
Go to the top of the page
+Quote Post
nevt
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


na 100% dwa razy includujesz ... albo includujesz samego do siebie ... weś spokojnie przeszukaj cały kod i wszystkie wystapienia include i require ... i na wszelki wypadek pokaż tu z tyego pliku tak ze 3 linijki przed i 3 linijki po definicji putWord() ...
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


No to pokaz przyklad z plikiem gdzie wrzuciles tego put worda - ktory nie dziala, bo nic nam po dzialajacym kodzie.
Go to the top of the page
+Quote Post
NEONIX
post
Post #11





Grupa: Zarejestrowani
Postów: 33
Pomógł: 3
Dołączył: 16.02.2008

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


  1. <?php
  2.  
  3. $tablica = file("slowa.txt");
  4. foreach($tablica as $key => $wyraz){
  5. $test=$_POST['test'];
  6. $tresc=explode('.',$test);
  7.  
  8. $wynik = str_replace(' ', '-',$wyraz);
  9.  
  10.  
  11. $tablica = $tresc;
  12. shuffle($tablica);
  13.  
  14. echo $wylosowana_zmienna = implode('.', $tablica);
  15. $wylosowana_zmienna=str_replace('zdanie','<strong>'.$wyraz.' </strong>.',$wylosowana_zmienna);
  16.  
  17.  
  18. $wynik = str_replace(' ', '-',$wyraz);
  19.  
  20. $wyrazek=trim($wyraz);
  21.  
  22.  
  23. function putWord($matches)
  24. {
  25. static $counter;
  26.  
  27. $matches = $matches[0];
  28. $counter++;
  29.  
  30. return (!($counter%3))?$matches." wyraz ":$matches;
  31. }
  32.  
  33. $text =$wylosowana_zmienna;
  34.  
  35.  
  36. $text = preg_replace_callback("#.#", "putWord", $text);
  37.  
  38. $tresc="
  39. $text
  40. ";
  41.  
  42.  
  43. $uchwyt = fopen(trim($wynik) .".txt", 'w');
  44. fwrite($uchwyt, $tresc);
  45. fclose($uchwyt);
  46.  
  47. }
  48.  
  49.  
  50. ?>

efekt:
Cytat
Fatal error: Cannot redeclare putword() (previously declared in C:\wamp\www\test.php:23) in C:\wamp\www\test.php on line 23

to jest cały kod, skrypt pobiera tekst z formularza, rozbija go na zdania, miesza i co 3 zdania ma wstawić jakiś wyraz oraz zapisać go do pliku tekstowego. Jak widac nigdzie nie includuje ani nic.

Ten post edytował NEONIX 15.04.2008, 21:24:39
Go to the top of the page
+Quote Post
nevt
post
Post #12





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


Cytat
to dziwne bo ja nie includuje nigdzie tego pliku,

Cytat
a jak dorzucę go do jakiegokolwiek pliku gdzie już coś jest to wywala error.

no to jak w końcu ? includujesz czy nie includujesz ? bo zeznania masz sprzeczne ...

EDIT: no przecież umieściłeś tą funkcje w środku pętli (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) dlatego ci się drugi raz deklaruje ... wyrzuć ją przed pętlę i będzie ok.
Go to the top of the page
+Quote Post
NEONIX
post
Post #13





Grupa: Zarejestrowani
Postów: 33
Pomógł: 3
Dołączył: 16.02.2008

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


Ale wpadka przy takiej prostej rzeczy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Dzięki wszystkim za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 13:54