Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Mr.Host 06. 07. 2015, 12:23:01

Název: PHP a jQuery: relační proměnné
Přispěvatel: Mr.Host 06. 07. 2015, 12:23:01
Zdravim,

pisu si jednoduchy chat zalozeny na predavani zprav pomoci MYSQL + JavaScript + Ajax. Do chatu je vyzadovano prihlaseni.
Stranka index.php pak pomoci Jquery taha ze stranky show_messages.php zpravy. Mam vsak, ale problem, ze stranka show_messages.php nerozpozna, ze session existuje ....

Kód: [Vybrat]

<script type="text/javascript">
    $(document).ready(function() {
                     
        var interval=setInterval(function(){
       
          $.ajax({
              type: 'GET',
              cache: false,
                 
          url: 'http://192.168.2.10/show_messages.php',
          success: function(data){
           $( "#messages" ).html(data);
         
                    }
          });
       
        }, 3000);
    });
</script>

Název: Re:PHP + jquery - relacni promenne
Přispěvatel: Mr.Answer 06. 07. 2015, 16:36:29
Jenom otazecka, nebylo by lepsi sem dat kod ze souboru show_messages.php? Tam zrejme bude ta chyba, kdyz ta stranka nerozpozna, ze session existuje.
Název: Re:PHP + jquery - relacni promenne
Přispěvatel: Filip Jirsák 06. 07. 2015, 17:25:23
Session předpokládám máte identifikovanou pomocí cookie. Posílá se ta cookie s tím AJAX požadavkem? Nevím z hlavy, zda ji tam prohlížeč přibaluje automaticky, nebo zda je nutné to udělat ručně.
Název: Re:PHP a jQuery: relační proměnné
Přispěvatel: Ondrej 07. 07. 2015, 13:32:00
Standardně to browser přibaluje sám. Máte v tom show messages nastartovanou session?
Název: Re:PHP a jQuery: relační proměnné
Přispěvatel: karel 08. 07. 2015, 07:58:16
No a mas natartovane session, bud uprava v php.ini kam castno nemas na hostingu pristup,
nebo holt v kazdem souboru volat session_start(); teda jen jednou pro dany dotaz.
Název: Re:PHP a jQuery: relační proměnné
Přispěvatel: karel 08. 07. 2015, 08:08:56
Standardně to browser přibaluje sám. Máte v tom show messages nastartovanou session?
Browser ti přiděluje velke prd, session je zaležitosti serveru, a i server posila cookies s identifikatorem, a jak všici jistě vědí všechna cookies pro danou stranku se posilaji spatky na server a to uz dela browser pri kazdem pozadavku.

Navic plati ze velmi casto jsou session v php.ini vyple a je jen na programatorovi aby se postaral prave pres session_start o aktivaci, navic prave protoze se casto na prenaseni pouziva cookies melo by k aktivaci dojit pred prvnim vypsanim jakeho koliv textu.
Ale todle jsou zaklady, co nejsou uplne zaklady, ale mirne pokrocili je duvod proc se defaultne nezapinaj. A nezapinaj se protoze se velmi casto vyuziva defaultniho uloziste pro session a tim je disk, a kazda session vytvari soubor, a kdyz vam na web zacne chodit moc lidi tak session muzou byt jednim z duvodu proc se stranky nacitaji o neco dele. Zvlaste pokud aktivne nastavite expiraci treba na mesic aby se vam user nemusel stale prihlasovat. A kdyz Vam web zacne navstevovat google bot ktery cookies ignoruje je to hromada session co se jen vali na disku. A verte tomu nebo ne, ale kdyz se vam na disku v jedne slosce vali statisice souboru najit konkretni holt pak chvili trva. Snad sem to vysvetlil dost polopate, kdyz ne tak me vemte lopatou.

Název: Re:PHP a jQuery: relační proměnné
Přispěvatel: Filip Jirsák nepřihlášený 08. 07. 2015, 08:26:03
Standardně to browser přibaluje sám. Máte v tom show messages nastartovanou session?
Browser ti přiděluje velke prd, session je zaležitosti serveru, a i server posila cookies s identifikatorem, a jak všici jistě vědí všechna cookies pro danou stranku se posilaji spatky na server a to uz dela browser pri kazdem pozadavku.
Aneb jak se pořádně rozohnit jenom na základě toho, že jste si něco špatně přečetl…

Ondřej má pravdu, XMLHTTPRequest se standardně provádí v kontextu dané stránky, takže se odesílají cookies i přihlašovací informace. Pokud to chce autor vypnout, může v některých prohlížečích použít nestandardní rozšíření.
Název: Re:PHP a jQuery: relační proměnné
Přispěvatel: eL 08. 07. 2015, 08:37:21
Pokud tam pro kazdym requestu jakoby vznika nova session, tak pak to muze byt tim, ze to prohlizec bere jako crossdomain. Treba kdyz to ladis na http://localhost a ajax posilas na "http://192.168.2.10/", tak to jiste bude ten problem.