Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Header content type
Mapcio
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 15.02.2011

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


Witajcie, zacznę od tego, że wygóglowałem już sprawę, ale nikt jeszcze chyba takiego problemu nie miał.
Mój problem przedstawia się następująco: Zrobiłem sobie skrypt który wyciąga zdjęcia zapisane w bazie danych(tak, tak, wiem, w bazie nie trzyma się zdjęć, ale moje są małe(128x128) i do tego będzie ich mało). Na localhoscie pięknie mi śmigał, teraz przenoszę się w sieć i pojawił się problem (IMG:style_emoticons/default/sad.gif) .
Skrypt pobiera z bazy treść obrazka, sprawdzałem to, pojawia się setki dziwnych znaków. Jednak gdy wpisze
  1. header("Content-type: image/jpg;");

na początku skryptu, by treść wyświetliła się jako obrazek, otrzymuję pustą stronę.
Czyżby mój serwer nie obsługiwał wyżej wymienionej funkcji?
H4LP M3 PL0X

@edit
Jak by co to daje kod:
  1. <?php
  2. header("Content-type: image/jpg;");
  3.  
  4. include('config.php');
  5. class read
  6. {
  7. function __construct()
  8. {
  9. global $config;
  10. $this->config = $config;
  11. $this->id = intval($_GET['id']);
  12. }
  13. function databaseconnect()
  14. {
  15. mysql_connect($this->config['db_host'], $this->config['db_user'], $this->config['db_pass'])or die(mysql_error());
  16. mysql_select_db($this->config['db_name']);
  17. }
  18. function db_read()
  19. {
  20. $this->databaseconnect();
  21. $this->result = mysql_query('SELECT zdjecie FROM zdjecia WHERE id="'.$this->id.'"');
  22. if (mysql_num_rows($this->result) != 0)
  23. {
  24. $this->row = mysql_fetch_assoc($this->result);
  25. return base64_decode($this->row['zdjecie']);
  26. }
  27.  
  28. }
  29. }
  30. $read = new read();
  31. echo $read->db_read();
  32. ?>


Ten post edytował Mapcio 25.06.2011, 20:10:03
Go to the top of the page
+Quote Post
zegarek84
post
Post #2





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


masz włączone na serwerze wyświetlanie błędów (chyba nie...)... localhost masz na winzgrozie?? - może skrypt php otworzyłeś i zapisałeś w notatniku?? (problem z BOM którego nie widać) - przez co wysyłasz treść przed wysłaniem nagłówka...

a najlepiej doinstaluj sobie do mozilli live http hearers i podejżyj odpowiedź lub w dodatku firebug zakładka sieć....
Go to the top of the page
+Quote Post
Mapcio
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 15.02.2011

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


Cytat(zegarek84 @ 25.06.2011, 21:34:34 ) *
masz włączone na serwerze wyświetlanie błędów (chyba nie...)... localhost masz na winzgrozie?? - może skrypt php otworzyłeś i zapisałeś w notatniku?? (problem z BOM którego nie widać) - przez co wysyłasz treść przed wysłaniem nagłówka...

a najlepiej doinstaluj sobie do mozilli live http hearers i podejżyj odpowiedź lub w dodatku firebug zakładka sieć....

Nom, a co jest nie tak z notatnikiem (IMG:style_emoticons/default/ohmy.gif) ?
Go to the top of the page
+Quote Post
zegarek84
post
Post #4





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


notatnik windowsowy zawsze na początku dodaje niewidoczne znaki nazywane BOM

jeśli chcesz korzystać z czegoś podobnego do notatnika ale lepszego to zainstaluj sobie notepad++ i zapisuj pliki w kodowaniu utf bez BOM
swoją droga polecam IDE Netbeans - ale to kobyła...

BOM to niewidoczne znaczki znajdujące się na poczatku pliku - windowsowe serwery go zazwyczaj lub zawsze pomijają - linuxowe wysyłają tą treść...

po więcej w google hasło php bom

ps taka mała uwaga - jesli już prubujesz pisać obiektow to zrezygnuj z globali - połowicznym rozwiązaniem są zmienne statyczne ale też raczej ich unikaj - jednak na początek lepiej satyczne niż globale... więc $config albo przekaż jako parametr konstruktora albo przypisz przed wywołaniem klasy do zmiennej statycznej... z kolei id które pobierasz w get przekaż jako parametr konstruktora a nie tak jak robisz...

Ten post edytował zegarek84 25.06.2011, 21:00:29
Go to the top of the page
+Quote Post
mls
post
Post #5





Grupa: Zarejestrowani
Postów: 677
Pomógł: 89
Dołączył: 31.08.2003
Skąd: Warszawa

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


Cytat(Mapcio @ 25.06.2011, 21:44:57 ) *
Nom, a co jest nie tak z notatnikiem (IMG:style_emoticons/default/ohmy.gif) ?


To, że później pojawiają się nowe wątki takie jak ten. Oraz to, że nie podświetla składni przez co pojawiają się inne wątki ("bo mi wyskakuje error taki i owaki"). Pisanie skryptów w "notatniku" wyszło już dawno z mody.
Go to the top of the page
+Quote Post
Mapcio
post
Post #6





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 15.02.2011

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


Cytat(mls @ 25.06.2011, 23:32:15 ) *
To, że później pojawiają się nowe wątki takie jak ten. Oraz to, że nie podświetla składni przez co pojawiają się inne wątki ("bo mi wyskakuje error taki i owaki"). Pisanie skryptów w "notatniku" wyszło już dawno z mody.

Nie spinaj się tak, poprawiałem w nim tylko trochę kod, nic poza tym. A o BOM wcześniej nic nie wiedziałem.

@edit
Pobrałem notepad++ i zmieniłem kodowanie na UTF-8(bez BOM). Nic to nie dało.

@edit
Ja pierrrrr...
Nie zauważyłem kropki w pliku z configiem. Nie wyskoczył żaden błąd nią spowodowany, mój edytor Zend Studio jej nie podkreślił a sama była wręcz niewidoczna. Wiem, jestem idiotą. Dzięki za uświadomienie mi co to BOM (IMG:style_emoticons/default/smile.gif)

Ten post edytował Mapcio 25.06.2011, 23:45:20
Go to the top of the page
+Quote Post
zegarek84
post
Post #7





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


gdyż sama kropka, jakikolwiek tekst przed skryptem PHP oraz sam BOM nie są błędami - na serwerze włącz sobie raportowanie błędów a dowiesz się, że błąd spowodowała funkcja header("Content-type: image/jpg;"); - a dlaczego?? - gdyż już jakaś treść została wysłana a więc nie możesz ustawić nagłówków odpowiedzi...
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: 25.08.2025 - 02:43