Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Pobieranie Plik
bubaluki
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 12.06.2010
Skąd: Łódz

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


Próbuje napisać kod na pobieranie plikow
  1.  
  2. <?php
  3.  
  4.  
  5. require_once('funkcje_pliki.php');
  6.  
  7. require_once('function.mime-content-type.php');
  8.  
  9. $nazwa_uz = isset($_POST['prawid_uzyt']) ? $_POST['prawid_uzyt']: ' ';
  10.  
  11.  
  12. tworz_naglowek_html('Download Plikow');
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19. $lacz = lacz_bd();
  20.  
  21.  
  22. $wynik = $lacz->query("select * from plik where nazwa_uz='$prawid_uz' and URL_plik='".$plik."'");
  23. if (!$wynik)
  24. {
  25. return false;
  26.  
  27. }
  28.  
  29.  
  30. $plik = $wynik['URL_plik'].$wynik['nazwa_uz'];
  31.  
  32.  
  33.  
  34. $mimetype = mime_content_type($plik);
  35.  
  36. header('Content-type: '.$mimetype);
  37. header('Content-Disposition: attachment; filename="'.$plik.'"');
  38. readfile($plik);
  39.  
  40.  
  41.  
  42.  
  43.  
  44. wyswietl_menu_uzyt();
  45. tworz_stopke_html();
  46.  
  47.  
  48. ?>
  49.  





Fatal error: Cannot use object of type mysqli_result as array in C:\xampp\htdocs\pobierz.php on line 31



i wyskakuje mi błąd i nie mam pojęcia co on oznacza ;/

i nie wiem czy dobrze zadeklarowałem plik tu miało być wartość pobraną z bazy :


$plik = $wynik['URL_plik'].$wynik['nazwa_uz'];



Ten post edytował bubaluki 4.09.2010, 14:05:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
ber32
post
Post #2





Grupa: Zarejestrowani
Postów: 332
Pomógł: 22
Dołączył: 6.07.2010

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


W zmiennej
  1. $plik
był błąd
  1. query("select * from plik where nazwa_uz='$prawid_uz' and URL_plik='$plik'");

spróbuj teraz
Go to the top of the page
+Quote Post
everth
post
Post #3





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Cytat(bubaluki @ 4.09.2010, 15:02:20 ) *
  1. header('Content-type: '.$mimetype);
  2. header('Content-Disposition: attachment; filename="'.$plik.'"');
  3. readfile($plik);
  4. wyswietl_menu_uzyt(); //co to?
  5. tworz_stopke_html();

Zastanów się dobrze co robisz. Wysyłasz całość pliku o określonym typie do przeglądarki wraz z elementami HTML? Nic z tego nie wyjdzie. W sekcji Download powinieneś umieścić skróty do plików które chcesz pobrać, lub skrót do osobnego pliku php który udostępnia zawartość takiego pliku (i tylko tyle). Tu masz podobny wątek.
Go to the top of the page
+Quote Post
mortus
post
Post #4





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Nie no $lacz->query('ZAPYTANIE') zwraca nam nie dany wiersz, ale obiekt typu mysqli result. Z tego trzeba jeszcze wyciągnąć dane za pomocą ->fetch_array() (lub ->fetch_assoc()).
  1. $wynik = $lacz->query('ZAPYTANIE')->fetch_array(MYSQLI_ASSOC);
W każdym bądź razie tego dotyczy błąd, a czy reszta działa, to się później przekonasz.
Go to the top of the page
+Quote Post
bubaluki
post
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 12.06.2010
Skąd: Łódz

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


ok zrobiłem to ale trochę inaczej ale dzięki za pomoc

