sh4kr 0 Zgłoś post Napisano Listopad 28, 2016 Witam! Moi drodzy, jako że w PHP jestem totalnie zielony, chciałbym się dowiedzieć jak zrobić coś takiego. Mam podstronę "Formularz.html" na której (jak łatwo się domyślić) jest formularz. Chciałbym pobrać z niego dane wprowadzone przez użytkownika, a w momencie naciśnięcia przycisku "prześlij" przekierować tego użytkownika na podstronę gdzie wyświetlą mu się te dane. Jak to można zrobić? Da radę w tylko w PHP? Pomoże ktoś? Pozdrawiam, sh4kr Udostępnij ten post Link to postu Udostępnij na innych stronach
MicroVPS.pl 85 Zgłoś post Napisano Listopad 28, 2016 (edytowany) Możliwie najprostsza wersja. <?php if(isset($_POST['form'])) { if(!isset($_POST['form_1']) OR empty($_POST['form_1'])) { $error = true; echo 'Uzupełnij prawidłowo pierwszy formularz numer 1!'; } else if(!isset($_POST['form_2']) OR empty($_POST['form_2'])) { $error = true; echo 'Uzupełnij prawidłowo pierwszy formularz numer 2!'; } if(!isset($error)) echo 'Zawartość formularza numer 1 to ' . $_POST['form_1'] . ', a formularza numer 2 ' . $_POST['form_2']; } ?> <form method="post"> <input type="hidden" name="form"> <input type="text" name="form_1" placeholder="Formularz numer 1"> <input type="text" name="form_2" placeholder="Formularz numer 2"> <input type="submit" value="Prześlij"> </form> Teraz zauważyłem, że chodzi o wyświetlanie na innej podstronie. <?php if(isset($_POST['form']) && isset($_GET['form'])) // ten fragment z isset($_GET['form']) możesz usunąć jak już rozłączysz pliki { if(!isset($_POST['form_1']) OR empty($_POST['form_1'])) { $error = true; echo 'Uzupełnij prawidłowo pierwszy formularz numer 1!'; } else if(!isset($_POST['form_2']) OR empty($_POST['form_2'])) { $error = true; echo 'Uzupełnij prawidłowo pierwszy formularz numer 2!'; } if(!isset($error)) echo 'Zawartość formularza numer 1 to ' . $_POST['form_1'] . ', a formularza numer 2 ' . $_POST['form_2']; } ?> <form method="post" action="?form"> <!-- tu wpisz url kodu php --> <input type="hidden" name="form"> <input type="text" name="form_1" placeholder="Formularz numer 1"> <input type="text" name="form_2" placeholder="Formularz numer 2"> <input type="submit" value="Prześlij"> </form> Edytowano Listopad 28, 2016 przez MicroVPS.pl (zobacz historię edycji) 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
nikolaj 3 Zgłoś post Napisano Listopad 28, 2016 nie lepiej walidację pól formularza przeprowadzić na poziomie przeglądarki w javascript? Udostępnij ten post Link to postu Udostępnij na innych stronach
MicroVPS.pl 85 Zgłoś post Napisano Listopad 28, 2016 (edytowany) nie lepiej walidację pól formularza przeprowadzić na poziomie przeglądarki w javascript? Nie, wystarczy, że wyłączysz w przeglądarce javascript i nie masz walidacji. Co de facto nie znaczy, że nie warto jej stosować. Nie należy jednak mimo wszystko lekceważyć kodu niedostępnego dla usera. Im więcej zabezpieczeń tym lepiej :- ) Edytowano Listopad 28, 2016 przez MicroVPS.pl (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
nikolaj 3 Zgłoś post Napisano Listopad 28, 2016 źle rozumujesz w javascript zawsze robi się walidację by uniknąć zbytecznego przeładowywania strony zaś w php filtracje treści ew. dodatkowo wg twojej sugestii informację o brakach na wypadek wyłączenia javascript Udostępnij ten post Link to postu Udostępnij na innych stronach
likufanele 77 Zgłoś post Napisano Listopad 29, 2016 źle rozumujesz A ja widzę, że to ty źle rozumujesz zakładając że ten formularz w ogóle będzie wyświetlony w przeglądarce i wypełniony przez człowieka. Boty nie bawią się w wyświetlanie formularzy tylko lecą POST-em prosto w URL action formularza. Dlatego walidacje przeprowadza się po stronie serwera, a walidacja po stronie klienta może być tylko uzupełnieniem, które jest trochę bardziej user friendly. Udostępnij ten post Link to postu Udostępnij na innych stronach
sh4kr 0 Zgłoś post Napisano Listopad 30, 2016 (edytowany) @up Dziękuję za szybkie odpowiedzi, skrypt działa, jednak jest jeden problem. Tzn. czy można zrobić coś takiego, że po wpisaniu danych do formularza, klikając przycisk "wyślij" otwiera się strona i dopiero z tamtej strony da się przejść do strony gdzie zostaną zaprezentowane wyniki? Edytowano Listopad 30, 2016 przez sh4kr (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
MaTyyy 2 Zgłoś post Napisano Listopad 30, 2016 <form target="_blank" Spróbuj. Udostępnij ten post Link to postu Udostępnij na innych stronach
likufanele 77 Zgłoś post Napisano Grudzień 1, 2016 czy można zrobić coś takiego, że po wpisaniu danych do formularza, klikając przycisk "wyślij" otwiera się strona i dopiero z tamtej strony da się przejść do strony gdzie zostaną zaprezentowane wyniki? Można... Możesz sobie te dane zapisać np. w sesji/bazie danych/pliku i wyświetlić potem gdzie chcesz. https://pl.wikibooks.org/wiki/PHP/Sesje Udostępnij ten post Link to postu Udostępnij na innych stronach