Автор Тема: PHP каква е тази конструкция $w['parent']()[0]  (Прочетена 2733 пъти)

Naka

  • Напреднали
  • *****
  • Публикации: 2821
    • Профил
PHP. Kаква е тази конструкция при масивите?

$w['parent']()[0]

Т.е. какво означават тези обикновенните скоби () в средата?

този израз дава синтактична грешка в php 5.3.x но очевидно работи при php 5.4
Искам да го адаптирам към php 5.3 но не знам каkво означава. За първи път виждам такова нещо. В документацията също нищо не намирам.
------

още една подобна конструкция:
Код:
$w['stack']();
« Последна редакция: Jun 21, 2019, 12:43 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 6029
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #1 -: Jun 21, 2019, 12:26 »
Ако имам правилни спомени от php, това е „променлива променлива“. Не заеквам, казвам Дюран Дюран два пъти да го запомните.

С две думи (ако не греша), този израз значи, че името на масива се конструира в движение и се взема първия му елемент.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

Naka

  • Напреднали
  • *****
  • Публикации: 2821
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #2 -: Jun 21, 2019, 12:29 »
Variable variable е с два долара:   $$w

----
Код:
$w['parent']()[0]

да не искаш да кажеш че това е името на функцията???
т.е. в $w['parent'] например се съдържа 'my_func'

а $w['parent']() тогава извиква  my_func()

а пък $w['parent']()[0] връща нулевият елемент от резултата на масива на функцията???  my_func()[0]   <---- това вече го разбрах че е новост в php5.4

Шантава работа..Така ли е наистина. Тук нещо понамерих:
https://www.php.net/manual/en/functions.variable-functions.php

ако наистина е така насочването беше успешно [_]3 и си заслужи бирата.
« Последна редакция: Jun 21, 2019, 13:08 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

Yasen6275

  • Напреднали
  • *****
  • Публикации: 553
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #3 -: Jun 21, 2019, 12:47 »
Naka нали си  наясно че поддръжката на 7.1 е само за security до началото на декември,  а на 7.2 до края на ноември догодина? Подчератавам 7 (седем) 1 и 2.
Активен

makeme

  • Напреднали
  • *****
  • Публикации: 884
  • Distribution: Many
  • Window Manager: KDE
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #4 -: Jun 21, 2019, 12:56 »
Naka нали си  наясно че поддръжката на 7.1 е само за security до началото на декември,  а на 7.2 до края на ноември догодина? Подчератавам 7 (седем) 1 и 2.
https://www.cloudlinux.com/hardenedphp
 ;)
Активен

Distributions:  UbuntuMate; Kubuntu; CentOS; Kali; Raspberry Pi OS ...

Naka

  • Напреднали
  • *****
  • Публикации: 2821
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #5 -: Jun 21, 2019, 13:05 »
Naka нали си  наясно че поддръжката на 7.1 е само за security до началото на декември,  а на 7.2 до края на ноември догодина? Подчератавам 7 (седем) 1 и 2.

Много им здраве. Като му дойде времето ще се мигрира.
Ти кажи нещо по въпроса ако знаеш.
Активен

Perl - the only language that looks the same before and after encryption.

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 6029
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #6 -: Jun 21, 2019, 13:19 »
Добре леко пообърках терминологията. Това е наследство от perl, дето такива магии са си част от живота.

Мейк, мисля, че точно ти беше дал една връзка, дето Мариян обясняваше, че за свои клиенти поддържат все още php 4 и скоро няма да спрат, нищо, че в официалните им ценови оферти за домуване не присъства.

Нищо не умира напълно в паяжината. Има толкова много живи, стари системи, че не е за вярване. И това едва ли ще се промени, колкото и от 1984-та да бутат. Старите неща са прости, новите са сложни. Старите искат малко ресурс, новите са лами. Старите може да се поддържат с малки екипи, новите не могат. И така нататък. Не са за всеки.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

4096bits

  • Напреднали
  • *****
  • Публикации: 3618
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #7 -: Jun 21, 2019, 14:26 »
И старото почти не можеш да го хакнеш, защото не си го и виждал дори.
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 6029
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #8 -: Jun 21, 2019, 15:01 »
И старото почти не можеш да го хакнеш, защото не си го и виждал дори.

