Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [rotator obrazków] nie działa, błędu nie wyświetla, najprawdopodobniej problem z uploadem
Fipaj
post
Post #1





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

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


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 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Nie działa jednak upload plików... zamiast nich wyświetla się [X] (brak pliku).


Wiecie może dlaczego tak się dzieje??
Go to the top of the page
+Quote Post
tiraeth
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


  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 ?
Go to the top of the page
+Quote Post
soldat
post
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 14.03.2005
Skąd: W-wa

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


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:

Ten post edytował soldat 6.04.2005, 17:53:39
Go to the top of the page
+Quote Post
Fipaj
post
Post #4





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

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


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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował Fipaj 7.04.2005, 16:25:56
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: 20.09.2025 - 20:25