Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Undefined variable, problem ze zmienną przekazaną z formular
-plisek-
post
Post #1





Goście







witam,
moj problem moze wyda sie banalny, ale naprawde nie widze bledu i mam problem, mimo iż to same podstawy.

otoż, mam dwa pliki -strona.html i text.php, gdzie
zawartość strona.html - prosty formularz :
  1. <form method=get action="text.php">
  2. <input name="dana" type="text">
  3. <input type=submit>
  4. </form>
  5. </body>
  6. </html>
  7.  
  8. zawartosc text.php:
  9. <?php echo $dana; ?>
  10. </body>
  11. </html>

na pozor wszystko powinno działać, jednakprzy probie uruchomienia, tzn przesłania metodą get jakiejs danej (textu), wyskakuje to:

Notice: Undefined variable: dana in C:\Program Files\Apache Group\Apache2\htdocs\projects\text.php on line 3

powiedzcie, co jest nie tak??
pozdrawiam i dzieki za odp
Go to the top of the page
+Quote Post
strife
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Witam,

To jest problem NOTICE, źle definiujesz zmienne, albo zmień sobie raportowanie błędów error_reporting" title="Zobacz w manualu php" target="_manual
  1. <?php
  2.  
  3. // ...
  4. error_reporting(E_ALL ^ E_NOTICE);
  5. // ...
  6.  
  7. ?>


Pozdrawiam!
Go to the top of the page
+Quote Post
-plisek-
post
Post #3





Goście







dzieki za odpowiedz, jednak nic z tego nie rozumiem, bawie siephp dopiero od dzis (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
czy coś jest nie tak w kodzie, czy chodzi tu o ustawienia php
pozdr
Go to the top of the page
+Quote Post
NuLL
post
Post #4





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Oj scar - lenistwo (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
  1. <html>
  2. <body>
  3. <form method=get action="text.php">
  4. <input name="dana" type="text">
  5. <input type=submit>
  6. </form>
  7. </body>
  8. </html>
  9.  
  10. zawartosc text.php:
  11. <html>
  12. <body>
  13. <?php echo if(isset($_POST['dana'])) $_POST['dana']; ?>
  14. </body>
  15. </html>

EDIT: Kolega na dole ma rację (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
batman
post
Post #5





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




A mi się wydaje, że będzie tak:

  1. <html>
  2. <body>
  3. <form method="get" action="text.php">
  4. <input name="dana" type="text">
  5. <input type=submit>
  6. </form>
  7. </body>
  8. </html>
  9.  
  10. zawartosc text.php:
  11. <html>
  12. <body>
  13. <?php echo if(isset($_GET['dana'])) $_GET['dana']; ?>
  14. </body>
  15. </html>


Jeśli metoda GET to i zmienna $_GET, a jeśli metoda POST, to zmienna $_POST (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)


racja racja. kolega Legro ma rację. Drobna pomyłka z mojej strony, za co najmocniej przepraszam. echo nie w tym miejscu wstawione

Ten post edytował batman 28.08.2005, 17:59:39
Go to the top of the page
+Quote Post
-plisek-
post
Post #6





Goście







hmm.. niestety, przetestowane, ale nadal nie działa. po wpisaniu textu w formularz nie wyswietla go na stronie text.php Wniosek z tego, że zmienna nie została utworzona, albo jej nie widać. co w tej sytuacji?? czy winą moze być źle skonfigurowany php na serwerze??

a propo, ten przyklad, troche w okrojonej wersji pochodzi z książki helionu, "php4"

czy ktoś wie, w czym tkwi problem (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

dzieki za dotychczasowe odp, i czekam na więcej ;D
pozdrawiam
Go to the top of the page
+Quote Post
Legro
post
Post #7





Grupa: Zarejestrowani
Postów: 233
Pomógł: 3
Dołączył: 18.07.2005

Ostrzeżenie: (40%)
XX---


ahh.. nie tak (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

tak:

  1. <html>
  2. <body>
  3. <form method="get" action="text.php">
  4. <input name="dana" type="text">
  5. <input type=submit>
  6. </form>
  7. </body>
  8. </html>
  9.  
  10. zawartosc text.php:
  11. <html>
  12. <body>
  13. <?php  if(isset($_GET['dana'])) { echo $_GET['dana']; } ?>
  14. </body>
  15. </html>
Go to the top of the page
+Quote Post
plisek
post
Post #8





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 28.08.2005

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


dziekuje, tym razem zadziałało (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
czemu jednak trzeba to pisać w taki sposb, sprwdzając czy dana zmienna najpierw istnieje, a dopiero pozniej wyswietlić jej wartość (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

troche mnie to dziwi, bo kurcze staram sie postępowac zgodnie z trescią zadań w książce, a niektore wogole nie działają, mimo iż uzywam tej samej wersji apache'a i php

no ale coz takie życie, (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)

jeszcze raz dziekuje
Go to the top of the page
+Quote Post
Legro
post
Post #9





Grupa: Zarejestrowani
Postów: 233
Pomógł: 3
Dołączył: 18.07.2005

Ostrzeżenie: (40%)
XX---


Cytat
czemu jednak trzeba to pisać w taki sposb, sprwdzając czy dana zmienna najpierw istnieje, a dopiero pozniej wyswietlić jej wartość (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)


nie musisz ale dobrze jest sprawdzic bo jak nie bedzie instniec to wiesz (IMG:http://forum.php.pl/style_emoticons/default/cool.gif)
Go to the top of the page
+Quote Post
Endzio
post
Post #10





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 10.09.2007

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


Temat trochę stary, ale mam nadzieje, że ktoś odpowie...
Tylko trzy pytania, ale jakże ważne (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

1) Jaki skutki uboczne lub nieporządane działania może mieć sytuacja, w której nie użyjemy w php kodu <?php if(isset($_GET['dana'])) { echo $_GET['dana']; } ?> tylko na "chama" będziemy starali się wyciągnąc GET?
2) Zauważyłem, że gdy wstawimy przy GET znaczek małpki to Notatka się nie pojawia ( @$_GET['cos'] ), czy to dobry sposób?
3) Jaką mamy pewność, że gdy wstawimy na początku kodu php error_reporting(E_ALL ^ E_NOTICE); to na innych serwerach nam nie wywali błędów? Czy to również ignoruje .htaccess oraz php.ini?

Ten post edytował Endzio 10.09.2007, 05:22:01
Go to the top of the page
+Quote Post
drPayton
post
Post #11





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


1. Skutki uboczne - NOTICE php, taki jak podany w pierwszym poście, i brak dostępu do zmiennej w dalszej części skryptu (jeśli jest sprawdzenie CZY istnieje, to można też napisać co jeśli NIE istnieje)
2. W tym wszystkim chodzi raczej o to, by dać alternatywe. Jeśli istnieje to równa się tyle, a jeśli nie istnieje to jakaś wartość domyślna np, a nie o błędy
3. Właśnie dlatego, że wstawiamy to w kodzie ma to pierszeństwo nad ustawieniami serwera i htaccess. Nie znajdziesz (chyba) serwera profesjonalnego, gdzie (czy to w ogóle możliwe?) kompletnie niedostępne byłoby wyświetlanie błędów.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 02:17