![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 0 Dołączył: 27.02.2005 Ostrzeżenie: (10%) ![]() ![]() |
Mam dwa drobne pytania:
1.Co daja kropki wokol POST w takim zapisie i po co je stosowac:
2.Czy poza tym ze ponizsze zapisy sa rownowazne, ktorys znich jest preferowany lub wskazany:
Dziekuje serdecznie za odpowiedz. (na forum jest to poruszane ale nie znalazlem konkretnej odpowiedzi) ![]() Ten post edytował falkor 27.03.2005, 02:08:44 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 184 Pomógł: 0 Dołączył: 19.01.2005 Skąd: Bochnia Ostrzeżenie: (0%) ![]() ![]() |
Kropki są zasadniczo potrzebne, bo one są spójnikiem. Łączą dwa stringi w jeden.
Co do pdrugiego pytania, to w pierwszym przykładzie zapisujesz zmienną email z tablicy _POST do $email i następnie wypisujesz na standardowe wyjście zmienną $email. W drugim przykładzie robisz to bezpośrednio. Po użyciu pierwszego, gdy chcesz gdzieś dalej w kodzie użyć $_POST['email'] możesz odwołać się do zmiennej $email, natomiast w drugim przykładzie nie możeszz tego zrobić. -------------------- Strusionet - Gentoo Linux | New design CSS Demo
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 548 Pomógł: 2 Dołączył: 19.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
witam ...
kropki sa niezbedne przy takim zapisie ... tak jak powiedzial Strus, lacza one stringi ... jednak jezeli stosujesz taki zapis: to nie sa wymagane ... jednak 1 zapis [z kropkami] jest bardziej wydajny i poprawny ... oczywisie ma to znaczenie przy wiekszych projektach gdzie jest duzo kodu ale dobre nawyki nie sa zle ![]() pozdrawiam -------------------- Computer games don't affect kids; I mean if <span style="font-weight: bold;">Pac Man</span> affected us as kids,we would all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Odnośnie pytania 2:
Jeśli owa zmienna z GET/POST nei będzie jakoś specjalnie modyfikowana itd. nie ma sensu przypisywac jej do innej (krotszej nazwa) zmiennej. Jesli zas bedziesz przeprowadzal operacje jak powiedzmy: addslashes() htmlspecialchars() substr() to warto ją przypisać zmiennej $email. Dla samego jednego 'echo' nie ma w tym sensu. -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 214 Pomógł: 0 Dołączył: 3.04.2004 Skąd: Legionowo Ostrzeżenie: (0%) ![]() ![]() |
Cytat(orson @ 2005-03-27 09:42:51) kropki sa niezbedne przy takim zapisie ... tak jak powiedzial Strus, lacza one stringi ... jednak jezeli stosujesz taki zapis: to nie sa wymagane ... Można chyba też tak:
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 332 Pomógł: 6 Dołączył: 13.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ogólnie nie ma sensu używać łączenia stringów za pomocą kropek w podwójnych cudzysłowach. Jest to bez sensu i tylko wydłuża czas działania parsera. Przy czym zapis:
daje taki sam efekt jak: czy bądź też
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 0 Dołączył: 27.02.2005 Ostrzeżenie: (10%) ![]() ![]() |
Dzieki...w sumie temat się wyczerpał chyba ze mielibyście jakies uwagi odnosnie drugiego pytania w polaczeniu z zagadnieniem bezpieczenstwa.Gdzies tu ktos na forum pisal zeby raczej operowac w kodzie na zwyczajnych zmiennych a nie superglobalnych (czyli zeby zawsze przypisywac)...nie wiem jak sie to ma do bezpieczenstwa (pomijajac kwestie funkcji addslashes()itp)...na pewno kod staje sie mniej przejrzysty...
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 214 Pomógł: 0 Dołączył: 3.04.2004 Skąd: Legionowo Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy stosowanie zmiennych superglobalnych zmienia coś w bezpieczeństwie, ale wydaje mi się, że nie. Jedyna różnica to taka, jak napisał już Vengeance, że w bardziej rozbudowanych skryptach, gdzie często używa się danej zmiennej superglobalnej, wygodniej jest przypisać ją do zwykłej zmiennej, ale w przypadku pojedynczego użycia nie ma to raczej sensu.
Ten post edytował zbig13 27.03.2005, 20:24:57 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Przenosze na php Poczatkujacy.
-------------------- Brak czasu :/
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 332 Pomógł: 6 Dołączył: 13.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat operowac w kodzie na zwyczajnych zmiennych a nie superglobalnych To JEST kwestia bezpieczeństwa chociażby ze względu, dajmy na to przykład: Zapis - $_POST['var'] odnosi się do zmiennej przekazanej metodą POST, a zapis $var równie dobrze mógłby się odnosić do zmiennej przekazanej metodą GET, czyli już mamy ułatwienie dla potencjalnego włamywacza. Oczywiście późniejszy fragment: $var = $_POST['var']; nie jest tylko ułatwieniem, lecz także przyspiesza wykonanie kodu gdyż nie musimy się za każdym razem odnosić do tablicy superglobalnej. Mam nadzieję iż nie namieszałem zbytnio. ![]() |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 0 Dołączył: 27.02.2005 Ostrzeżenie: (10%) ![]() ![]() |
...A co do kropeczek (moze sie to komus przyda) to w takim zapytaniu:
brak kropeczek uniemozliwi wykonanie tej kwerendy (tak jest w najnowszej wersji php i MySQL...nie wiem jak w starszych). |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Wave: poryszłeś troche inny temat odnośnie tego bezpieczeństwa.
Tu nie mowa jest o register_globals tylko o zwykłym przypisywaniu zmiennym z tablic superglobalnych ich krótszych odpowiedników. -------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 332 Pomógł: 6 Dołączył: 13.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Odpowiedziałem na pytanie co superglobalne mają do bezpieczeństwa (było takie), a zarazem co daje przypisywanie ich wartości do zwykłych zmiennych. Jeżeli się tego nie wyjaśni, niektórym mogą się mylić te dwie rzeczy.
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 09:11 |