Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dziwne Komunikaty
Forum PHP.pl > Forum > Przedszkole
ceo
wrzucilem strone na serwer, zobaczcie sami pod tym adresem :

http://bydgoszcz.wsinf.edu.pl/~lestas/speedrower/index.php

no i problem jest taki ze wczesniej jak mialem na innym serwerze to nie bylo zadnych problemow a teraz sa w postaci nastepujacych komunikatow:


Fatal error: Allowed memory size of 8388608 bytes exhausted at (null):0 (tried to allocate 1000000 bytes) in /home/02j/lestas/public_html/speedrower/pokaz.php on line 13

Notice: Undefined variable: op in /home/02j/lestas/public_html/speedrower/o_nas.php on line 58

Notice: Undefined variable: op in /home/02j/lestas/public_html/speedrower/ksiega_funkcje.php on line 35

mozecie powiedziec co mam z tym zrobic ? wlasciwie co mam powiedziec adminowi , co ma wlaczyc .
scanner
Cytat(ceo @ 2004-06-15 02:40:03)
Fatal error: Allowed memory size of 8388608 bytes exhausted at (null):0 (tried to allocate 1000000 bytes) in /home/02j/lestas/public_html/speedrower/pokaz.php on line 13

Limit pamięci (RAM) dla skryptu php, którą może on zając zmienymi wynosi na Twoim serwerze 8MB - Ty próbujesz zając więcej (w 13 linii) - pokaż tę linię.
Zmniejsz zapotrzebowanie skryptu na pamięc.
[fisher]
Cytat(scanner @ 2004-06-15 07:57:26)
Zmniejsz zapotrzebowanie skryptu na pamięc.

Albo zwieksz dostepna pamiec dla skryptu w php (w przypadku gdy nie da sie zmniejszyc zapotrzebowania na pamiec w samym skrypcie), np. uzywajac ini_set()

  1. <?php
  2. ini_set('memory_limit', '16M');
  3. ?>
ceo
Cytat
<?php
ini_set('memory_limit', '16M');
?>

czy moge ten kod wstawic do mnie do skryptu i wtedy zwiekszy sie limit pamieci ?
[fisher]
Cytat(ceo @ 2004-06-15 10:08:13)
czy moge ten kod wstawic do mnie do skryptu i wtedy zwiekszy sie limit pamieci ?

sprobuj, ale tylko wtedy gdy optymalizacja skryptu nie da spodziewanych rezultatow
rzseattle
Cytat
In order to use this directive you must have enabled it at compile time.


Czyli wypróbuj i zobacz czy dziala winksmiley.jpg, ale watpie czy na publicznym serweze mozna przydzielas skryptowi wiecej pamieci. Pozatym w mojej karierze jeszcze nigdy nie zdarzylo sie aby skrypt pozarl wszystkie zasoby pamieciowe mu przydzielone wiec w twoim przypadku skladnial bym sie raczej do optymalizacji skryptu.
ceo
ok kod zoptymalizowalem , rzeczywiscie za duzo bajtow bylo pobieranych z pliku. z kolei jak sobie poradzic z tym :

Notice: Undefined variable: op in /home/02j/lestas/public_html/speedrower/o_nas.php on line 58

Notice: Undefined variable: op in /home/02j/lestas/public_html/speedrower/ksiega_funkcje.php on line 35



? na wczesniejszym serwerze tego nie bylo , strona dziala ale sa te komunikaty, moze da sie je jakos wylaczyc ?
[fisher]
Cytat(rzseattle @ 2004-06-15 10:29:26)
Pozatym w mojej karierze jeszcze nigdy nie zdarzylo sie aby skrypt pozarl wszystkie zasoby pamieciowe mu przydzielone wiec w twoim przypadku skladnial bym sie raczej do optymalizacji skryptu.

