Nette 2.0 & PHP 5.4 & Facebook api = bílá stránka a žádný výpis chyby

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Lota
Člen | 38
+
0
-

Nette 2.0.4
PHP 5.4.6
FB API v3.2.0

Se spoustou peripetií jsem rozběhl nové Nette.

Mám aplikaci na jedné url. Pokud ji spustím na webu, zobrazí se mi správný výsledek stránky.

Vložím-li tuto url do FB aplikace, měl by se zobrazit stejný výsledek, což se však nestane. Vidím jen bílou stránku vloženou do facebook a nic víc. Ani ten nette developer bar v dolním rohu. V logu žádná chyba. Nic se nepodaří dumpnout.

Vložím li na web statickou stránku např. test.html, zobrazí se v obou případech správně.

Jsem bezradný. Budu rád za každou pomoc.

Editoval Lota (23. 8. 2012 18:51)

22
Člen | 1478
+
0
-
Lota
Člen | 38
+
0
-
nette:
        session:
                autoStart: smart
                expiration: +10days

        security:
                debugger: true
                frames: sameorigin

V config.neon mám toto, ale nepozoruji žádnou změnu. Mám to správně? Zkoušel jsem i frames: true, také nic.

Editoval Lota (23. 8. 2012 18:26)

22
Člen | 1478
+
0
-

nech to prázdné nebo NULL

Lota
Člen | 38
+
0
-

Aktuální stav vypadá takto:

nette:
        session:
                autoStart: smart
                expiration: +10days

        security:
                debugger: true
                frames: NULL

Smazal jsem cache i sessions. Stále stejný problém.

Lota
Člen | 38
+
0
-

Zkusím sem dát ještě celý config.neon, jestli se tam třeba něco „netluče“:

common:
        php: # PHP configuration
                date.timezone: Europe/Prague
                session.save_path: "%tempDir%/sessions"
                #zlib.output_compression: yes
                default_charset: "UTF-8"
nette:
        session:
                autoStart: smart
                expiration: +10days

        security:
                debugger: true
                frames: null


production < common:
        dibi:
                driver: mysql
                host: localhost
                database: db
                username: db
                password: XXX
                profiler: TRUE
                charset: utf8

development < common:
        dibi:
                driver: mysql
                host: localhost
                database: db
                username: user
                password: XXX
                profiler: TRUE
                charset: utf8
22
Člen | 1478
+
0
-

Nevím, vypdá to ok, napřed si tam hoďte sandbox, jestli vám to jede s ním, protože na te originál adrese mi to hází chybu:

`Class ‚Object‘ not found `

11:     * @author     Otakar Hypš
12:     * @package    hoy.cz
13:     */
14:    class Fbid extends Object {
Lota
Člen | 38
+
0
-

Pomohlo v presenteru uvést tento kod:

$this->getHttpResponse()->setHeader('X-Frame-Options', NULL);

Už to funguje.

Mně to žádnou chybu nevypisuje, zvláštní. Ale chyba tam je. Děkuji za pomoc!

22
Člen | 1478
+
0
-

to asi máš nějakou starou verzi Nette

Lota
Člen | 38
+
0
-

Dnes jsem si ji stáhl odtud: https://nette.org/cs/packages

22
Člen | 1478
+
0
-

frames: NULL nebo prazdná hodnota by mělo fungovat úplně stejně, aspoň mně na 2.1 dev funguje..

Editoval 22 (23. 8. 2012 18:59)

Lota
Člen | 38
+
0
-

Načítám konfigurační soubor správně?

Toto mám ve složce /app v souboru bootstrap.php

$configurator = new Nette\Config\Configurator;
$configurator->addConfig(__DIR__ . '/config.neon');
22
Člen | 1478
+
0
-

jo, to je dobře, jinak by to něco hlásilo o neexistujícím souboru.. bych zkontroloval hlavičky, jestli jsou stejné přes nastavení v neonu a pře setHeader(), jestli jsou stejné.. pokud ne, tak je něco špatně..

Lota
Člen | 38
+
0
-

A co by mohlo být špatně?

Teď mi pro změnu nejde připojení k DB, což je nastavení, které mám také v neonu.

Funkce getallheaders() mi vypisuje toto:

array(9) {
   Host => "www.demo.cz" (12)
   Connection => "keep-alive" (10)
   "Cache-Control" => "max-age=0" (9)
   "User-Agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.57 Safari/537.1" (117)
   Accept => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" (63)
   "Accept-Encoding" => "gzip,deflate,sdch" (17)
   "Accept-Language" => "cs" (2)
   "Accept-Charset" => "windows-1250,utf-8;q=0.7,*;q=0.3" (32)
   Cookie => "PHPSESSID=v341f1kvt3ccr7rr4pbs9aphe1; nette-browser=es4bswx27h" (62)
}
castamir
Člen | 629
+
0
-

@22 tobě to možná na dev v2.1 jede, ale on má v2.0.4, takže ta chyba sice může být už opravená, ale ne oficiálně…

Lota
Člen | 38
+
0
-

Už vše funguje. Samotná chyba byla opravdu způsobena X-Frame-Options.

neon:

common:
        php: # PHP configuration
                date.timezone: Europe/Prague
                session.save_path: "%tempDir%/sessions"
                #zlib.output_compression: yes
                default_charset: "UTF-8"

        nette:
                session:
                        autoStart: smart
                        expiration: +10days

                security:
                        debugger: true
                        frames: null
        parameters:
            database:
                host: mysql.db
                database: e
                username: e
                password: x
                lazy: true

        services:
            connection:
                class: DibiConnection
                factory: dibi::connect(%database%)
                run: TRUE
production < common:

development < common:

bootstrap

...
$configurator = new Nette\Config\Configurator;
$configurator->setTempDirectory(__DIR__ . "/../temp");

$configurator->createRobotLoader()
	->addDirectory(__DIR__)
        ->addDirectory(__DIR__ . "/../libs/")
	->register();
$configurator->enableDebugger(__DIR__ . '/../log');
$configurator->addConfig(__DIR__ . '/config.neon');
$container = $configurator->createContainer();

dibi::connect($container->parameters['database']);
...

S připojením k DB mi pak nejvíce pomohl tento návod: https://doc.nette.org/cs/database

Děkuji za pomoc.