Tomasz Faszyński

Specjalista ds. programowania

Wypowiedzi

  • Tomasz Faszyński
    Wpis na grupie PHP w temacie Symfony2 Instalacja na hostingu współdzielonym
    23.06.2016, 21:35

    Próbuję zainstalować Symfony2 na hostingu współdzielonym. Nie mam dostępu do konsoli.
    Stworzyłem w DirectAdmin subdomenę i adres serwisu powinien byc http://subdomena.domena.pl

    Wrzuciłem wszystkie pliki do /domains/domena.pl/public_html/subdomena i mam strukturę:


    |_app
    |_bin
    |_composer.json
    |_composer.lock
    |_phpunit.xml.dist
    |_src
    |_tests
    |_var
    |_web
    |_.htaccess
    |_app.php
    |_config.php


    Jak teraz skonfigurować, aby wyświetlała się strona po wpisaniu adresu, ponieważ obecnie otrzymuję błąd 403? Katalog web ma prawa 777.

  • Tomasz Faszyński
    Wpis na grupie Programiści WWW w temacie Symfony2 Instalacja na hostingu współdzielonym
    23.06.2016, 21:35

    Próbuję zainstalować Symfony2 na hostingu współdzielonym. Nie mam dostępu do konsoli.
    Stworzyłem w DirectAdmin subdomenę i adres serwisu powinien byc http://subdomena.domena.pl

    Wrzuciłem wszystkie pliki do /domains/domena.pl/public_html/subdomena i mam strukturę:


    |_app
    |_bin
    |_composer.json
    |_composer.lock
    |_phpunit.xml.dist
    |_src
    |_tests
    |_var
    |_web
    |_.htaccess
    |_app.php
    |_config.php


    Jak teraz skonfigurować, aby wyświetlała się strona po wpisaniu adresu, ponieważ obecnie otrzymuję błąd 403? Katalog web ma prawa 777.

  • Tomasz Faszyński
    Wpis na grupie PHP w temacie [SF][SF2] Listowanie plików na serwerze
    10.01.2016, 20:42

    Dariusz P.:

    Zresztą na stronie symfony możesz dostać podstawową konfigurację dla apache:

    Zmień ścieżki i domenę i jesteś w domu

    No właśnie coś nie działa;


    <VirtualHost *:80>
    DocumentRoot /var/www/html/moj.adres.pl/web
    DirectoryIndex app.php
    ServerName moj.adres.pl
    ServerAlias www.moj.adres.pl
    ServerAdmin admin@moj.adres.pl
    ErrorLog /var/www/html/moj.adres..pl/error.log
    CustomLog /var/www/html/moj.adres.pl/access.log combined
    <Directory "/var/www/html/moj.adres.pl/web">
    AllowOverride All
    Require all granted
    </Directory>
    </VirtualHost>


    A mimo to muszę dodawać w adresie app.php

  • Tomasz Faszyński
    Wpis na grupie PHP w temacie [SF][SF2] Listowanie plików na serwerze
    10.01.2016, 19:31

    Dariusz P.:
    Dodaj

    <Directory /var/www/html/moj.adres.pl/web>
    Options -Indexes
    </Directory>


    żeby nikt Ci nie listował plików. Oprócz tego zwróć uwagę że S2 używa app.php oraz app_dev.php więc zmień "DirectoryIndex" odpowiednio. Ewentualnie dodaj allow override do /web żeby .htaccess wskoczył.

    Ok zmieniłem DirectoryIndex na app.php i zadziałało, ale nie działają podstrony. Muszę w adresie dodawać app.php:

    moj.adres.pl/app.php/podstrona -> działa
    moj.adres.pl/podstrona -> nie działa

  • Tomasz Faszyński
    Wpis na grupie Programiści WWW w temacie [SF][SF2] Listowanie plików na serwerze
    10.01.2016, 13:09

    Cześć,

    Posiadam serwer vps z zainstalowanym apache 2.4.7 + php + mysql.
    Próbuję przenieść z innego serwera aplikację napisaną w Symfony2. Stworzyłem Virtual Host:

    <VirtualHost *:80>
    DocumentRoot /var/www/html/moj.adres.pl/web
    DirectoryIndex index.php
    ServerName moj.adres.pl
    ServerAlias www.moj.adres.pl
    ServerAdmin admin@adres.pl
    ErrorLog /var/www/html/moj.adres.pl/error.log
    CustomLog /var/www/html/moj.adres.pl/access.log combined
    <Directory "/var/www/html/moj.adres.pl">
    AllowOverride All
    Require all granted
    </Directory>
    </VirtualHost>


    Konfiguracja .htaccess w katalogu /web


    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
    </IfModule>


    Niestety po wejściu na adres zamiast wyświetlenia serwisu otrzymuję wylistowane pliki z katalogu /web.

    Czym to może być spowodowane? Co może być źle skonfigurowane na serwerze?

  • Tomasz Faszyński
    Wpis na grupie PHP w temacie [SF][SF2] Listowanie plików na serwerze
    10.01.2016, 13:09

    Cześć,

    Posiadam serwer vps z zainstalowanym apache 2.4.7 + php + mysql.
    Próbuję przenieść z innego serwera aplikację napisaną w Symfony2. Stworzyłem Virtual Host:

    <VirtualHost *:80>
    DocumentRoot /var/www/html/moj.adres.pl/web
    DirectoryIndex index.php
    ServerName moj.adres.pl
    ServerAlias www.moj.adres.pl
    ServerAdmin admin@adres.pl
    ErrorLog /var/www/html/moj.adres.pl/error.log
    CustomLog /var/www/html/moj.adres.pl/access.log combined
    <Directory "/var/www/html/moj.adres.pl">
    AllowOverride All
    Require all granted
    </Directory>
    </VirtualHost>


    Konfiguracja .htaccess w katalogu /web


    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
    </IfModule>


    Niestety po wejściu na adres zamiast wyświetlenia serwisu otrzymuję wylistowane pliki z katalogu /web.

    Czym to może być spowodowane? Co może być źle skonfigurowane na serwerze?

  • Tomasz Faszyński
    Wpis na grupie Programiści WWW w temacie Redirect źródla skryptu
    16.12.2015, 14:15

    Cześć,

    Mam stronę o adresie X. W kodze jest odwołanie do skryptu javascript dostępnego pod adresem Y. Jak zrobić redirect, aby adres skryptu dalej był Y, ale wywoływał się skrypt z trzeciej strony Z? Strona Z zwraca dane, które potem muszą być wykorzystane na stronie X.

    1. Czy takie coś jest możliwe? Jeśli tak to w jaki sposób to zrobić? Rozumiem, że jakoś na stronie Y muszę przekierowywać na Z?

    2. Czy takie rozwiązanie jest bezpieczne?

  • Tomasz Faszyński
    Wpis na grupie JavaScript w temacie Redirect źródla skryptu
    16.12.2015, 14:15

    Cześć,

    Mam stronę o adresie X. W kodze jest odwołanie do skryptu javascript dostępnego pod adresem Y. Jak zrobić redirect, aby adres skryptu dalej był Y, ale wywoływał się skrypt z trzeciej strony Z? Strona Z zwraca dane, które potem muszą być wykorzystane na stronie X.

    1. Czy takie coś jest możliwe? Jeśli tak to w jaki sposób to zrobić? Rozumiem, że jakoś na stronie Y muszę przekierowywać na Z?

    2. Czy takie rozwiązanie jest bezpieczne?

  • Tomasz Faszyński
    Wpis na grupie Programiści WWW w temacie Ustawianie cookie strony w momencie wyszukiwania w google
    2.12.2015, 09:45

    Miłosz W.:
    A w sesji prywatnej jak to się zachowuje?

    Co masz na myśli pisząc o sesji prywatnej?

    Zauważyłem (za pomocą firebug) coś jeszcze. Na stronie, która wcześniej ustawia cookie są wywołania:

    | Metoda | Plik | Domena
    302 | GET | https://www.google.pl/aclk?sa=L&ai=CZaS7_61eVrq... | http://google.pl
    407 | GET | http://X.pl/rynek-pierwotny/?gclid=CK6MtfPjv | http://X.pl

    Zaś na stronie, która dobrze się zachowuje, czyli ustawia ciastka po wejściu na stronę

    | Metoda | Plik | Domena
    302 | GET | http://www.googleadservices.com/pagead/aclk?sa=L&a... | http://googleadservices.com

    Czyli jest wywołanie googleadservices a nie google.pl. Myślę, że to ma znaczenie. Z czego to może wynikać? Może kampania jest inaczej ustawiona w adwords?Ten post został edytowany przez Autora dnia 02.12.15 o godzinie 09:52

  • Tomasz Faszyński
    Wpis na grupie PHP w temacie Ustawianie cookie strony w momencie wyszukiwania w google
    2.12.2015, 09:36

    Marek K.:
    Jeżeli ciastka ustawiają się automatycznie i dzieje się to tylko na przeglądarce Chrome, to masz odpowiedź.

    I rozumiem, że nie da się tego wyeliminować? Ale nie dla wszystkich stron dzieje się taka sytuacja

    Zauważyłem (za pomocą firebug) coś jeszcze. Na stronie, która wcześniej ustawia cookie są wywołania:

    | Metoda | Plik | Domena
    302 | GET | https://www.google.pl/aclk?sa=L&ai=CZaS7_61eVrq... | http://google.pl
    407 | GET | http://X.pl/rynek-pierwotny/?gclid=CK6MtfPjv | http://X.pl

    Zaś na stronie, która dobrze się zachowuje, czyli ustawia ciastka po wejściu na stronę

    | Metoda | Plik | Domena
    302 | GET | http://www.googleadservices.com/pagead/aclk?sa=L&a... | http://googleadservices.com

    Czyli jest wywołanie googleadservices a nie google.pl. Myślę, że to ma znaczenie. Z czego to może wynikać? Może kampania jest inaczej ustawiona w adwords?Ten post został edytowany przez Autora dnia 02.12.15 o godzinie 09:51

  • Tomasz Faszyński
    Wpis na grupie Programiści WWW w temacie Ustawianie cookie strony w momencie wyszukiwania w google
    1.12.2015, 21:11

    Cześć,

    Mam dziwny problem, z którym pierwszy raz się spotkałem.

    Wyczyściłem wszystkie ciastka z przeglądarki.

    Po wpisaniu hasła w google pojawia się strona X (niestety nie mogę zdradzić adresu) w wynikach adwords.

    W tym momencie sprawdzam cookie ustawiane przez stronę X i już są ustawione w przeglądarce ciastka, mimo, że jeszcze nie wszedłem na stronę. Jak to możliwe? M.in. jest ciastko cb-enabled, które nie wiem co oznacza. Szukałem w google, ale nie bardzo rozumiem ;/

  • Tomasz Faszyński
    Wpis na grupie PHP w temacie Ustawianie cookie strony w momencie wyszukiwania w google
    1.12.2015, 21:11

    Cześć,

    Mam dziwny problem, z którym pierwszy raz się spotkałem.

    Wyczyściłem wszystkie ciastka z przeglądarki.

    Po wpisaniu hasła w google pojawia się strona X (niestety nie mogę zdradzić adresu) w wynikach adwords.

    W tym momencie sprawdzam cookie ustawiane przez stronę X i już są ustawione w przeglądarce ciastka, mimo, że jeszcze nie wszedłem na stronę. Jak to możliwe? M.in. jest ciastko cb-enabled, które nie wiem co oznacza. Szukałem w google, ale nie bardzo rozumiem ;/

  • Tomasz Faszyński
    Wpis na grupie PHP w temacie [ZendFramework2][ZendFramework] wykonanie zapytania sql
    7.09.2015, 11:35

    Muszę wykonać update w postaci:

    UPDATE product SET status = 1 WHERE producentId = ? AND date != '2015-09-07';


    Jak to najlepiej zrobić? Próbowałem jako execute statement, ale nie mogę dostać się do adaptera DB. Dane do bazy mam zapisane w pliku config.

  • Tomasz Faszyński
    Wpis na grupie Programiści WWW w temacie [ZendFramework2][ZendFramework] wykonanie zapytania sql
    7.09.2015, 11:35

    Muszę wykonać update w postaci:

    UPDATE product SET status = 1 WHERE producentId = ? AND date != '2015-09-07';


    Jak to najlepiej zrobić? Próbowałem jako execute statement, ale nie mogę dostać się do adaptera DB. Dane do bazy mam zapisane w pliku config.

  • Tomasz Faszyński
    Wpis na grupie PHP w temacie Symfony2 - checkbox zawsze zaznaczony
    19.08.2015, 21:12

    Cześć,

    Mam checkbox w formularzu stworzony:

    $builder->add('is_active', 'checkbox', array('value'=>true ));


    W kontrolerze ustawiam formularz:
    $form = $this->createForm(new AddClientType());
    $form->setData($user);


    W modelu User, który mapuje tabelę User mam:
    /**
    * Set is_active
    *
    * @param boolean $isActive
    * @return User
    */
    public function setIsActive($isActive)
    {
    $this->is_active = $isActive;

    return $this;
    }

    /**
    * Get is_active
    *
    * @return boolean
    */
    public function getIsActive()
    {
    return $this->is_active;
    }


    W widoku twig mam:
    {{ form_widget(generalForm.is_active, {'id':'is_active'}) }}


    W bazie pole jest jako tinyint i przyjmuje wartość 1 albo 0. Niestety na stronie checkbox zawsze jest zaznaczony. Nawet jeśli w bazie jest ustawione 0. Jak to poprawić?

  • Tomasz Faszyński
    Wpis na grupie Programiści WWW w temacie Symfony2 - checkbox zawsze zaznaczony
    19.08.2015, 21:12

    Cześć,

    Mam checkbox w formularzu stworzony:

    $builder->add('is_active', 'checkbox', array('value'=>true ));


    W kontrolerze ustawiam formularz:
    $form = $this->createForm(new AddClientType());
    $form->setData($user);


    W modelu User, który mapuje tabelę User mam:
    /**
    * Set is_active
    *
    * @param boolean $isActive
    * @return User
    */
    public function setIsActive($isActive)
    {
    $this->is_active = $isActive;

    return $this;
    }

    /**
    * Get is_active
    *
    * @return boolean
    */
    public function getIsActive()
    {
    return $this->is_active;
    }


    W widoku twig mam:
    {{ form_widget(generalForm.is_active, {'id':'is_active'}) }}


    W bazie pole jest jako tinyint i przyjmuje wartość 1 albo 0. Niestety na stronie checkbox zawsze jest zaznaczony. Nawet jeśli w bazie jest ustawione 0. Jak to poprawić?

  • Tomasz Faszyński
    Wpis na grupie Programiści WWW w temacie Java + pdf.js i dokument w base64
    29.07.2015, 21:24

    Pobieram dokument PDF z zewnętrznego serwisu i koduje do base64. Dokument jest pobrany i zakodowany.

    public String viewerShowImage(
    @RequestParam(value = "dmsId", required = false) Long dmsId,
    Locale locale)
    {
    List<Long> ids = new ArrayList<Long>();
    ids.add(dmsId);
    InputStream fileContent = null;

    try {
    List<DmsDTO> dmsRequests = download(ids);
    DmsDTO result = dmsRequests.get(0);
    fileContent = result.getContent().getContent().getInputStream();
    byte[] bytes = IOUtils.toByteArray(fileContent);

    return new String(Base64.encodeBase64String(bytes));

    } catch (Exception ioe) {
    log.error("Error downloading files from DMS", ioe);
    }
    }


    Następnie chcę skorzystać mozilla pdf.js https://mozilla.github.io/pdf.js/ i wyświetlić ten dokument.

    function renderPDF(dmsId, canvasContainer) {

    $.ajax({
    type: "POST",
    url: '${viewerShowImage}',
    async: false,
    data : {
    dmsId : dmsId
    },
    success:function (message) {
    var pdfAsArray = window.btoa(unescape(encodeURIComponent(message)));
    function renderPage(page) {
    var viewport = page.getViewport(scale, rotate);
    var canvas = document.createElement('canvas');
    var ctx = canvas.getContext('2d');
    var renderContext = {
    canvasContext: ctx,
    viewport: viewport
    };

    canvas.height = viewport.height;
    canvas.width = viewport.width;

    canvasContainer.appendChild(canvas);

    $("canvas").css("display","block");

    page.render(renderContext);
    }

    function renderPages(pdfDoc) {
    for(var num = 1; num <= pdfDoc.numPages; num++)
    pdfDoc.getPage(num).then(renderPage);
    }


    PDFJS.disableWorker = true;
    PDFJS.getDocument("data:application/pdf;base64,"+pdfAsArray).then(renderPages);

    },
    error: function() {
    addMessage({ type: 'ERROR', messageText: 'Wystąpił błąd podczas wyświetlania dokumentu.'});
    }
    });

    }


    Niestety otrzymuję błąd:

    GET http://127.0.0.1:8080//viewer/54172272/0/PD94bWwgdmVyc...…QgbWFnbmlzPC9hPjwvbGk+PC91bD48L2Rpdj48L2Rpdj48L2Rpdj48L2JvZHk+PC9odG1sPg== 404 (Not Found)


    Oczywiście pod tym adresem nie ma pliku, ale jak wczytać base64, aby wyświetlił mi się PDF?

    Próbowałem zastosować:

    http://stackoverflow.com/questions/12092633/pdf-js-ren...

    Ale otrzymywałem błąd:
    Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.


    Obecnie próbuję to wdrożyć:
    http://stackoverflow.com/questions/23223718/failed-to-...

  • Tomasz Faszyński
    Wpis na grupie Java w temacie Java + pdf.js i dokument w base64
    29.07.2015, 21:24

    Pobieram dokument PDF z zewnętrznego serwisu i koduje do base64. Dokument jest pobrany i zakodowany.

    public String viewerShowImage(
    @RequestParam(value = "dmsId", required = false) Long dmsId,
    Locale locale)
    {
    List<Long> ids = new ArrayList<Long>();
    ids.add(dmsId);
    InputStream fileContent = null;

    try {
    List<DmsDTO> dmsRequests = download(ids);
    DmsDTO result = dmsRequests.get(0);
    fileContent = result.getContent().getContent().getInputStream();
    byte[] bytes = IOUtils.toByteArray(fileContent);

    return new String(Base64.encodeBase64String(bytes));

    } catch (Exception ioe) {
    log.error("Error downloading files from DMS", ioe);
    }
    }


    Następnie chcę skorzystać mozilla pdf.js https://mozilla.github.io/pdf.js/ i wyświetlić ten dokument.

    function renderPDF(dmsId, canvasContainer) {

    $.ajax({
    type: "POST",
    url: '${viewerShowImage}',
    async: false,
    data : {
    dmsId : dmsId
    },
    success:function (message) {
    var pdfAsArray = window.btoa(unescape(encodeURIComponent(message)));
    function renderPage(page) {
    var viewport = page.getViewport(scale, rotate);
    var canvas = document.createElement('canvas');
    var ctx = canvas.getContext('2d');
    var renderContext = {
    canvasContext: ctx,
    viewport: viewport
    };

    canvas.height = viewport.height;
    canvas.width = viewport.width;

    canvasContainer.appendChild(canvas);

    $("canvas").css("display","block");

    page.render(renderContext);
    }

    function renderPages(pdfDoc) {
    for(var num = 1; num <= pdfDoc.numPages; num++)
    pdfDoc.getPage(num).then(renderPage);
    }


    PDFJS.disableWorker = true;
    PDFJS.getDocument("data:application/pdf;base64,"+pdfAsArray).then(renderPages);

    },
    error: function() {
    addMessage({ type: 'ERROR', messageText: 'Wystąpił błąd podczas wyświetlania dokumentu.'});
    }
    });

    }


    Niestety otrzymuję błąd:

    GET http://127.0.0.1:8080//viewer/54172272/0/PD94bWwgdmVyc...…QgbWFnbmlzPC9hPjwvbGk+PC91bD48L2Rpdj48L2Rpdj48L2Rpdj48L2JvZHk+PC9odG1sPg== 404 (Not Found)


    Oczywiście pod tym adresem nie ma pliku, ale jak wczytać base64, aby wyświetlił mi się PDF?

    Próbowałem zastosować:

    http://stackoverflow.com/questions/12092633/pdf-js-ren...

    Ale otrzymywałem błąd:
    Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.


    Obecnie próbuję to wdrożyć:
    http://stackoverflow.com/questions/23223718/failed-to-...

  • Tomasz Faszyński
    Wpis na grupie Programiści WWW w temacie PopUp - kilkukrotne wywołanie
    28.07.2015, 21:55

    Piotr L.:

    Otwieranie nowego okna na tej samej stronie psuje user flow i UX.
    Czemu musisz otworzyć nowe okno? Nie możesz danej treści przedstawić w tym samym oknie?

    Takie jest wymaganie, że musi być otwarte w nowym oknie jedynie z paskiem adresu i paskami przewijania. Więc pozostaje chyba tylko popup?

  • Tomasz Faszyński
    Wpis na grupie Programiści WWW w temacie PopUp - kilkukrotne wywołanie
    28.07.2015, 20:23

    Piotr L.:
    Jeśli się nie mylę to każdy popup powinien być wywołany z parametrem "_blank"

    BTW: PopUpy to zło, poszukaj w sieci dlaczego (hint: zły UX)

    To czym to lepiej zastąpić jeśli chcę otworzyć w nowym oknie? Ale bez wszystkich toolbarów tylko i wyłącznie pasek adresu + paski przewijania?

Dołącz do GoldenLine

Oferty pracy

Sprawdź aktualne oferty pracy

Aplikuj w łatwy sposób

Aplikuj jednym kliknięciem

Wyślij zaproszenie do