Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]Problem z Cannot modify header information
Forum PHP.pl > Forum > Przedszkole
Jerem!asz
witam, mam problem z Cannot modify header information, przeglądam forum, szukam w internecie pol dnia i w żaden sposób nie mogę uwolnić się od tego :[

moj plik wygląda następująco:
1. funkcja przycinająca obrazek
2. dołączenie pliku nagłówek.php ze wszystkimi metatagami itp. + menu
3. treść stronki
4. wywołanie funkcji z początku pliku - przycinanie obrazka
5. dołączenie pliku stopki

wszystko działało, dopóki nie dołączyłem funkcji obcinającej zdjęcie, z której to funkcji otrzymuje outputa w postaci zdjęcia
  1. <?php
  2. imagejpeg($image_p, null, 100);
  3. ?>


ale wcześniej żeby obrazek sie wyświetlił muszę wprowadzić:
  1. <?php
  2. header('Content-type: image/jpeg');
  3. ?>


i tutaj właśnie jest problem, ponieważ wywala mi błąd:

Warning: Cannot modify header information - headers already sent by (output started at /home/users/jeremi/www/stolarz/naglowek.php:18) in /home/users/jeremi/www/stolarz/element.php on line 15

sprawdzałem cały nagłówek w związku ze wszystkimi pustymi znakami itp. ale jak funkcję wywołuję w środku strony to już przecież jakieś informacje do przeglądarki zostały wysłane.
nie wiem jak temu zaradzić....
Dziękuję za pomoc.
gilbo
Funkcja header:

  1. <?php
  2. header('Content-type: image/jpeg');
  3. ?>


musi być na samej górze kodu.

Przykładowo Twój plik obraz.php musi wyglądać tak:

  1. <?php
  2. header('Content-type: image/jpeg');
  3.  
  4. kod kod kod kod...
  5.  
  6. imagejpeg($image_p, null, 100);
  7. ?>


Pozdrawiam.
Jerem!asz
dałem na samą górę kodu i niestety..... na stronie pokazał mi się tylko adress http: stronki którą właśnie odświeżyłem.
chyba dlatego,ze plik nagłówka jest wczytywany dopiero niżej a tam jest content="text/html;charset=utf-8
nie wiem czy to to... może cos innego robie źle?
jakaś jeszcze pomoc ?
gilbo
Koleżko podaj swój kod bo Ci więcej nie wywróżę.
Jerem!asz
  1. <?php
  2. // Content type
  3. header('Content-type: image/jpeg');
  4.  
  5.  function foto_cut()
  6. {
  7.  
  8. $filename = 'obrazek.jpg';
  9. $percent = 0.8; // 
  10. $imagethumbsize = 214; // 
  11. $imagethumbsizeh = 65; // 
  12.  
  13.  
  14.  
  15. list($width, $height) = getimagesize($filename);
  16. $new_width = $width * $percent;
  17. $new_height = $height * $percent;
  18.  
  19.  
  20. $image_p = imagecreatetruecolor($imagethumbsize , $imagethumbsizeh); // true color for best quality
  21. $image = imagecreatefromjpeg($filename);
  22.  
  23.  
  24. imagecopyresampled($image_p, $image, -($new_width/2) + ($imagethumbsize/2), -($new_height/2) + ($imagethumbsizeh/2), 0, 0, $new_width , $new_width , $width, $height);
  25.  
  26. // Output
  27.  
  28. imagejpeg($image_p, null, 100);
  29. }
  30.  
  31. require ("naglowek.php");
  32.  
  33.  if (isset($_GET['id']) == true) {
  34. $validid= $_GET['id'];
  35. }
  36. else {
  37. header("Location: " . $config_basedir."/katalog.php");
  38. }
  39.  
  40. if (isset($_GET['kat']) == true) {
  41. $validkat= $_GET['kat'];
  42. }
  43. else {
  44. header("Location: " . $config_basedir."/katalog.php");
  45. }
  46.  
  47. $katalogsql = "SELECT * FROM projekt WHERE projekt.id = ".$validkat.";";
  48. $katalogresult = mysql_query($katalogsql);
  49. $katalogrow = mysql_fetch_assoc($katalogresult);
  50.  
  51.  
  52. ?>
  53. <div class="main">
  54.  
  55. <div class="header">
  56. <span class="kwadrat"></span>
  57. <div class="header_txt">
  58.  <span class="header_front"><a href="projekt.php?id=<?php echo $validkat; ?>"><?php echo $katalogrow['nazwa']; ?></a></span>
  59.  <span class="header_back"><?php echo $elementrow['nazwa']; ?></span>
  60. </div>
  61. </div>
  62.  
  63.  
  64. <div class="projekt_info">
  65.  
  66. <div class="projekt_left">
  67.  
  68. <div class="projekt_opis">
  69. <p>  
  70. <?php 
  71.  
  72. $string = $elementrow['opis'];
  73. $string = strip_tags($string, "<b><a><u><i><p>");
  74. echo "<p>".nl2br($string)."</p>"; 
  75.  
  76. ?>
  77. </p>
  78. <div class="projekt_elementy">
  79. <div class="projekt_head_txt">Pozosałe elementy w zestawie <?php echo $katalogrow['nazwa']; ?>:</div> 
  80. <ul>
  81. <?php
  82.  
  83. $subelementsql = "SELECT * FROM element WHERE element.id_projekt = ".$validkat.";";
  84. $subelementresult = mysql_query($subelementsql);
  85.  
  86. $subelementnumrow = mysql_num_rows($subelementresult);
  87.  
  88.  
  89. if ($subelementnumrow == 0) {
  90.  echo "<li>Brak elementów w danym zestawie!</li>";
  91. }
  92. else {
  93. while ($subelementrow = mysql_fetch_assoc($subelementresult)) {
  94. echo "<li><a href='element.php?id=".$subelementrow['id']."&kat=".$validkat."'>".$subelementrow['nazwa']."</a></li>";
  95. }
  96. }
  97. ?>
  98. </ul>
  99. </div>
  100. </div>
  101. </div>  
  102.  
  103. <div class="projekt_right">
  104.  
  105.  
  106. <?php
  107. $fotosql = "SELECT * FROM foto_element WHERE foto_element.id_element = ".$validid." ORDER BY data_dodania ;";
  108. $fotoresult = mysql_query($fotosql);
  109. $fotonumrow = mysql_num_rows($fotoresult);
  110.  
  111.  
  112. if ( $fotonumrow == 0) {
  113.  echo "<div class='projekt_foto_unit'>";
  114. echo "<div class='foto_unit'>";
  115. echo "<div class='foto'>";
  116.  echo "<div class='foto_brak'>BRAK ZDJĘCIA</div>";
  117. echo "</div>";
  118. echo "</div>";
  119. echo "</div>";
  120.  
  121. }
  122. else {
  123.  
  124. while ($fotorow = mysql_fetch_assoc($fotoresult)) {
  125.  
  126. ?>
  127.  
  128. <div class="projekt_foto_unit">
  129. <div class="foto_unit">
  130. <?php
  131.  
  132. foto_cut();
  133.  
  134. ?>
  135.  
  136. <div class="foto"><a href="galeria/element-foto/<?php echo $fotorow['nazwa']; ?>" rel="lightbox[roadtrip]" title="<?php echo $fotorow['opis']; ?>">
  137.  
  138. </a></div>
  139. </div>
  140. </div>
  141.  
  142. <?php  
  143.  
  144. }
  145. }
  146. ?>
  147.  
  148. </div>  
  149. </div>
  150. </div>
  151.  
  152. <?php
  153. require ("stopka.php");
  154. ?>


to jest kod tego pliku....

pod koniec jest wywołanie funkcji foto_cut();
l0ud
No tak - nie rozumiesz do końca idei generowania obrazka w PHP. Nie możesz mieszać go z treścią. Skrypt musi generować TYLKO obrazek poprzedzony headerem. Później dopiero ten obrazek podczepisz do kodu strony poprzez <img src="skrypt_generujacy_obrazek.php">
batman
Bez przesady. Temat był poruszany wiele razy. Zamykam.
P.S.
Poczytaj w manualu jak używa się funkcji header.
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-2024 Invision Power Services, Inc.