Skocz do zawartości
sh4kr

Pobieranie danych z formularza i wyświetlanie na innej podstronie.

Polecane posty

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

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 przez MicroVPS.pl (zobacz historię edycji)
  • Upvote 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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 przez MicroVPS.pl (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

ź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

ź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

@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 przez sh4kr (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×