Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]przekazywanie danych w formularzu( echo $_POST)
starterphp
post 18.11.2016, 18:09:19
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 18.11.2016

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


Witam,
Jestem w trakcie nauki php, wiec prosze nie karcic smile.gif Robie sobie powiedzmy taki, a la skrypt logowania, sprawdzajac sobie jak to wszystko dziala smile.gif

Pytanie 1. Zmienna nie wyswietla sie na nastepnej stronie? Dlaczego? Co jest zle?

logowanie.html
  1. <form name="loginForm" id="authForm" novalidate="" role="form" ng-submit="logIn(loginForm)" method="post" action="post.php">
  2. <input name="username" id="username" ng-model="login" autofocus="autofocus" tabindex="1" maxlength="63" required="required" type="text">
  3. <input name="password" id="password" ng-model="password" tabindex="2" maxlength="16" required="required" type="password">

zalogowany.php
  1. Zalogowales sie jako:
  2. <?php echo $_POST['username']?>


Pytanie 2
Czy moge teraz korzystac z $_POST['username'] caly czas? Np z zalogowany.php ktos przejdzie do nastepnej strony ksiega_gosci.html, to po przejsciu w wychodze stad.html bede mogl mu wyswietlic: Wroc do nas $_POST['username'] questionmark.gif

Ten post edytował starterphp 18.11.2016, 18:35:06
Powód edycji: [Kshyhoo]: bb-code
Go to the top of the page
+Quote Post
viking
post 18.11.2016, 18:12:18
Post #2





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

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


Formularz to zbiór przeróżnych inputów tak samo jak np PIT roczny. Zatem powininny być one wewnątrz niego zawarte. Dane możesz zapisać w sesji. Sesja musi startować na każdej z podstron.


--------------------
Go to the top of the page
+Quote Post
starterphp
post 18.11.2016, 18:21:09
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 18.11.2016

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


A pierwsze pytanie? W wielu tutorialach jest podane cos na wzor tego co zrobilem. Sa przestarzale, cos sie zmienilo?

Co do drugiego pytania to rozumiem, ze bez mysql za daleko to nie pojdzie?
Go to the top of the page
+Quote Post
nospor
post 18.11.2016, 18:24:45
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Dostales odpowiedz na pierwsze pytanie...

Moze przerob wpierw podstawy formularzy w HTML bo to dosc podstawowa wiedza.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
starterphp
post 18.11.2016, 18:26:08
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 18.11.2016

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


Zle wkleilem kod, formularz dziala poprawnie. Mam zrobiony formularz z dwoma inputami. Prosze tylko o odpowiedz czemu po wpisaniu:

<?php echo $_POST['username']?> nic sie nei wyswietla>

Register globals musi byc na ON?

Korzystalem z tego tutoriala:
http://phpkurs.pl/przekazywanie-danych/

Na czym mi zalezy?

Mam cos takiego (zalozmy, ze jest to test z pytaniami)

Logowanie --> strona 1 --> strona 2 --> strona 3

Chcialbym, zeby na kazdej z tych podstron wyswietlal sie login uzytkownika wpisany w logowanie. html, bez uzywania bazy danych. Possible?

Ten post edytował starterphp 18.11.2016, 18:38:23
Go to the top of the page
+Quote Post
nospor
post 18.11.2016, 18:34:04
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To badz tak mily i wklej poprawny kod jaki masz a nie wprowadzasz nas wblad

edit:
co ci zwraca
print_r($_POST);

?


Cytat
Register globals musi byc na ON?
OFF


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
starterphp
post 18.11.2016, 18:45:10
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 18.11.2016

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


Nic.

Probowalem tez: print_r($_POST, true);

Przekierowalem logowanie.php na post.php, w ktorym znajduje sie:

post.php
  1. <?php $file = '1.txt';file_put_contents($file, print_r($_POST, true), FILE_APPEND);?>


i drukuje mi:

1.txt
  1. (
  2. [username] => 11111111111
  3. [password] => ad
  4. )


wiec wszystko dziala.

Dlaczego, wiec nie drukuje mi na mojej podstronie?

Ten post edytował starterphp 18.11.2016, 18:55:24
Go to the top of the page
+Quote Post
viking
post 18.11.2016, 18:52:13
Post #8





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

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


Może zacznijmy od tego czy masz uruchomiony jakikolwiek serwer? Następnie włącz raportowanie błędów zgodnie z Temat: Jak poprawnie zadac pytanie oraz przygotowac srodowisko pracy


--------------------
Go to the top of the page
+Quote Post
nospor
post 18.11.2016, 19:14:33
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Pewnie masz jakies durne css i nie widzisz tego. Wyswietl sobie zrodlo strony tam gdzie masz print_r (ctrl+u w wiekszosci przegladarek) i powinienies zobaczyc co tak naprawde tam masz


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
starterphp
post 19.11.2016, 09:08:49
Post #10





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 18.11.2016

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


Wrocilem wszystko do poprzedniego staniu i nagle dzialaaaaa. Nie wiem co bylo przyczyna, bo tylko przekopiowalem pliki na serwer. Moze hosting zmulil, nie mam pojecia.
Dzieki wszystkim za pomoc exclamation.gif