zrobiłem to tak :

  1.  
  2.  
  3.  
  4. $sFileName = isset( $_GET[ 'filename' ] ) ? $_GET[ 'filename' ] : '';
  5. $sFileName = str_replace( array( '/', '\\' ), null, $sFileName );
  6. $sPath = __DIR__ . DIRECTORY_SEPARATOR . 'pliki' . DIRECTORY_SEPARATOR . $sFileName;
  7.  
  8.  
  9. $wynik = mysql_query('UPDATE `plik` SET `nazwa_plik`=`nazwa_plik`+1 WHERE `nazwa_uz`='. $_GET['prawid_uz].'') or die
  10.  
  11. ('Błąd zapytania');
  12.  
  13.  
  14.  
  15. if( !is_readable( $sPath ) or !is_file( $sPath ) )
  16. {
  17. echo 'Nie można odczytać pliku';
  18. exit;
  19. }
  20.  
  21.  
  22.  
  23.  
  24. $sMimeType = mime_content_type( $sPath );
  25.  
  26. header('Content-type: '.$sMimeType);
  27. header('Content-Disposition: attachment; filename="'.$sFileName.'"');
  28. readfile($sPath);
  29.  
  30.  



mam jeszcze 1 problem chce zrobić licznie liczby pobrań zrobiłem do tego

  1.  
  2.  
  3.  
  4. $wynik = mysql_query('UPDATE `plik` SET `nazwa_plik`=`nazwa_plik`+1 WHERE `nazwa_uz`='. $_GET['prawid_uz].'') or die
  5.  
  6.  


i wywala mi takie coś:


Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ']' in C:\xampp\htdocs\pobierz.php on line 18
Go to the top of the page
+Quote Post
everth
post
Post #6





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Ech, skrzywdziłeś trochę ten skrypt ale niech ci będzie
  1. $pass = mysql_real_escape_string($_GET['prawid_uz]);
  2. $wynik = mysql_query("UPDATE `plik` SET `nazwa_plik`=`nazwa_plik`+1 WHERE `nazwa_uz`='{$pass}'") or die
Go to the top of the page
+Quote Post
bubaluki
post
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 12.06.2010
Skąd: Łódz

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


czemu skrzywdziłem ?

nom teraz mi wywalilo cos takiego jak dodałem to co podałeś :


Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\pobierz.php on line 18

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\xampp\htdocs\pobierz.php on line 18

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\pobierz.php on line 19

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\xampp\htdocs\pobierz.php on line 19
Błšd zapytania
Go to the top of the page
+Quote Post
everth
post
Post #8





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Pogubiłem się. Ty używasz tutaj MySQLi czy zwyczajnego MySQL? Bo w pierwszym skrypcie stosujesz chyba to pierwsze a teraz to drugie.
Go to the top of the page
+Quote Post
bubaluki
post
Post #9





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 12.06.2010
Skąd: Łódz

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


mysql
Go to the top of the page
+Quote Post
everth
post
Post #10





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


A łączysz się w ogóle z bazą?
Go to the top of the page
+Quote Post
bubaluki
post
Post #11





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 12.06.2010
Skąd: Łódz

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


tak
ale jeszcze coś zmienię zaraz zapodam kod

  1.  
  2. <?php
  3.  
  4.  
  5. require_once('funkcje_pliki.php');
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14. $sFileName = isset( $_GET[ 'filename' ] ) ? $_GET[ 'filename' ] : '';
  15. $sFileName = str_replace( array( '/', '\\' ), null, $sFileName );
  16. $sPath = __DIR__ . DIRECTORY_SEPARATOR . 'pliki' . DIRECTORY_SEPARATOR . $sFileName;
  17.  
  18.  
  19. $lacz = lacz_bd();
  20.  
  21. $pass = mysql_real_escape_string($_GET['prawid_uz']);
  22.  
  23.  
  24.  
  25.  
  26. $wynik = $lacz->mysql_query('UPDATE `plik` SET `nazwa_plik`=`nazwa_plik`+1 WHERE `nazwa_uz`='. $_GET['prawid_uz'].'')
  27.  
  28. or die('Błąd zapytania');
  29.  
  30.  
  31.  
  32. if( !is_readable( $sPath ) or !is_file( $sPath ) )
  33. {
  34. echo 'Nie można odczytać pliku';
  35. }
  36.  
  37.  
  38.  
  39.  
  40. $sMimeType = mime_content_type( $sPath );
  41.  
  42. header('Content-type: '.$sMimeType);
  43. header('Content-Disposition: attachment; filename="'.$sFileName.'"');
  44. readfile($sPath);
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51. ?>


ale jest błąd składni;/

Fatal error: Call to undefined method mysqli::mysql_query() in C:\xampp\htdocs\pobierz.php on line 25

Ten post edytował bubaluki 4.09.2010, 22:47:56
Go to the top of the page
+Quote Post
everth
post
Post #12





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Teraz to już mieszasz całkowicie - jak wygląda funkcja lacz_db()
Go to the top of the page
+Quote Post
bubaluki
post
Post #13





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 12.06.2010
Skąd: Łódz

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


  1.  
  2. <?php
  3.  
  4. function lacz_bd() {
  5. $wynik = new mysqli('localhost', 'uzyt_pli', 'haslo', 'plik');
  6. if (!$wynik) {
  7. throw new Exception('Połączenie z serwerem bazy danych nie powiodło się');
  8. } else {
  9. return $wynik;
  10. }
  11. }
  12.  
  13. ?>

ale już znalazłem błąd

[ tak ejst jednak dobrze miałem jedna zmienna nie zmieniana ;/

i dlatego nie łączyło z baza

take teraz kod wyglada:

  1.  
  2. <?php
  3. $sFileName = isset( $_GET[ 'filename' ] ) ? $_GET[ 'filename' ] : '';
  4. $sFileName = str_replace( array( '/', '\\' ), null, $sFileName );
  5. $sPath = __DIR__ . DIRECTORY_SEPARATOR . 'pliki' . DIRECTORY_SEPARATOR . $sFileName;
  6.  
  7. if( !is_readable( $sPath ) or !is_file( $sPath ) )
  8. {
  9. echo 'Nie można odczytać pliku';
  10. }
  11.  
  12. $sMimeType = mime_content_type( $sPath );
  13.  
  14. header('Content-type: '.$sMimeType);
  15. header('Content-Disposition: attachment; filename="'.$sFileName.'"');
  16. readfile($sPath);
  17.  
  18.  
  19.  
  20. // Zlicznie liczby pobrań
  21.  
  22.  
  23.  
  24. $pass = mysql_real_escape_string($_GET['prawid_uz']);
  25.  
  26.  
  27. $wynik = mysql_query("UPDATE `plik` SET `nazwa_plik`=`nazwa_plik`+1 WHERE `nazwa_uz`='{$pass}'") or die ('Błąd zapytania');
  28.  
  29.  
  30.  
  31.  
  32.  
  33. ?>



tak che wyświetlić :

ale nie wyświetla ^^ ;/
  1. echo '<td>Pliki Pobrano: </td><td>'.$wynik['nazwa_plik'].'</td>';
  2.  


Ten post edytował bubaluki 5.09.2010, 20:01:34
Go to the top of the page
+Quote Post
AdIoS_Neo
post
Post #14





Grupa: Zarejestrowani
Postów: 159
Pomógł: 43
Dołączył: 8.03.2009

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


Co Ty chcesz wyświetlić ? Z tego co widzę zmienna $wynik będzie przechowywała albo true albo false czy tam wynik pusty w zależności czy udało się zapisać dane do bazy czy nie ...
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: 23.12.2025 - 12:44