Mi sie zdarzylo (uzywajac bibliotek PEAR'a) przy dekodowaniu cholernego MIME

A co do publicznych serwerow to sie zgadzam taka operacja moze byc trudna do zrealizowania, ale moze ceo ma tam jakies wtyki, chociaz tez sklanial bym sie ku optymalizacji

BTW. ceo, chetnie zobacze wspomniane pamieciozerne linie kodu
kszychu
Oj czasami się zdaża.... Sam kiedyś (chyba nie ma się czym chwalić...) załadowałem spory plik do tablicy a później jeszcze skopiowałem tablicę... Skrypt wywalał się przy 3MB pliku. PO zoptymalizowaniu i zmianie sposobu otwierania pliku, łykał pliki 6MB (na większych nie testowałem) bez mrugnięcia kursorem.
[fisher]
Cytat(ceo @ 2004-06-15 10:32:02)
z kolei jak sobie poradzic z tym :

Notice: Undefined variable: op in /home/02j/lestas/public_html/speedrower/o_nas.php on line 58

Notice: Undefined variable: op in /home/02j/lestas/public_html/speedrower/ksiega_funkcje.php on line 35

To zalezy od typu ustawionego raportowania.

Mozna wylaczyc raportowanie NOTICE, np error_reporting=E_ALL &~E_NOTICE

Ale mimo wszystko radze poprawic kod

EDIT:
zdarza sie to np gdy inkrementujesz nieistniejaca zmienna
ceo
przykladowo kod mam taki :


  1. <?php
  2. function wyswietl() {
  3. echo&#092;"
  4. <tr><td width=&#092;"139\\" background=\"tlo.gif\"></td><td width=\"600\"><br><br>\";
  5. if(!file_exists(&#092;"me2004.txt\")) {
  6. echo &#092;"Nie ma pliku!
  7. </td><td width=&#092;"139\\" background=\"tlo.gif\"></td></tr>\";
  8. }
  9. else
  10. {
  11. $rozmiar_foto=filesize(&#092;"me2004_foto.txt\");
  12.  if ($rozmiar_foto>0) {
  13.  $plik_foto=fopen(&#092;"me2004_foto.txt\", \"r\");
  14. $zawartosc = fread($plik_foto, $rozmiar_foto);  
  15. fclose($plik_foto);
  16.  echo &#092;"<center><img src=\"$zawartosc\\"></center><br><br>\";
  17.  } else { }
  18. $rozmiar=filesize(&#092;"me2004.txt\");
  19. $plik=fopen(&#092;"me2004.txt\", \"r\");
  20. $zawartosc = fread($plik, $rozmiar);  
  21. fclose($plik);
  22. echo &#092;"<center><table width=\"500\\"><tr><td>$zawartosc</td></tr></table></center>\";
  23.  
  24. echo &#092;"</td><td width=\"139\\" background=\"tlo.gif\"></td></tr>\";
  25. }
  26. }
  27.  
  28. switch($op) {
  29.  
  30. default:
  31. wyswietl();
  32. break;
  33.  
  34. }
  35. ?>



no wg mnie wszystko jest ok zmienna $op jest przekazywana w adresie
scanner
  1. <?php
  2. $_GET['op']
  3. ?>
ceo
Cytat
Mozna wylaczyc raportowanie NOTICE, np error_reporting=E_ALL &~E_NOTICE



ale to w php.ini sie robi ? to musze adminowi serwera powiedziec o tym

a kod mam taki przykladowo :

  1. <?php
  2. include(&#092;"./haslo.php\");
  3. if (($_POST['dupa']==$pass) && (isset($_POST['dupa']))) {
  4. echo&#092;"<div align=\"Center\\"><form method=post action=administracja.php>
  5. <input type=hidden name=dupa value=&#092;\"$pass\">
  6. <input type=submit name=newsy value=&#092;\"Newsy\">
  7. </form></div>&#092;";
  8. echo&#092;"<div align=\"Center\"><form action=\"admin_o_nas.php\" method=\"post\">
  9. <input type=hidden name=dupa value=&#092;\"$pass\">
  10. <input type=submit name=galeria value=&#092;\"O nas\">
  11. </form></div>&#092;";
  12. echo&#092;"<div align=\"Center\"><form method=post action=admin_o_klubie.php>
  13. <input type=hidden name=dupa value=&#092;\"$pass\">
  14. <input type=submit name=galeria value=&#092;\"O Klubie\">
  15. </form></div>&#092;";
  16. echo&#092;"<div align=\"Center\"><form method=post action=admin_galeria.php>
  17. <input type=hidden name=dupa value=&#092;\"$pass\">
  18. <input type=submit name=galeria value=&#092;\"Galeria Zdjęć\">
  19. </form></div>&#092;";
  20. echo&#092;"<div align=\"Center\"><form method=post action=admin_me2004.php>
  21. <input type=hidden name=dupa value=&#092;\"$pass\">
  22. <input type=submit name=galeria value=&#092;\"ME 2004\">
  23. </form></div>&#092;";
  24. echo&#092;"<div align=\"Center\"><form method=post action=admin_ks.php>
  25. <input type=hidden name=dupa value=&#092;\"$pass\">
  26. <input type=submit name=galeria value=&#092;\"Księga Gości\">
  27. </form></div>&#092;";
  28. echo&#092;"<div align=\"Center\">
  29. <b><a href=&#092;\"info.txt\" target=_blank>Instrukcja dla Adminów!!!</a></b></div>\";
  30. } else { echo &#092;"<form name=form1 action=$PHP_SELF method=post><div align=\"Center\\">Hasło : <input type=\"password\" name=\"dupa\" size=20>
  31. <input type=submit name=submit value=OK></div>
  32. </form>&#092;";
  33. }
  34. ?>



i jak nie wpisano jeszcze nic to wywala komunikat
Notice: Undefined index: dupa in /home/02j/lestas/public_html/speedrower/admin.php on line 13

dopiero jak wpisze zla wartosc lub dobra to kumikat znika
dr_bonzo
  1. <?php
  2. include(&#092;"./haslo.php\");
  3. if (($_POST['dupa']==$pass) && (isset($_POST['dupa']))) {
  4. //(...)
  5.  
  6. ?>


Ten error to brak zdefiniowanego indexu tablicy. Najpierw sprawdzasz czy zmienna $_POST['dupa'] ma wartosc $pass, a potem sprawdzasz czy ta zmienna istnieje -- warunek jest sprawdzany od lewej do prawej. Zmien kolejnosc na:

  1. <?php
  2. include(&#092;"./haslo.php\");
  3. if ((isset($_POST['dupa'])) && ($_POST['dupa']==$pass)) {
  4. //(...)
  5.  
  6. ?>


jesli zmienna $_POST['dupa'] nie istnieje to nie sprawdzi juz tego czy ma wartosc $pass.
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.