Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]formularze
azbest22
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 9.09.2010

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


ucząc się php próbuje wysłać dane z formularza zapisanego w 1 pliku do pliku 2.
wklejam poniżej kompletne kody
plik reg_form.php zwierający formularz

  1.  
  2. <html>
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
  5. <meta http-equiv="Content-Language" content="pl">
  6. </head>
  7. <body>
  8. <form action="reg.php" method="post" enctype="text/plain" accept-charset="iso-8859-2, utf-8"><br>
  9. <input type="text" name="login" value="login max 10 znaków" maxlength="10" align="middle"><br>
  10. <input type="password" name="haslo" value="hasło" maxlength="11" align="middle"><br>
  11. <input type="password" name="haslo2" value="hasło" maxlength="11" align="middle"><br>
  12. <input type="text" name="email" value="ameil@email" maxlength="30"><br>
  13. <input type="checkbox" name="regulamin"><br>
  14. <input type="submit" name="wyslij" value="rejestrować"><br><br>
  15. </form>
  16. </body>
  17. </html>


oraz plik reg.php który ma te dane wyświetlić

  1. <?php
  2. if (isset($_POST["wyslij"])) {
  3. // Zostali�my przekierowani na stronę z formularza
  4. // - sprawdzamy, czy wszystkie pola zostały wypełnione
  5. if (empty($_POST["login"]) || empty($_POST["haslo"]) || empty($_POST["haslo2"]) || empty($_POST["email"])) {
  6. echo "<p><font color=\"red\">Musisz wypełnić wszystkie pola!</font></p>";
  7. echo "<p><a href=\"reg_form.php\">Powrót do formularza</a></p>";
  8. } else {
  9. ?>
  10. <h3>Dziękujemy za zgłoszenie!</h3>
  11. <p>Twoje dane:</p>
  12. <ul>
  13. <li>login: <b><?= trim($_POST["login"]); ?></b></li>
  14. <li>hasło: <b><?= trim($_POST["haslo"]); ?></b></li>
  15. <li>Adres email: <b><?= trim($_POST["email"]); ?></b></li>
  16. <?php
  17. if (isset($_POST["regulamin"]))
  18. echo "<li>akceptujesz regulamin.</li>";
  19. else
  20. echo "<li>Nie nie akceptujesz regulaminu.</li>";
  21. ?>
  22. </ul>
  23. <?php
  24. }
  25. } else {
  26. // Je�li użytkownik dostał się na tę stronę w sposób inny niż przez formularz
  27. // zostaje przekierowany do formularza zgłoszenia
  28. header("Location: reg_form.php");
  29. }
  30. ?>


jest to przerobiony fragment z poradnika i za chiny nie chce działać.

po wciśnięciu klawisza odpala się strona reg.php i natychmiast wraca do formularza, a gdy fragment
  1. header("Location: reg_form.php");

oznaczę jako komentarz wywala mi stronę reg.php białą i bez żadnych danych

Ten post edytował azbest22 14.09.2010, 20:14:04
Go to the top of the page
+Quote Post
lord2105
post
Post #2