За съжаление последното не е вярно. Старите неща са доста по-кракваеми. С времето се пише все по-сигурно. Колкото по-назад се връщаме, толкова по-беззащитни са били нещата. Забележи, че всички течове на информация са свързани със стари системи. И да има някакви изключения, са малко.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

4096bits

  • Напреднали
  • *****
  • Публикации: 3618
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #9 -: Jun 21, 2019, 16:37 »
Това е така, но колко от съвременните хакерчета са изучавали и са се ръчкали със стари системи?
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

Naka

  • Напреднали
  • *****
  • Публикации: 2821
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #10 -: Jun 22, 2019, 11:13 »
PHP го наблюдавам от много отдавана. И мисля, че всички промени дето ги правят са за хубаво. За разлика от съвременните програми дето развалят всичко - тип systemД.
Промените в PHP-то са много обмислени, все са козметични или оправяне на някои функции.

Обаче не трябва да се бърка приложни програми с език за програмиране. Ако при програмите тенденцията при новите версии е за разваляне и тромавост, то езика за програмиране трябва да е константен. Все пак е език.

Дали програмата има секюрити дупки зависи не толкова от езика, колкото от програмиста. Може на PHP4 да направиш сигурен код. А може и на php7 всичко да усереш.

« Последна редакция: Jun 22, 2019, 11:17 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 6029
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #11 -: Jun 22, 2019, 11:46 »
Да де, ама га пишехме на php 3 и 4, езика отговаряше напълно на името си: personal home page. Беше далеч преди да започне да конкурира жабата. И тогава правехме неща от сорта да създаваме променлива от параметър получен по get-ова заявка. Например първите защити срещу инжекции почнахме да ги правим едва при пет. А за разните XSS и подобни почти не бяхме чували за тях.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

Naka

  • Напреднали
  • *****
  • Публикации: 2821
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #12 -: Jun 22, 2019, 12:25 »
Има едно изключение при което php4-5 е било по сигурно от php5.4 -php7  >:D

имаше едно Magic Quotes. https://www.php.net/manual/en/security.magicquotes.php беше по default и автоматично ескейпваше всички кавички "" ''  с \ в променливите които идват от GET/POST ..Ако такава променлива (автоматично ескейпната) я включиш в mysql завяка - това автоматично предпазва от mysql инжекция.

Т.е за начинащият кодер, който понятие си няма от mysql инжекция, кодът е бил сигурен.

Сега това е махнато..........И хубаво че е махнато, щото не е хубаво php-то да ти прави нещо автоматично зад гърба ти. Обаче начинещ кодер на php7, който понятие си няма за  mysql инжекция, никога няма да се сети да ескейпне променивите преди да ги включи в заявка. Т.е парадоксално но за такъв кодер php7 е по несигурно.

« Последна редакция: Jun 22, 2019, 12:39 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 6029
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #13 -: Jun 22, 2019, 13:10 »
Това си спомням, че пълни базата с наклонени черти. Още щом разбрах за съществуването му, реших да не го ползвам. Не помня и не съм сигурен, но ми се струва лесно заобиколимо, като сам сложиш наклонени черти. Така взаимно се изолират и обезсилват.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

Naka

  • Напреднали
  • *****
  • Публикации: 2821
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #14 -: Jun 22, 2019, 13:32 »
не не. Не пълни базата с черти, защото mysql-a un-ескипва всичко.
А пък и не може потребителя да го заобиколи просто като добави  черти, защото самата добавена черта / също автоматично се ескейпва //.

Както и да е. сега има addslashes(), mysql_escape_string().. mysql_real_escape_string()
ама последните две гледам вече са ги забранили в php7. Като му дойде времето тогава ще му мислим. ::)
« Последна редакция: Jun 22, 2019, 13:36 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Игнориране на Parent Directory
Настройка на програми
zeridon 1 1116 Последна публикация Mar 08, 2005, 22:43
от zeridon