Drugie pytanie:

Strona jest zrobiona jako test i wyglada to tak:
logowanie.html --> I zestaw pytan.html --> II zestaw pytan.html --> III zestaw pytan.html

Na kazdej z podstron chcialbym uzywac loginu uzytkownika, wpisanego w formularz logowania. Moge prosic o podpowiedz w jaki sposob przechowac dane z formularza, bez wykorzystania bazy danych?

Ten post edytował starterphp 19.11.2016, 09:10:36
Go to the top of the page
+Quote Post
viking
post 19.11.2016, 09:10:52
Post #11





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

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


http://php.net/manual/pl/ref.session.php


--------------------
Go to the top of the page
+Quote Post
starterphp
post 19.11.2016, 12:07:16
Post #12





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 18.11.2016

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


No to lecimy dalej smile.gif

Index.php
  1. <strong>Wpisz imie</strong>
  2. <form action="name.php" method"post">
  3. <input type="text" name="username"/>
  4. <input type="submit" name="Submit" value="Submit!" />
  5. </form>
  6.  
  7. <?php
  8. $_SESSION['post-data'] = $_POST;
  9. ?>


name.php
  1. <strong>Twoj login to:</strong>
  2. <strong><?php
  3.  
  4. echo $_SESSION['post-data'];
  5. ?></strong>


Wynik to:
Twoj login to: Array, print_r rowniez nie dziala.

Bede mogl sie odwolac bezposrednio do inputa username? Np:
echo $_SESSION['post-data']['username'];

No i czemu to neie dziala?

Ten post edytował starterphp 19.11.2016, 12:08:05
Go to the top of the page
+Quote Post
viking
post 19.11.2016, 12:24:39
Post #13





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

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


Ciekawe jak może print_r nie działać dla array. $_SESSION['post-data']['username']


--------------------
Go to the top of the page
+Quote Post
starterphp
post 19.11.2016, 12:43:20
Post #14





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 18.11.2016

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


W ogole nie rozumiem tego co napisales. Nie wiem czy to jakas ironia czy co? Wkleiles jakis moj kawalek kodu i tyle.
Go to the top of the page
+Quote Post
viking
post 19.11.2016, 13:09:32
Post #15





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

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


Ty tak na poważnie nie rozumiesz co robisz?
Jak się odwołujesz do pól formularza? $_POST['username'] wybierze dane z <input type="text" name="username"/>. Tak? Skoro zrobiłeś $_SESSION['post-data'] = $_POST; to chyba oczywiste że pod kluczem post-data w sesji masz zapisaną całą tablicę POST. Zatem żeby wybrać username musisz zrobić echo $_SESSION['post-data']['username'] . Kiedy robisz echo $_SESSION['post-data']; wyświetla ci się array bo masz tam tablicę POST. I naprawdę w takiej sytuacji ciężko zrobić żeby print_r($_SESSION['post-data']) nie wyświetliło danych tablicy.


--------------------
Go to the top of the page
+Quote Post
starterphp
post 19.11.2016, 13:22:22
Post #16





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 18.11.2016

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


I trzeba bylo tak od razu, chociaz poradzile msobie w inny sposob.

Dla potomnych, kod ostatecznie wyglada tak:
- session_start(); zawsze przed kodem html

index.php
  1. <?php
  2. ?>
  3.  
  4. <strong>Wpisz imie:</strong>
  5. <form action="name.php" method="post">
  6. <input type="text" name="username"/>
  7. <input type="submit" name="Submit" value="Submit!" />
  8. </form>


name.php
  1. <?php
  2. $_SESSION['username'] = $_POST['username'];
  3. ?>
  4.  
  5. <strong>Twoje imie to:</strong>
  6. <strong><?php echo $_SESSION['username'];?></strong>


Go to the top of the page
+Quote Post
viking
post 19.11.2016, 13:28:07
Post #17





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

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


Rozumiem że to dział przedszkole ale jednak przypisywanie wartości do zmiennych to totalne podstawy PHP bez których nic zrobić nie można. Powinieneś poczytać w dokumentacji jeśli nie wiesz jak odwoływać się do zmiennych. A w sytuacji gdy echo wyświetla Array już bardziej oczywiste nie może być co zawiera zmienna. Przez przypadek zrobiłeś nawet poprawnie session_start na początku strony. Inaczej byś miał headers already sent. A na przyszłość nie pisz że "nie działa" tylko włącz pełne raportowanie błędów i czytaj komunikaty. Na stronie nie powinno być też żadnych błędów notice.


--------------------
Go to the top of the page
+Quote Post
starterphp
post 19.11.2016, 13:31:37
Post #18





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 18.11.2016

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


A to i tak nie dzialalo: echo $_SESSION['post-data']['username'] . Nic sie nie wyswietlalo

Mysle, ze temat zostal wyczerpany, dziekuje wszystkim za pomoc.

Ten post edytował starterphp 19.11.2016, 13:33:34
Go to the top of the page
+Quote Post
viking
post 19.11.2016, 13:33:11
Post #19





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

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


Bo pewnie było headers already sent.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.06.2025 - 14:16