Grupa: Zarejestrowani
Postów: 380
Pomógł: 59
Dołączył: 24.04.2010
Skąd: London

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


  1. if (isset($_POST["submit"])) {


zmień na :

  1. if (isset($_POST["wyslij"])) {


Pozdrawiam


--------------------
40% rozwiązań znajduje się tutaj.
59,9% tutaj.

Jeśli pomogłem rozwiązać Twój problem wciśnij
Go to the top of the page
+Quote Post
flashdev
post
Post #3





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


A na przyszłość w pierwszej kolejności sięgasz po instrukcję:
  1. var_dump($_POST);

Aby samodzielnie dojść do rozwiązania problemu.


--------------------
Go to the top of the page
+Quote Post
azbest22
post
Post #4





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 9.09.2010

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


faktycznie to przeoczyłem ale problem nie ustąpił sad.gif
masz jeszcze jakieś pomysły??
Go to the top of the page
+Quote Post
bastard13
post
Post #5





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Zakomentuj sobie wywołanie funkcji header(), dodaj sobie na początku skryptu var_dump($_POST) i napisz co ci wyświetla.


--------------------
Go to the top of the page
+Quote Post
azbest22
post
Post #6





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 9.09.2010

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


zdefiniuj zakomenduj bo ja tu świerzak jestem straszny ale dociekliwy
Go to the top of the page
+Quote Post
bastard13
post
Post #7





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


to:
  1. header("Location: reg_form.php");

na to:

  1. // header("Location: reg_form.php");

chodzi mi o to, żeby nie przenosiło cię z tego skryptu, gdyby skrypt poleciał do else.


--------------------
Go to the top of the page
+Quote Post
azbest22
post
Post #8





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 9.09.2010

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


wynikiem
  1. var_dump($_POST);
jest

array(0) { }
Go to the top of the page
+Quote Post
bastard13
post
Post #9





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


To znaczy, że nie przesyłasz tutaj żadnego posta. Widocznie masz coś źle ustawionego w atrybucie action formularza. Czy pliki reg_form.php i reg.php są w jednym katalogu?


--------------------
Go to the top of the page
+Quote Post
azbest22
post
Post #10





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 9.09.2010

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


tak są w tym samym miejscu. wkleiłem dokładnie całą ich zawartość .
Go to the top of the page
+Quote Post
bastard13
post
Post #11





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


usuń ze znacznika form:
enctype="text/plain"


--------------------
Go to the top of the page
+Quote Post
azbest22
post
Post #12





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 9.09.2010

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


no i dzięki wielkie. wszystko ruszyło smile.gif
hurraaaa
Go to the top of the page
+Quote Post
Maciek1705
post
Post #13





Grupa: Zarejestrowani
Postów: 157
Pomógł: 3
Dołączył: 15.06.2009

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


zrób tak w tym formularz czyli na stronie reg_form.php
  1. <input type="text" name="login" value="login max 10 znaków" maxlength="10" align="middle" /><br/>
  2. <input type="password" name="haslo" value="hasło" maxlength="11" align="middle" /><br/>
  3. <input type="password" name="haslo2" value="hasło" maxlength="11" align="middle" /><br/>
  4. <input type="text" name="email" value="ameil@email" maxlength="30" /><br/>
  5. <input type="checkbox" name="regulamin" /><br>
  6. <input type="hidden" name="wyslij" value="1" />
  7. <input type="submit" name="w" value="rejestrować" /><br/><br/>


jak widać inputy się domyka!!! to 1wszy błąd poza tym submitu się nie odbiera zamiast tego wprowadzony jest jeden nowy input natomiast na stronie reg.php wprowadź taką zmianę
zamiast:
  1. if (isset($_POST["wyslij"])) {

wklej:
  1. if (($_POST["wyslij"])==1) {


no i to tyle u mnie działa nie zapomnij o pomógł jak ci też zadziała;p
Go to the top of the page
+Quote Post
bastard13
post
Post #14





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Po pierwsze: niedomknięty input wyświetli błąd w walidatorze html'a, ale to nie jest błąd, który może przeszkodzić w działaniu.
Po drugie: submit'a też się odbiera.


--------------------
Go to the top of the page
+Quote Post
azbest22
post
Post #15





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 9.09.2010

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


a ja mam jeszcze pytanko jak np. przypisać wartości z posta do konkretnych zmiennych które by mi się np wygodniej stosowało dalej??
zrobiłem coś takiego ale mi nie działa



  1. $login = $_post["login"];
  2. $haslo = $_post["haslo"];
  3. $haslo2 = $_post["haslo2"];
  4. $email = $_post["email"];
  5. $regulamin = $_post["tegulamin"];
  6. if (($haslo == $haslo2)||($regulamin == "on"))
  7. {
  8. echo ("$login,<br>,$haslo,<br>,$email,<br><hr>");
  9.  
  10. }
  11. else
  12. {
  13. echo "<p>niepoprawne dane!<br><a href=\"reg_form.php\">Powrót do formularza</a></p>";
  14. }

i niestety nie pokazuje mi wartości zmiennych. zakładam że źle są przypisane do nich wartości ale nie bardzo mogę dojść dlaczego

już sobie poradziłem tongue.gif
zaponiałem o wielkości liter sad.gif
początki zawsze są trudne biggrin.gif:D:D

temat do zaknięcia
Go to the top of the page
+Quote Post
lord2105
post
Post #16





Grupa: Zarejestrowani
Postów: 380
Pomógł: 59
Dołączył: 24.04.2010
Skąd: London

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


Przypisywanie zmiennych powinno wyglądać tak :
  1. $login = $_POST["login"];
  2. $haslo = $_POST["haslo"];
  3. $haslo2 = $_POST["haslo2"];
  4. $email = $_POST["email"];
  5. $regulamin = $_POST["tegulamin"];


Natomiast warunek:

  1. if ($haslo == $haslo2 || $regulamin == "on" )


Jest trochę bez sensu powinno być:

  1. if ($haslo == $haslo2 && $regulamin == "on" )


Nie uważasz, że user powinien zaakceptować regulamin by przejść dalej oraz hasła powinny być takie same więc nie logiczne OR ale AND.

Poza tym co do tego input`a checkbox masz źle zdeklarowane parametry:

masz:

  1. <input type="checkbox" name="regulamin">


a co do warunków i przypisania zmiennych powinno być:

  1. <input type="checkbox" name="tegulamin" value="on">


Pozdrawiam



--------------------
40% rozwiązań znajduje się tutaj.
59,9% tutaj.

Jeśli pomogłem rozwiązać Twój problem wciśnij
Go to the top of the page
+Quote Post
azbest22
post
Post #17





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 9.09.2010

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


co do inputa bym się kłócił gdyż nie zależy mi na tym aby był domyślnie zaznaczony. co do warunku do dzięki za poprawkę bo miało być tak jak napisałeś ale źle spojrzałem w kursik chyba:(
a co do przypisania zmiennych sam doszedłem już że php odróżnia wielkie litery od małych smile.gif
ale dzięki za podpowiedź
Go to the top of the page
+Quote Post
lord2105
post
Post #18





Grupa: Zarejestrowani
Postów: 380
Pomógł: 59
Dołączył: 24.04.2010
Skąd: London

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


Jeżeli input miałby być domyślnie zaznaczony to musiałby mieć parametr checked a go nie ma wiec nie będzie domyślnie zaznaczony


--------------------
40% rozwiązań znajduje się tutaj.
59,9% tutaj.

Jeśli pomogłem rozwiązać Twój problem wciśnij
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 Aktualny czas: 20.08.2025 - 23:20