Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Sprawdzenie formularza na bieżącej stronie, wynik na kolejnej
Szpak4
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 16.02.2016

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


Witam serdecznie.
Mam pytanie, które zakładam, że jest banalne w swej prostocie, aczkolwiek nie wiem jak znaleźć na nie odpowiedź, więc kieruję się do Was.
Otóż zrobiłem mały skrypcik do wrzucania plików na serwer. Na chwilę obecną działa on w tej sposób:

Są 3 pola, z czego dwa obowiązkowe do wypełnienia przez użytkownika a jedno opcjonalne (textarea). Kiedy wymagane pola są wypełnione i wybrane są pliki, skrypt spełnia swoje zadanie i wrzuca pliki na serwer, tworząc dodatkowo div'a z informacją (nazwami) wrzuconych plików. Do file inputa mam dodatkowo podpiętego JS aby poniżej wyświetlał wybrane pliki ale to nie jest w zasadzie istotna informacja.
Kiedy jednak wymagane pola nie zostaną wypełnione, po naciśnięciu przycisku wysłania, pliki nie są przesyłane a obok pól wyświetlana jest informacja o tym, że nie zostały one wypełnione. Dopóki nie będzie w nich wpisany tekst, skrypt nie przepuści żadnego pliku na serwer.

Otóż teraz chciałbym zrobić tak aby po wysłaniu plików lista z nimi ładowała się na nowej stronie (co wiem jak zrobić - teraz wykonuję POSTa na tej samej stronie - zmienię jego wykonywanie na inną np. upload.php), lecz jak zrobić aby kiedy pola nie są wypełnione poprawnie PHP je sprawdzało i zostawało na tej samej stronie? Dopiero po poprawnym wypełnieniu wczytywana zostałaby nowa strona z informacją o pozytywnym rezultacie.

Czy ktoś mógłby mnie naprowadzić w jaki sposób można to osiągnąć?
Dziękuję i pozdrawiam.
Go to the top of the page
+Quote Post
patryczakowy
post
Post #2





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

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


wykonaj skrypt na tej samej stronie a w przypadku poprawnego wykonania zrób przekierowanie na następną stronę np przy pomocy
  1. header('location: upload.php');

a jeśli są błendy to zostajesz na tej samej stronie
Go to the top of the page
+Quote Post
Szpak4
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 16.02.2016

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


Zaczerpnąłem troszkę informacji na temat 'header' i o to co uzyskałem:

Cytat
You can use the header() function to send a new HTTP header, but this must be sent to the browser before any HTML or text (so before the <!DOCTYPE ...> declaration, for example).

header('Location: '.$newURL);


Czyli nie można użyć tego w takiej postaci,
  1. if ($noError) header('location: upload.php');


gdzieś pośrodku strony?

Ten post edytował Szpak4 17.02.2016, 00:09:05
Go to the top of the page
+Quote Post
patryczakowy
post
Post #4





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

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


No nagłówki musisz wysłać zanim wyświetlisz cokolwiek najlepiej sprawdzanie wartości przeprowadź na samym początku błędy zapisz do zmiennej którą później możesz wyświetlić po za tym może widok warto generować na samym końcu i oddzielić go od reszty kodu poczytaj o mvc.
Go to the top of the page
+Quote Post
Szpak4
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 16.02.2016

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


Okej, pokombinuję jutro z tym i dam znać jak poszło. Dzięki za pomoc!

@Edit

Zrobiłem tak jak mi podpowiedziałeś. Działa znakomicie. Będę musiał jeszcze tylko dodać usuwanie informacji o wgranych plikach, tak aby po cofnięciu strony nie można było wgrać tych samych plików ponownie. Przeczytałem, że mogę to zrobić za pomocą sesji lub cookie. Co lepsze w tej sytuacji?


Ten post edytował Szpak4 17.02.2016, 18:44:41
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: 3.10.2025 - 23:05