Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Undefined variable
Forum PHP.pl > Forum > Przedszkole
plisek
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
strife
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!
plisek
dzieki za odpowiedz, jednak nic z tego nie rozumiem, bawie siephp dopiero od dzis winksmiley.jpg
czy coś jest nie tak w kodzie, czy chodzi tu o ustawienia php
pozdr
NuLL
Oj scar - lenistwo 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ę tongue.gif
batman
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 winksmiley.jpg


racja racja. kolega Legro ma rację. Drobna pomyłka z mojej strony, za co najmocniej przepraszam. echo nie w tym miejscu wstawione
plisek
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 questionmark.gif

dzieki za dotychczasowe odp, i czekam na więcej ;D
pozdrawiam
Legro
ahh.. nie tak 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>
plisek
dziekuje, tym razem zadziałało smile.gif
czemu jednak trzeba to pisać w taki sposb, sprwdzając czy dana zmienna najpierw istnieje, a dopiero pozniej wyswietlić jej wartość 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, laugh.gif

jeszcze raz dziekuje
Legro
Cytat
czemu jednak trzeba to pisać w taki sposb, sprwdzając czy dana zmienna najpierw istnieje, a dopiero pozniej wyswietlić jej wartość questionmark.gif


nie musisz ale dobrze jest sprawdzic bo jak nie bedzie instniec to wiesz cool.gif
Endzio
Temat trochę stary, ale mam nadzieje, że ktoś odpowie...
Tylko trzy pytania, ale jakże ważne 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?
drPayton
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.