Session na localhostu funguje, na webu ne – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Session na localhostu funguje, na webu ne – PHP – Fórum – Programujte.comSession na localhostu funguje, na webu ne – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Lada Kocian
~ Anonymní uživatel
9 příspěvků
9. 10. 2013   #1
-
0
-

Ahoj,

potřebuji poradit. Mám jednoduché ukládání do session:

session_start();
if (isset($_SESSION['lang'])) {     
  echo $_SESSION["lang"];
}else{  
  $_SESSION["lang"]='cr';
} 

Na session se pak dotazuji napříč celým webem, což mi na localhostu v pohodě funguje, ale na webu ne.

Zkoušel jsem na webu session vytvořit a hned zobrazit a to funguje. Ovšem stačí překliknout na jinou stránku v rámci webu a session se na webu nepředá.
Díky moc za pomoc

Nahlásit jako SPAM
IP: 89.177.240.–
Reklama
Reklama
Lada Kocian
~ Anonymní uživatel
9 příspěvků
9. 10. 2013   #2
-
0
-

Ještě dodám, že hosting jede na Linuxu s Apache.

Nahlásit jako SPAM
IP: 89.177.240.–
KIIV+42
God of flame
9. 10. 2013   #3
-
0
-

a mas i na te jine strance session_start() ?

jo jeste muze byt problem i s jinejma domenama .. pokud se pouziva jen cookies tak to proste neuvidis

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Lada Kocian
~ Anonymní uživatel
9 příspěvků
9. 10. 2013   #4
-
0
-

#3 KIIV
JJ mám session_start všude

Zkus mi prosím upřesnit jak ty myslíš s těmi doménami. Já myslel, že když ji uložím v rámci webu, tak pak bez ohledu na doménu se v rámci webu přenáší.

Nahlásit jako SPAM
IP: 89.177.240.–
KIIV+42
God of flame
9. 10. 2013   #5
-
0
-

prenasi se sice v ramci webu, ale je to ulozene v cookies a ty se mezi domenama prenaset z principu nesmi

takze pokud mas  http://domena1.cz/ http://domena2.cz/ ; tak musis session id predavat jinak nez pres cookies

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Lada Kocian
~ Anonymní uživatel
9 příspěvků
9. 10. 2013   #6
-
0
-

#5 KIIV
Tomu rozumím, já s nimi pracuji v rámci jedné domény, ale ani tam se mi to nepřenáší.

Nahlásit jako SPAM
IP: 89.177.240.–
KIIV+42
God of flame
9. 10. 2013   #7
-
0
-

tak to asi jedine vypsat:  print_r($GLOBALS)  a mrknout jestli je tam nekde neco jako session id ...

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Lada Kocian
~ Anonymní uživatel
9 příspěvků
9. 10. 2013   #8
-
0
-

Sessionid není, jediné session je poslední řádek výpisu, což vnímám v pořádku, protože pokud proměnná lang není definována tak se nastaví jako cr :

[HTTP_SESSION_VARS] => Array ( [lang] => cr ) [_SESSION] => Array ( [lang] => cr ) [lang] => cr [l] =>

Když však session lang nastavím na indexu na "en" místo "cr", tak se mi na další stránky nepřenese.

Na localhostu vypadá poslední řádek výpisu takto:

[_SESSION] => Array ( [lang] => en ) [lang] => en [l] => en

takže tam vše šlape ok.

Nahlásit jako SPAM
IP: 89.177.240.–
Lada Kocian
~ Anonymní uživatel
9 příspěvků
9. 10. 2013   #9
-
0
-

teď jsem si udělal zajímavý experiment se session_id. Vlastně funkce je stejná, ale jasně vidět co se děje. Zatímco na localhostu mi zůstává session_id stále stejná při procházení webem, tak na hosting se mi s každou podstránkou generuje session_id nové, takže se vůbec neukládá...

Nahlásit jako SPAM
IP: 89.177.240.–
KIIV+42
God of flame
9. 10. 2013   #10
-
0
-

