Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przesylanie danych do bazy i wyswietlenie ich na stronie
bubaluki
post 2.09.2010, 11:15:44
Post #1





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

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


chciałem zrobić u siebie w projekcie dodawanie pliku i udało mi się napisać funkcje :

  1. <?php
  2.  
  3.  
  4. require_once('funkcje_pliki.php');
  5.  
  6.  
  7.  
  8.  
  9. function dodaj_plik($nowy_plik) {
  10.  
  11.  
  12.  
  13. echo "Próba dodania ".htmlspecialchars($nowy_plik)."<br />";
  14. $prawid_uzyt = $_SESSION['prawid_uzyt'];
  15.  
  16. $lacz = lacz_bd();
  17.  
  18.  
  19.  
  20.  
  21. $wynik = $lacz->query("select * from plik where nazwa_uz='$prawid_uz' and URL_plik='".$nowy_plik."'");
  22.  
  23.  
  24. if ($wynik && ($wynik->num_rows>0)) {
  25. throw new Exception('Plik już istnieje.');
  26. }
  27.  
  28.  
  29. if (!$lacz->query("insert into plik values
  30. ('".$prawid_uzyt."', '".$nowy_plik."')")) {
  31. throw new Exception('Wstawienie nowego pliku nie powiodło się');
  32. }
  33.  
  34. return true;
  35. }
  36. ?>
  37.  
  38.  

Projekt mam tak zrobiony ze to co mi się wyświetla na stronie mam w pliku funkcje_wyswietl.php

tam fragment kodu wygląda następująco:

  1.  
  2. <?php
  3. }
  4.  
  5.  
  6. function wyswietl_dodaj_plik_form() {
  7. ?>
  8.  
  9. <br />
  10. <form action="plik2.php" method="POST" ENCTYPE="multipart/form-data">
  11. <input type="file" name="plik"/>
  12. <input type="submit" value="Wyslij plik"/>
  13. </form>
  14.  
  15. <?php


a plik który robi dodawanie pliku to plik1.php:

  1.  
  2. <?php
  3.  
  4.  
  5. require_once('funkcje_pliki.php');
  6.  
  7. $max_rozmiar = 1024*1024;
  8.  
  9.  
  10. tworz_naglowek_html('Dodawanie Plikow');
  11.  
  12. try {
  13. sprawdz_prawid_uzyt();
  14. if (!wypelniony($_POST)) {
  15. throw new Exception('Formularz wypełniony niewłaściwie. Proszę spróbować ponownie.');
  16. }
  17.  
  18.  
  19. if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
  20. if ($_FILES['plik']['size'] > $max_rozmiar) {
  21. echo 'Błąd! Plik jest za duży!';
  22. } else {
  23. echo 'Odebrano plik. Początkowa nazwa: '.$_FILES['plik']['name'];
  24. echo '<br/>';
  25. if (isset($_FILES['plik']['type'])) {
  26. echo 'Typ: '.$_FILES['plik']['type'].'<br/>';
  27. }
  28. move_uploaded_file($_FILES['plik']['tmp_name'],
  29. $_SERVER['DOCUMENT_ROOT'].'/pliki/'.$_FILES['plik']['name']);
  30.  
  31.  
  32. }
  33. } else {
  34. echo 'Błąd przy przesyłaniu danych!';
  35. }
  36.  
  37. if ($tablica_plik = pobierz_plik_uzyt($_SESSION['prawid_uzyt'])) {
  38. wyswietl_plik_uzyt($tablica_plik);
  39. }
  40. }
  41. catch (Exception $e) {
  42. echo $e->getMessage();
  43. }
  44. wyswietl_menu_uzyt();
  45. tworz_stopke_html();
  46. ?>


wszystko fajnie ale nie plik nie chce mi dodawać wpisów do bazy;/
Myślę ze wszystko dobrze zrobiłem bo nie wywala mi żadnego błędu i dodaje plik ale nie dodaje wpisu do bazy ma ktos jakis pomysl co mzoe byc zle?
Go to the top of the page
+Quote Post
nospor
post 2.09.2010, 11:19:15
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




stworzyłes funkcję dodaj_plik() ale nigdzie nie widzę byś jej użył....

ps: przez pewien czas weź pisze w dziale przedszkole. przenosze


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bubaluki
post 2.09.2010, 11:31:49
Post #3





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

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


Znaczy tak wyczytałem ze za pomocą Instrukcji " require_once() służy do wczytania i wykonania kodu z określonego pliku w trakcie wykonywania skryptu"
wiec zrobiłem tak ze funkcje zapisałem w pliku funkcje_plik.php

