Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z downloadem
Forum PHP.pl > Forum > PHP
tomekmvr
Witam
Mam problem z downloadem plikow. Moj Download obsluguje pliki ZIP. jak chce pobrac jakis plik to wyskakuje mi blad Warning: Cannot modify header information - headers already sent by
I pod tym pokazuja sie krzaki �/ô[ĐĘh}'ŃZb­ě���iÓĆçű|Îę]jŤ´�ý�....itd.

To jest skrypt
  1. <?php
  2. require_once ('polacz.php');
  3. global $pr;
  4.  $zapytanie = "SELECT pobran FROM upload WHERE id='$id'";
  5. $wykonaj = mysql_query($zapytanie);  
  6. $num = mysql_num_rows ($wykonaj);
  7. if ($num != 0) {while ($wiersz = mysql_fetch_array($wykonaj)) {
  8. $ile=$wiersz[pobran];
  9. }
  10. $ile++;
  11. $zapytanie = "update upload set pobran='$ile' WHERE id='$id'";
  12. $wykonaj = @mysql_query ($zapytanie);
  13. } else {
  14. $zapytanie = "insert into upload (id, pobran) values ( '$id', '1')";
  15. $wykonaj = mysql_query($zapytanie);  
  16. }
  17.  
  18. $query = "SELECT adres, tresc, rozmiar FROM upload WHERE id = {$_GET['id']}";
  19. $result = mysql_query ($query);
  20. list ($fn, $ft, $fs) = mysql_fetch_array ($result, MYSQL_NUM);
  21.  
  22.  
  23.  $plik = $fn;
  24. $plik = explode('.', $plik); 
  25. $plik_i = count($plik); 
  26. if($plik_i == 2) $_plik = $plik[0]; else for($i=0; $i<$plik_i-1; $i++) $_plik .= $plik[$i];
  27. $filename = $uid . '.' . $plik[count($plik)-1];
  28. $the_file = 'pliki/' . $_GET['id'] . '.' . $plik[count($plik)-1];
  29.  
  30.  
  31. if (file_exists ($the_file))
  32.  {
  33.  
  34. header("Content-type: application/octet-stream");
  35. header("Content-disposition: attachment; filename=$fn");
  36. readfile($the_file);
  37. $message = 'Plik został wysłany';
  38.  
  39. } else {
  40. $message='Nie ma pliku o takim id';
  41. }
  42.  
  43. echo $message;
  44. ?>


NIe wiem dlaczego tak sie dzieje. na innym uploadzie testowalem i pliki sie sciagaja bez problemu.
Prosze o pomoc
Daimos
jezeli w srodku pliku PHP wysylasz naglowki
uzywaj ob_start" title="Zobacz w manualu PHP" target="_manual i ob_end_flush" title="Zobacz w manualu PHP" target="_manual
tomekmvr
NIe jestem w tym zbyt dobry, bo ten skrypt ktos inny pisal, dzialal wczesniej na innym serwerze, ale n tym co teraz jest to takie dziwne rzeczy sie dziaja.

Cos takiego zrobilem, tylko nie wiem co jeszcze ma dopisac:
  1. <?php
  2. require_once ('polacz.php');
  3. global $pr;
  4.  $zapytanie = "SELECT pobran FROM upload WHERE id='$id'";
  5. $wykonaj = mysql_query($zapytanie);  
  6. $num = mysql_num_rows ($wykonaj);
  7. if ($num != 0) {while ($wiersz = mysql_fetch_array($wykonaj)) {
  8. $ile=$wiersz[pobran];
  9. }
  10. $ile++;
  11. $zapytanie = "update upload set pobran='$ile' WHERE id='$id'";
  12. $wykonaj = @mysql_query ($zapytanie);
  13. } else {
  14. $zapytanie = "insert into upload (id, pobran) values ( '$id', '1')";
  15. $wykonaj = mysql_query($zapytanie);  
  16. }
  17.  
  18. $query = "SELECT adres, tresc, rozmiar FROM upload WHERE id = {$_GET['id']}";
  19. $result = mysql_query ($query);
  20. list ($fn, $ft, $fs) = mysql_fetch_array ($result, MYSQL_NUM);
  21.  
  22.  
  23.  $plik = $fn;
  24. $plik = explode('.', $plik); 
  25. $plik_i = count($plik); 
  26. if($plik_i == 2) $_plik = $plik[0]; else for($i=0; $i<$plik_i-1; $i++) $_plik .= $plik[$i];
  27. $filename = $uid . '.' . $plik[count($plik)-1];
  28. $the_file = 'pliki/' . $_GET['id'] . '.' . $plik[count($plik)-1];
  29.  
  30.  
  31. if (file_exists ($the_file))
  32.  {
  33.  
  34.  
  35. header("Content-type: application/octet-stream");
  36. header("Content-disposition: attachment; filename=$fn");
  37. readfile($the_file);
  38.  
  39.  
  40. $message = 'Plik został wysłany';
  41.  
  42. } else {
  43. $message='Nie ma pliku o takim id';
  44. }
  45.  
  46. echo $message;
  47. ?>
Daimos
  1. <?php
  2. require_once ('polacz.php');
  3. global $pr;
  4.  $zapytanie = "SELECT pobran FROM upload WHERE id='$id'";
  5. $wykonaj = mysql_query($zapytanie);  
  6. $num = mysql_num_rows ($wykonaj);
  7. if ($num != 0) {while ($wiersz = mysql_fetch_array($wykonaj)) {
  8. $ile=$wiersz[pobran];
  9. }
  10. $ile++;
  11. $zapytanie = "update upload set pobran='$ile' WHERE id='$id'";
  12. $wykonaj = @mysql_query ($zapytanie);
  13. } else {
  14. $zapytanie = "insert into upload (id, pobran) values ( '$id', '1')";
  15. $wykonaj = mysql_query($zapytanie);  
  16. }
  17.  
  18. $query = "SELECT adres, tresc, rozmiar FROM upload WHERE id = {$_GET['id']}";
  19. $result = mysql_query ($query);
  20. list ($fn, $ft, $fs) = mysql_fetch_array ($result, MYSQL_NUM);
  21.  
  22.  
  23.  $plik = $fn;
  24. $plik = explode('.', $plik); 
  25. $plik_i = count($plik); 
  26. if($plik_i == 2) $_plik = $plik[0]; else for($i=0; $i<$plik_i-1; $i++) $_plik .= $plik[$i];
  27. $filename = $uid . '.' . $plik[count($plik)-1];
  28. $the_file = 'pliki/' . $_GET['id'] . '.' . $plik[count($plik)-1];
  29.  
  30.  
  31. if (file_exists ($the_file))
  32.  {
  33.  
  34. header("Content-type: application/octet-stream");
  35. header("Content-disposition: attachment; filename=$fn");
  36. readfile($the_file);
  37.  
  38.  
  39.  
  40. $message = 'Plik został wysłany';
  41.  
  42. } else {
  43. $message='Nie ma pliku o takim id';
  44. }
  45.  
  46. echo $message;
  47. ?>
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.