Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][HTML][PHP]Formularz + upload zdjęć
daniel55
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
daniel55
post
Post #2





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.
Go to the top of the page
+Quote Post

Posty w temacie


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: 11.10.2025 - 04:42