a zrobiłem jeszcze plik :
funkcje_pliki.php i tu zawarłem ta funkcje :
  1. <?php
  2. // plik ten dołacze do wszystkich plikow bedzie on zawieral wszystkie funkcje.
  3.  
  4.  
  5. require_once('funkcje_wyswietl.php');
  6. require_once('funkcje_bazy.php');
  7. require_once('funkcje_prawid_dane.php');
  8. require_once('funkcje_uwierz.php');
  9. require_once('funkcje_plik.php');
  10.  
  11. ?>


a na początku plik2.php czyli pliku wykonującego dodanie dodalem na poczatku :
  1. <?php
  2.  
  3.  
  4. require_once('funkcje_plik.php')


I nie wiem czy wystarczy takie dodanie czy muszę to jeszcze jakoś inaczej w kodzie przedstawić ?
Go to the top of the page
+Quote Post
nospor
post 2.09.2010, 11:34:42
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




require słuzy do wczytania pliku php. Jesli plik php zawiera deklaracje funkcji to deklaracje te zostaną wykonane. Jesli jednak chcesz uzyc funkcję, to nie zależnie czy masz ją bezposrednio w pliku głównym czy w require to musisz ją wywołać, czyli np. masz miec:
  1. dodaj_plik();

Zapoznaj się proszę z podstawami obsługi funkcji. Deklaracja funkcji a jej wywołanie to dwie różne rzeczy, których póki co nie rozumiesz.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bubaluki
post 2.09.2010, 11:54:43
Post #5





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

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


ok dodałem to chodzi teraz widać ze jest próba dodania pliku do bazy ale gdy dodaje plik to mi wyskakuje komunikat na stronie :

  1. <?php
  2.  
  3.  
  4. require_once('funkcje_pliki.php');
  5.  
  6. $max_rozmiar = 1024*1024;
  7. $nowy_plik = $_POST['nowy_plik'];
  8.  
  9. tworz_naglowek_html('Dodawanie Plikow');
  10.  
  11. try {
  12. sprawdz_prawid_uzyt();
  13. if (!wypelniony($_POST)) {
  14. throw new Exception('Formularz wypełniony niewłaściwie. Proszę spróbować ponownie.');
  15. }
  16.  
  17.  
  18. if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
  19. if ($_FILES['plik']['size'] > $max_rozmiar) {
  20. echo 'Błąd! Plik jest za duży!';
  21. } else {
  22. echo 'Odebrano plik. Początkowa nazwa: '.$_FILES['plik']['name'];
  23. echo '<br/>';
  24. if (isset($_FILES['plik']['type'])) {
  25. echo 'Typ: '.$_FILES['plik']['type'].'<br/>';
  26. }
  27. move_uploaded_file($_FILES['plik']['tmp_name'],
  28. $_SERVER['DOCUMENT_ROOT'].'/pliki/'.$_FILES['plik']['name']);
  29.  
  30.  
  31. }
  32. } else {
  33. echo 'Błąd przy przesyłaniu danych!';
  34. }
  35.  
  36.  
  37.  
  38. dodaj_plik($nowy_plik);
  39. echo 'plik dodano do bazy';
  40.  
  41.  
  42.  
  43. if ($tablica_plik = pobierz_plik_uzyt($_SESSION['prawid_uzyt'])) {
  44. wyswietl_plik_uzyt($tablica_plik);
  45. }
  46. }
  47. catch (Exception $e) {
  48. echo $e->getMessage();
  49. }
  50. wyswietl_menu_uzyt();
  51. tworz_stopke_html();
  52. ?>




Odebrano plik. Poczštkowa nazwa: [C] Ekonometria (54).rar
Typ: application/x-rar-compressed
Próba dodania
Wstawienie nowego pliku nie powiodło sie





wydaje mi sie ze teraz jest to spowodowane tym fragmentem kodu :
  1. function dodaj_plik($nowy_plik) {
  2.  
  3.  
  4.  
  5. echo "Próba dodania ".htmlspecialchars($nowy_plik)."<br />";
  6. $prawid_uzyt = $_SESSION['prawid_uzyt'];
  7.  
  8.  
Go to the top of the page
+Quote Post
nospor
post 2.09.2010, 12:04:58
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Skad zes wytrzasnął:
$nowy_plik = $_POST['nowy_plik'];
?
Dane o pliku nie znajdują sie w $_POST a w $_FILES - już nawet z $_FILES korzystasz więc trzymaj się tego.

Włącz sobie wyswietlanie wszystkich błędów. Masz o tym napisane tutaj:
Temat: Jak poprawnie zada pytanie

i ogólnie zastosuj się do porad tam podanych

ps: po raz ostatni podaję ci linka do tego tematu "Jak poprawnie zadać pytanie". Następnym razem zamkne temat i poczekam az zastosujesz sie do porad podanych w tym temacie. No nie bedziemy w kazdym temaci ci pisac: a zrob to, a zrob tamto.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 02:31