Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [rotator obrazków] nie działa, błędu nie wyświetla
Forum PHP.pl > Forum > Gotowe rozwiązania
Fipaj
Witam!

Napisałem sobie taki skrypcik...

  1. <?php
  2. // rotator bannerów
  3. // sql: CREATE TABLE rotator (plik TEXT, link TEXT);
  4. class rotator {
  5. var $host, $nazwa, $uzytkownik, $haslo;
  6. // zmienne mysql
  7. var $polaczenie, $czy_polaczony = FALSE;
  8. // dodatkowe zmienne
  9. var $zapytanie, $wiersz;
  10. // zmienne do zapytań
  11. function start () {
  12. $this->polaczenie = mysql_connect ($host, $uzytkownik, $haslo);
  13. mysql_select_db ($this->nazwa);
  14. // połączenie z mysql otwarte
  15. $this->czy_polaczony = TRUE;
  16. }
  17. function stop () {
  18. mysql_close ($this->polaczenie);
  19. // połączenie z mysql zamknięte
  20. $this->czy_polaczony = FALSE;
  21. }
  22. function dodaj ($plik, $link) {
  23. move_uploaded_file ($_FILES[$plik]['tmp_name'], $_FILES[$plik]['name']);
  24. // plik przesłany
  25. mysql_query ('INSERT INTO rotator VALUES (\"' . $plik . '\"\"' . $link . '\")');
  26. // zapytanie
  27. }
  28. function wyswietl ($ile) {
  29. $this->zapytanie = mysql_query ('SELECT * FROM rotator ORDER BY RAND() LIMIT ' . $ile);
  30. // zapytanie
  31. while ($this->wiersz = mysql_fetch_array ($this->zapytanie)) {
  32. print ('<a href=\"' . $this->wiersz[&#092;"link\"] . '\"><img alt=\"\" src=\"' . $this->wiersz[\"plik\"] . '\" /></a>');
  33. }
  34. }
  35. }
  36. // koniec klasy
  37. // teraz wywołujemy
  38. $obrazki = new rotator ();
  39. $obrazki -> host = 'localhost';
  40. $obrazki -> nazwa = 'test';
  41. $obrazki -> uzytkownik = 'root';
  42. $obrazki -> haslo = '';
  43. $obrazki -> start ();
  44. // teraz formularz
  45. ?>
  46. <form action=\"rotator.php\" method=\"post\">
  47. <input type=\"file\" name=\"plik\">
  48. <input type=\"text\" name=\"link\">
  49. <input type=\"submit\" name=\"wyslij\">
  50. </form>
  51. <?php
  52. if (isset ($_POST['wyslij'])) {
  53. $obrazki -> dodaj ($_POST['plik'], $_POST['link']);
  54. // dodajemy obrazek
  55. }
  56. $obrazki -> wyswietl ('5');
  57. $obrazki -> stop ();
  58. ?>


No więc testuję i... błędu nie wyświetla, ale jest problem.

Dane obrazka są zapisywane w bazie. To działa
Dane są odczytywane. To też działa tongue.gif
Nie działa jednak upload plików... zamiast nich wyświetla się [X] (brak pliku).


Wiecie może dlaczego tak się dzieje??
tiraeth
  1. <?php
  2. move_uploaded_file ($plik['tmp_name'], $plik['name']);
  3. ?>

Daj to w 24 linii, czyli podmień stary kod na ten...

2. Po co robisz, coś co można zrobić w kilka linijek kodu ?! Nie jest to optymalne rozwiązania, pozatym rotator bannerów, która zawiera tylko plik i link lepiej zrobić na plikach, bo po co zabierać pamięć operacyjną bazy danych ?
soldat
Może spróbuj $_FILES[plik] zamiast $_POST[plik] (linia 56)
A później w linii 24 :

  1. <?php
  2. move_uploaded_file($plik['tmp_name'],$plik['name'])
  3. ?>


zamiast

  1. <?php
  2. move_uploaded_file ($_FILES[$plik]['tmp_name'], $_FILES[$plik]['name']);
  3. ?>


i w linii 26 :

  1. <?php
  2. mysql_query ('INSERT INTO rotator VALUES (\"' . $plik['name'] . '\"\"' . $link . '\")');
  3. ?>



EDIT : sorry Tiraeth, jak pisałem to nie było twojego posta :roll2:
Fipaj
Dzięki za rady, niestety dalej nie działa. Problem jest z tym uploadem.


@Tiraeth: skrypt jest na bazie danych, ponieważ zamierzam go jeszcze rozbudowywać o dodatkowe opcje, zaczynam jednak od minimum kodu, maksimum przejrzystości smile.gif

Oto screen jak to widzi mój Firefox:
link

(wraz z oknem właściwości elementu jednego obrazka)



EDIT: Już działa, próbował zapisywać obrazki na C:/ a nie w katalogu htdocs tongue.gif
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.