no spis se neprenasi ... obvykle byva v COOKIES ... neco jako "sid" nebo podobnej nazev .-.- vetsinou moc dalsich polozek s delsim hashem nebyva... ale aby to bylo spolehlive, tak stejne asi budes muset cpat session id do url...  treba mas jen zakazany cookies pro tu stranku

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Lada Kocian
~ Anonymní uživatel
9 příspěvků
9. 10. 2013   #11
-
0
-

nechal jsem si vypsat phpinfo pro daný server a porovnal to s jiným hostingem na kterém mi stejný script funguje. Našel jsem v podstatě jediný rozdíl.

na fungujícím hostingu:

session.save_path:  /www/web.cz-tmpdir (jako Local value), /var/lib/php/session (jako Master value)

na nefungujícím:

session.save_path:  /var/lib/php5 (jako Local value), /var/lib/php5 (jako Master value)

Je mi jasné, že každý server to má jinak, jen mě to zaujalo. Ovšem na localhostu používám taky stejnou lokalizaci, takže nic výjimečného.

Cookies pro stránku povolené mám.

Chtěl jsem se session v url vyhnout, protože web už je dávno v provozu a já do něj potřebuju pouze doplnit tuhle session řešící přepínání jazyků.

Nahlásit jako SPAM
IP: 89.177.240.–
KIIV+42
God of flame
9. 10. 2013   #12
-
0
-

do /var/lib/php5 na 100% nebude mit uzivatel, pod kterym bezi apache, pristup k zapisu...

ale asi by se dalo zkusit pouzit http://php.net/…ave-path.php

a nasmerovat to nekam kam ma pristup apache user... (user www-data ci tak neco)

urcite by se to dalo nasmerovat do /tmp idealne si tam udelat i adresar a teprve do nej to davat (jen pocitat s tim ze se tmp promazava hlavne pri restartech)

Nahlásit jako SPAM
IP: 213.220.241.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Lada Kocian
~ Anonymní uživatel
9 příspěvků
9. 10. 2013   #13
-
0
-

ok, povedlo se mi přesměrovat ukládání session, dokonce je na ftp přímo vidím, ale problém se nevyřešil. S každým obnovením stránky nebo přechodem na jinou podstránku se vygeneruje nové session_id a uloží. Ovšem nepředá dál.

Mohu to nějak ovlivnit pomocí header?

Už mě nic dalšího nenapadá, zvlášť, když na jiném hostingu to v pohodě funguje.

Nahlásit jako SPAM
IP: 89.177.240.–
KIIV+42
God of flame
9. 10. 2013   #14
-
0
-

no musis to mit vsude.. to nastaveni a stejne

Nahlásit jako SPAM
IP: 213.220.241.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Lada Kocian
~ Anonymní uživatel
9 příspěvků
9. 10. 2013   #15
-
0
-

jj mám ho všude, pracuji s ním přímo v headu, který mám přes require stejný na všech stránkách, ostatně i při procházení skrz web mi to vygenerované session ukládá s každou stránkou do dohodnutého adresáře, ale nepředává si je.

Nahlásit jako SPAM
IP: 89.177.240.–
KIIV+42
God of flame
10. 10. 2013   #16
-
0
-

jeste me napadla jedna vec... pokud by se pred start session cokoliv vypsalo, na localhostu si mel zapnute output buffering a na serveru ne, tak to nezvladne poslat cookie a tudiz ikdyz se session uz uklada, nema klient jeji ID

obvykle se hlasi warningy ze se nemohlo poslat - ale ty mohou byt na serveru vypnuty

urcite bych zkusil zobrazit cookies na klientovi -- jestli tam je neco co by se podobalo session id (nekdy sid a podobny zkratky)

Nahlásit jako SPAM
IP: 62.216.147.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 97 hostů

Podobná vlákna

FTP na localhostu — založil Sopta

Export dat z localhostu — založil Sopta

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý