Wypowiedzi
-
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. -
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. -
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 -
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 -
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? -
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? -
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? -
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? -
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 -
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 -
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 ;/ -
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 ;/ -
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. -
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. -
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ć? -
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ć? -
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-... -
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-... -
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? -
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?