![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 20.11.2019 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich.
Planuję zrobić prostą stronę - informacja o imprezie. Na stronie chciałbym umieścić formularz z możliwością rejestracji (kilka danych :Imię , nazwisko, nick, email, tel). Dodatkowo chcę aby była możliwość przesłania zdjęcia - Avatar uczestnika. Kod testuję lokalnie na xampp serwer Apache. Na stronce wpisuję dane ,otwiera się okno uploadu, wybieram plik i klikam wyślij. Wpisane do formularza dane tekstowe Imię i nazwisko ... wyświetlają się na stronie, natomiast mam problem z lokalizacją i zapisem zdjęcia na serwerze. Kod php którego używam : wysyłanie pliku : <form enctype="multipart/form-data" action="plik.php" method="post" > <input type="hidden" name="MAX_FILE_SIZE" value="512000" /> <input type="file" name="obrazek" /> <input type="submit" value="wyślij" /> </form> zapis na serwerze odebranego plku: <?php function zapisz_plik() { $lokalizacja = './temp/plik_obrazkowy.jpg'; if(is_uploaded_file($_FILES['obrazek']['tmp_name'])) { if(!move_uploaded_file($_FILES['obrazek']['tmp_name'], $lokalizacja)) { echo 'problem: Nie udało się skopiować pliku do katalogu.'; return false; } } else { echo 'problem: Możliwy atak podczas przesyłania pliku.'; echo 'Plik nie został zapisany.'; return false; } return true; } ?> Plik nie zapisuje się nigdzie, nie jestem pewien czy dobrze podaję ścieżkę zapisu i drugi parametr['tmp_name']. Kolejna kwestia, to zapis tych danych w bazie danych na serwerze i ich wyświetlenie w formie listy uczestników(Imię, nazwisko, nick) z avatarem. Dodatkowo podczas rejestracji można by dodać pole wyboru darmowego gadżetu z pośród kilku dostępnych w formie pola wyboru "radio", info dostępne tylko dla organizatora. Jak najprościej zrealizować taką funkcję na stronie? Będzie to mała impreza max kilkadziesiąt osób. Z góry dzięki . Pozdrawiam. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) ![]() ![]() |
Lokalizacja to chyba wiesz co oznacza.
Ten post edytował dublinka 20.11.2019, 14:01:26 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 20.11.2019 Ostrzeżenie: (0%) ![]() ![]() |
Ok.
Ogarnąłem funkcję uploadu, okazało się, że deklarowałem funkcję, natomiast już jej nie wywoływałem w kodzie. Traktowałem deklarację jako wywołanie funkcji. Jednak o ile podczas testów na lokalnym serwerze Apache wszystko działa Ok, to już po przeniesieniu strony na serwer .prv.pl i zmianie ścieżki zapisu pliku dostaję komunikat: problem: Nie udało się skopiować pliku do katalogu. Nie wiem czy to wina kodu, czy może serwer nie obsługuje funkcji PHP lub złą wersja? Pozdrawiam. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 556 Pomógł: 6314 Dołączył: 27.12.2004 ![]() |
Cytat Nie wiem czy to wina kodu, czy może serwer nie obsługuje funkcji PHP lub złą wersja? A moze poprostu zle nadane prawa zapisu do katalogu ./temp ? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 20.11.2019 Ostrzeżenie: (0%) ![]() ![]() |
tylko, że nie widzę na serwerze takiego katalogu
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 556 Pomógł: 6314 Dołączył: 27.12.2004 ![]() |
to tym bardziej jak php ma tam cokolwiek wrzucic skoro go nie ma?
ps: ja mowie o tym $lokalizacja = './temp/plik_obrazkowy.jpg'; wiec sam tworzysz lokalizacje a nie stworzyles katalogow odpowiednich? W ogole rozumiesz kod, ktory piszesz? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 20.11.2019 Ostrzeżenie: (0%) ![]() ![]() |
Utworzyłem odpowiednie katalogi , do których odnosiła się lokalizacja i do których powinien się zapisać plik . U mnie było to $lokalizacja = './testy/grafika/obrazek.jpg.';
Nadałem prawa do zapisu i nadal występuje problem podczas próby zapisu. Wkleiłem też do php kod: <?php // wyświetlanie typu pliku echo $_FILES['obrazek']['type']; // wyświetlanie rozmiaru echo $_FILES['obrazek']['size']; // wyświetlanie nazwy pliku echo $_FILES['obrazek']['name']; // wyświetlanie nazwy tymczasowej echo $_FILES['obrazek']['tmp_name']; // wyświetlanie ewentualnych błędów echo $_FILES['obrazek']['error']; ?> W odpowiedzi pokazuje : image/jpeg19612zdj.jpg/tmp/phpoyDuP10 Czyli z tego z rozumiem plik jest w katalogu tymczasowym na serwerze ale nie może zostać zapisany do katalogu docelowego OK. Już działa. Problem polegał na tym, że do testów utworzyłem na serwerze katalog testy i tam kopiowałem pliki upload.html i upload.php. Po wklepaniu strony xxx.prv.pl/testy/upload.html stronka uploadu się otwierała natomiast podczas zapisu pliku pomimo właściwej ścieżki dostępu i uprawnień zapisu, operacja kończyła się błędem. Po umieszczeniu plików upload.html i upload.php do katalogu głównego i wklepaniu adresu xxx.prv.pl/upload.html, wszystko zadziałało jak należy. Można zapisywać pliki do dowolnego katalogu na serwerze, po wpisaniu odpowiedniej ścieżki w pliku upload.php. Czy istnieje sposób aby testy robić w osobnym katalogu na serwerze? czy zawsze trzeba umieszczać pliki w katalogu głównym? Dzięki za pomoc. Pozdrawiam. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) ![]() ![]() |
Mozesz gdzie chcesz
Witam wszystkich. Planuję zrobić prostą stronę - informacja o imprezie. Na stronie chciałbym umieścić formularz z możliwością rejestracji (kilka danych :Imię , nazwisko, nick, email, tel). Dodatkowo chcę aby była możliwość przesłania zdjęcia - Avatar uczestnika. [........] Dodatkowo podczas rejestracji można by dodać pole wyboru darmowego gadżetu z pośród kilku dostępnych w formie pola wyboru "radio", info dostępne tylko dla organizatora. Jak najprościej zrealizować taką funkcję na stronie? Będzie to mała impreza max kilkadziesiąt osób. Z góry dzięki . Pozdrawiam. Rejestracja czy po prostu dopisywanie do bazy jak leci bo rejestracja to juz i logowanie a dopisanie tylko to wprowadzenie danych i poslanie na serwer. 1. Formularz 2. Zeby nie bylo powielan nickow i emaila zabezpiecz to sprawdzajac czy juz nie istnieja.Chociaz sprawdzaj nick zeby nie wprowadzono 2 takich samych. 3. Przed zapisem do bazy filtruj dane (prevent SQL). Obraz filtruj pod względem: rozmiarów, rozszerzenia, wysokosci i szerokosci. 4. Obraz przesylaj na serwer do danego katalogu a w bazie zapisuj samą nazwe. Zbezpiecz sie przed dodaniem takiej samej nazwy. Wiec albo sprawdzaj czy taki sam plik istnieje juz na serwerze lub od razu doklej jakis losowy string do nazwy badz od razu zmien nazwe z oryginału na jakis hasz typu" erfdstt3wrerw43trgdt45td4t.jpg i te nazwe zapisz do bazy. 5. Po dodaniu przekierowac na dana strone lub wyswietl informacje z podziekowaniem + link do strony gdzie wyswietla sie dane. 6. Zrob wyswietlenie z bazy. Sam obraz wyswietl podając tag <img a jako nazwe pobierz daną z tabesli sql. Ten post edytował dublinka 22.11.2019, 09:27:40 -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 20.11.2019 Ostrzeżenie: (0%) ![]() ![]() |
Panowie formularz już mam i zapisane dane w bazie danych.
Teraz potrzeba napisać funkcję, która po kliknięciu przycisku np. odczyt, będzie pobierała dane z bazy np. do tablicy, Imię, Nazwisko i informację o lokalizacji pliku *.jpg (Avatar). Następnie trzeba te informacje wyświetlić na stronie np. w nowym oknie. Jakich funkcji najlepiej użyć? Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.04.2025 - 06:58 |