Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z formularzem, problem z formularzem
micbuc
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 1.10.2005

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


Witam wszystkich,

Urodził mi się taki problem... Otóż mam kilka plików:
formularz.php

Kod
if (!isset($action)) {
    $action="display";
}
    
switch ($action) {

    case "display":
  include "frame.html";
    break;
    
    case "add":
  include "add.php";
    break;
}

frame.html:
Kod
<form mehod="post" action="formularz2.php?action=add">
<input name="nazwa" type="text"/>
<input type="submit" value="dodaj">
</form>

oraz add.php:
Kod
if ($name=="")  {
print "uzupełnij";}
else {
print "ok";}

I mój problem\pytanie: czemu mi to nie działa, tzn: czemu wypełniając lub pozostawiając wolnego textfielda nie ma żadnej reakcji??
Z góry dzięki za wszystkie podpowiedzi i sugestie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
zbig13
post
Post #2





Grupa: Zarejestrowani
Postów: 214
Pomógł: 0
Dołączył: 3.04.2004
Skąd: Legionowo

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


Nie działa pewnie dlatego, że masz wyłączoną opcję register_globals, a do zmiennych przesyłanych metodą GET i POST odnosisz się przez samą nazwę. Powinieneś zrobić tak:

formularz.php
  1. <?php
  2.  
  3. if (!isset($_GET['action'])) { // Sprawdzenie, czy istnieje zmienna action (w pasku adresu zmienne przesyłane są metodą GET, dlatego musi być $_GET[])
  4. $action="display";
  5. } else {
  6. $action = $_GET['action'];
  7. }
  8.  
  9. switch ($action) {
  10.  
  11. case "display":
  12.  include "frame.html";
  13. break;
  14.  
  15. case "add":
  16.  include "add.php";
  17. break;
  18. }
  19.  
  20. ?>



add.php
  1. <?php
  2.  
  3. if ($_POST['name']=="") { // Musi być $_POST, bo ustawiłeś w formularzu, że będziesz przesyłał metodą POST (<form method="post">)
  4. // IMO lepiej zrobić tak:
  5. // if (empty($_POST['name']))
  6. print "uzupełnij";
  7. } else {
  8. print "ok";}
  9.  
  10. ?>


Do kodu php używaj tagów [ php ][/ php ], a nie [ code ] smile.gif

Pozdrawiam,
Zbig
Go to the top of the page
+Quote Post
hwao
post
Post #3


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Uzywaj $_POST/$_GET - te wsszytkie kursy co o tym nie pisza powinny zostac usuniete;)

Kod
form mehod="post"

z takiego formularz odbiera sie dane $_POST['nazwaInputa']

z adrestu strona.pl?cos=cos2
$_GET['cos']; // ma wartosc cos2
Go to the top of the page
+Quote Post
micbuc
post
Post #4





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 1.10.2005

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


Zbig13 dziękuję, Hwao również smile.gif
Niestety Wasze podpowiedzi na niewiele mi się zdały.
Opcję register_globals mam włączoną, także chyba to nie tego wina.
Wciąż do adresu strony przesyła mi się tylko formularz.php?nazwa=

Jakieś sugestie ?
THX
Go to the top of the page
+Quote Post
Qvazar
post
Post #5





Grupa: Zarejestrowani
Postów: 41
Pomógł: 3
Dołączył: 28.10.2005

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


zamień frame.html na coś takiego

Kod
<form mehod="post" action="formularz2.php">
<input name="nazwa" type="text"/>
<input type="submit" value="dodaj">
<input type="hidden" name="action" value="add"/>
</form>
Go to the top of the page
+Quote Post
hwao
post
Post #6


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




no tak, glupi ja;) nie zauwazylem literowki method

Poprawione smile.gif
  1. <form method="post" action="formularz2.php?action=add">
Go to the top of the page
+Quote Post
Qvazar
post
Post #7





Grupa: Zarejestrowani
Postów: 41
Pomógł: 3
Dołączył: 28.10.2005

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


popraw jeszcze w add.php nazwe zmiennej $name na $nazwa bo taką przesyłasz w formularzu

Ten post edytował Qvazar 28.03.2006, 11:43:34
Go to the top of the page
+Quote Post
micbuc
post
Post #8





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 1.10.2005

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


uff, dziękować, dziękować, najgorsze są literówki winksmiley.jpg
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 - 06:04