Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pomoc ze zrozumieniem książki
Forum PHP.pl > Forum > Przedszkole
pkosciej
Czytam własnie ksiazke o php, mam podany taki przykład, który pozwala na odczytywaniu wartosci z formularzy

Welcome4.html

  1.  
  2. <from action "welcome4.php" method="post">
  3. <input type="text" name="firstname" /></label><br>
  4. <input type="submit" value="wyslij" />
  5. </from>


welcome4.php

  1.  
  2. <?php
  3. $firstname = $_POST['firstname'];
  4. echo "Witaj $firstname";
  5. ?>
  6.  


Z książki zrozumiałem, że wpisuje się w formularzu "firstname" wartość tego firstname przekazywana jest do pliku welcome4.php a konkretnie "$_POST['firstname']"
po czym tworzy się zmieną "$firstname" i przypisuje sie jej wartość ->"$_POST['firstname']"
elektem jest mozliwosc korzystania ze zmiennej $firstname w calym pliku welcome4.php przechowująca tekst podany przez użytkownika

Teraz sie zastanawiam...po co to wogole?questionmark.gif
zrobiem sobie taki sam przyklad na swoim serwerze. jednak zrobilem to w ten sposob:

<?php
echo "Witaj $firstname";
?>

co sie okazało przykład dalej działał prawidłowo, bez zadnych zmian, tak wiec ku czemu słóży ta linijka
$firstname = $_POST['firstname'];

questionmark.gifquestionmark.gif?
wookieb
Działa na Twoim serwerze bo masz włączone ustawienie "register_globals", które nie powinno być włączone.
pkosciej
ok, trochę o tym własnie przeczytałem.
Czyli formularze generują zmienne globalne, ale w jakich plikach? zmiennych tych mogę używać w dokumencie do którego został przesłany formularz czyli w tym przypadku welcome4.php? czy wszystkich plików w katalogu, na serwerze czy jak?
melkorm
Bardzo dobra rada: weź głęboki oddech i zapomnij o "register_globals".

Cytat
Działa na Twoim serwerze bo masz włączone ustawienie "register_globals", które nie powinno być włączone.


http://ch2.php.net/manual/en/security.globals.php @ Warning
pkosciej
ok, wiem ze jest to nie dobre i od dzisiaj zamierzam używać dotychczas nie użwane przezemnie

$cos= $_POST['cos'];

no, ale chyba możecie mi odpowiedzieć na mojego posta wyżej;) chcial bym wiedziec jak to działa
melkorm
Masz wszystko napisane w manualu, naucz się z niego korzystać a oszczędzisz sobie i nam sporo czasu smile.gif Zresztą w necie i na forum jest sporo info na ten temat smile.gif
pkosciej
ech... zatytułowałem posta, że nie rozumiem książki i proszę o wyjaśnienie a w odpowiedzi dostałem poczytaj w necie...
melkorm
Te zmienne są generowane globalnie (jak sama nazwa wskazuje _globals), czyli, każdy wywołany plik w danym żądaniu będzie widzieć tą zmienną (chyba że ją nadpiszesz) tworzone one są przez silnik PHPa w tle z tablic globalnych między innymi: $_POST i $_GET (ich klucze stają się nazwami zmiennych) porządek w jakim są one określane czyli jeżeli masz $_GET['action'] i $_POST['action'] determinuje flaga variables_order. Jak czegoś jeszcze nie wiesz to pytaj wink.gif

PS. Ogólnie bardzo nie zaleca się z korzystania z tego i jeżeli widzisz jakikolwiek tutorial/książkę używającą tego to możesz na wstępie skreślić to źródło wiedzy (generalizuję ale w sieci jest pełno marnych kursów do PHP lub baaardzo przedawnionych).
pkosciej
czyli w moim przypadku tylko plik welcome4.php będzie widział te zmienne bo tylko on został wywołany?
~annonymous
Witam

  1. <from action "welcome4.php" method="post">
  2. <input type="text" name="firstname" /></label><br>
  3. <input type="submit" value="wyslij" />
  4. </from>


a nie powinno byc zamiast <from> <form> questionmark.gif
fr33d0m
@-~annonymous-,
Powinno być.

@pkosciej,
Tak. Możesz podać tytuł i autora książki?
by_ikar
Cytat(pkosciej @ 16.02.2012, 21:52:32 ) *
czyli w moim przypadku tylko plik welcome4.php będzie widział te zmienne bo tylko on został wywołany?


Tak, tylko w tym pliku, chyba że poprzez include/require dołączysz jakiś inny plik, do pliku, do którego zostało wysłane żądanie.

Te zmienne globalne, są generowane tylko na czas żądania. Jeżeli powiedzmy wyślesz dane POST'em do pliku A, w pliku B tych danych nie będzie, bo dane zostały wysłane do pliku A. Działa tak zarówno GET jak i POST. A działa to tak dlatego że są to zmienne, a jak sama nazwa mówi, zmieniają się. Są stałe globalne, które się nie zmieniają, bez różnicy jakie żądanie do jakiego pliku wysłałeś, dlatego nazywają się stałymi.

BTW, polecam ci już na tym etapie na którym jesteś, bo jako tako rozumiesz już podstawy, więc polecam ci darować sobie taką książkę, która uczy bardzo złych nawyków, które później może być ci trudno zmienić, w efekcie czego będziesz produkować kiepski kod.

Lepiej jakbyś poszukał w miarę aktualnej książki, która uczy odpowiedniego podejścia. ja niestety swoje początki miałem kiepskie, z racji właśnie złych nauk które czerpałem ze złych źródeł. Polecam ci omijać szerokim łukiem książki które w tytule mają "vademecum". Nie wiem jak jest ze wszystkimi, mam 2 różne, jedna dotyczy samego php, druga php i mysql i obie są bardzo kiepskie, kiedy patrzę na nie aktualnie...

Jedną z książek które mogę ci polecić, to książka włodzimierza gajdy "php praktyczne przykłady": http://helion.pl/ksiazki/php-praktyczne-pr...ajda,phpprp.htm która przy tych vademecum wypada na prawdę dobrze. Najbardziej to w sumie mnie się z tego wszystkiego spodobały wyrażenia regularne, które w końcu dzięki tej książce zrozumiałem wink.gif to co przeczytałem o wyrażeniach czy też obiektówce w vademecum, to było jakieś nieporozumienie biggrin.gif

Jest tam też w tej książce info o PDO, czy htaccess, który jest dość częstym tematem na forum. Tj. "przyjazne linki" czy "sql injection/filtrowanie danych".W vademecum nie uświadczysz takich "tajników", ponieważ są dość skrótowe.. Kiedyś tego nie rozumiałem, a wystarczyło się googla zapytać wink.gif)
pkosciej
Dzięki za pomoc panowie

ja sie uczę z php i mysql kevina yanka

http://helion.pl/ksiazki/php-i-mysql-witry...yank,phmsww.htm
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.