Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: 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 ....
<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>
-
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.
-
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ě.
-
Standardně to browser přibaluje sám. Máte v tom show messages nastartovanou session?
-
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.
-
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.
-
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í.
-
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.