anonīms Posted March 21, 2012 Report Share Posted March 21, 2012 Lieta sekojoša, ka nepieciešams userim, kas nav no LV pirmajā reizē redirektot uz angļu valodu ar noteiktu saturu. $root = $_SERVER['DOCUMENT_ROOT'].'/app/webroot'; include($root."/geoip.inc"); $gi = geoip_open($root."/GeoIP.dat",GEOIP_STANDARD); $geoip_country = geoip_country_name_by_addr($gi,$_SERVER['REMOTE_ADDR']); $def_lang = $this->Session->read('def_lang'); if(empty($def_lang) AND $geoip_country != 'Latvia') { $this->Session->write('def_lang', 'en'); header("Location: /en/201035"); } problēma ir tur, ka neuzstādās sesija. Kādēļ tas varētu būt? Kas varētu būt nepareizi? viss šis kods tiek mests app_controlller_front.php failā, bet tam šeit nav nozīmē šķiet, ka. Quote Link to comment Share on other sites More sharing options...
404 Posted March 21, 2012 Report Share Posted March 21, 2012 ja angļu valoda ir defaultā,tad loģiskāk liekas: if(empty($def_lang) OR $geoip_country != 'Latvia') { Savādāk izskatās izmaiņas netiks veiktas,ja kaut kādu iemeslu dēļ sesijā jau atrodas 'def_lang' ieraksts. Quote Link to comment Share on other sites More sharing options...
anonīms Posted March 21, 2012 Author Report Share Posted March 21, 2012 ne par to šeit ir stāsts. Par to, ka sesija netiek "ierakstīta". un nē, tavs nav īpaši loģiski. A ja no ārzemēm ienāk latvietis? tad nu nekādi sanāk, ka netiks pie savas kārotās LV valodas, jo def lang nav valoda, tas ir vnk status, ka cilvēks pirmo reizi ir iegājis lapā. Quote Link to comment Share on other sites More sharing options...
404 Posted March 21, 2012 Report Share Posted March 21, 2012 (edited) Tādā gadījumā protams.Vienkārši spriedu pēc tā,ka jāpiepildās abiem nosacījumiem - nav uzstādīts def lang un GeoIP nav noteicis Latviju. Ja ar to viss ir ok,un sesija tāpat nerakstās,tad vairāk no šī koda neko izsecināt manuprāt nevar. Edited March 21, 2012 by 404 Quote Link to comment Share on other sites More sharing options...
briedis Posted March 21, 2012 Report Share Posted March 21, 2012 Un kāpēc sesija netiek ierakstīta? Tam vispār ir kaut kāds sakars ar šo koda gabalu, vai arī tu vienkārši nemāki veikt elementāru atkļūdošanu? Nu tad uzraksti šīs rindiņas un pārbaudi, vai tiešām sesija netiek ierakstīta, vai arī konstrukciju loģika vienkārši klibo. // Pārbaudam vai ir ierakstīts var_dump($this->Session->read('def_lang')); // Ierakstam sesijā $this->Session->write('def_lang', 'en'); Quote Link to comment Share on other sites More sharing options...
anonīms Posted March 21, 2012 Author Report Share Posted March 21, 2012 Tur jau tā lieta, ka cakePHP esmu strādājis salīdzinoši maz. Ja pirms dump'a ierakstu sesijā, tad viņš rādas, bet tikko kā notiek refresh, tā atkal pazūd, ja nemaldos. Tāpēc domāju vai kāds, kas strādājis ar cakePHP arī ir saskāries ar ko līdzīgu. Quote Link to comment Share on other sites More sharing options...
R21vo Posted March 21, 2012 Report Share Posted March 21, 2012 Šai problēmai visticamāk nav nekādas saistības ar cakePHP, imo kļūda būs kaut kur loģikā. Tobiš, vajag apskatīties kur tas sesijas mainīgais vispār tiek ierakstīts (vai cookijā, vai arī caur sesijas failā uz servera). Kā arī vajag nočekot vai gadījumā sesijas id nemainās pēc tā redirekta. Quote Link to comment Share on other sites More sharing options...
mad182 Posted March 24, 2012 Report Share Posted March 24, 2012 Kas konfigā ir norādīts pie "Session.save" un pārējiem Session.* parametriem? Visam jāūt iekš app/config/core.php Un vai debug ir ieslēgts? Ja sesiju glabāšanai paredzētajā folderī nav rakstīšanas tiesību, un debug līmenis ir 0, tad varētu arī sesijas nofeilot bez brīdinājuma. Quote Link to comment Share on other sites More sharing options...
anonīms Posted March 26, 2012 Author Report Share Posted March 26, 2012 (edited) Configure::write('Session.save', 'php'); Configure::write('Session.start', true); Configure::write('Session.cookie', 'CAKEPHP'); Configure::write('Session.timeout', '180'); Configure::write('Session.start', true); Nu ir tā, ka ir citas sadaļas, kur tiek izmantots tas pats un tur viss strādā. (Tās sadaļas gan ir sen taisītas un ne no manas rokas). debug 0, jā. Katrā ziņošu, ja būs kādas problēmas un vajadzēs kko. Edited March 26, 2012 by anonīms Quote Link to comment Share on other sites More sharing options...
mad182 Posted March 26, 2012 Report Share Posted March 26, 2012 Nu tur viss izskatās ok, vienīgi viena rinda atkārtojas divreiz, bet tas nu tā. To debug izstrādājot gan vajadzētu pamainīt vismaz uz 1, citādi kļūdu gadījumā paziņojumus neredzēt. 0 - izslēgts, produkcijas videi 1 - kļūdu paziņojumi, netiek izmatots modeļu cache 2 - tas pats kas 1 + db kveriju dumps Quote Link to comment Share on other sites More sharing options...
Turecky Posted March 30, 2012 Report Share Posted March 30, 2012 Tāds jautājums! Kāda jēga iespringt un mēģināt noteikt kādā valodā userim parādīt lapu izejot no viņa IP? Protams no vienas puses jau forši, ka ieej lapā un tev viņa uzreiz saprotamā valodā, bet ja lapa starptautiska, tad loģiskāk būtu default uslikt ENG un ja nu gadās, ka user grib kādu citu no piedāvātajām, tad to iemetam pietiekami pamanāmā vietā. Ja lapa ir orientēta uz LV tad DEFAULT liekam LV un kam nepatīk, lai maina. Tāpat visus 100% nenosegsi, lai būtu tā, ka latvietis ienākot dabūs LV. Ja dzīvoju ārpus LV un no ārzemnieka paziņas PC ievelkos tādā lapā, cik liela iespēja, ka kompis, nemaz nerunājot par serveri, izpīpēs, ka tur viens letiņš sēž?! Man no vienas puses liekas, ka tā tik papildus problēmas radīšana. Off topik, bet šis liekas, ka varētu būt līdzīgs variantam, kad vēlamies lietotājam, kas ir atslēdzis visus javascript un pārējās fīčas nodrošināt tieši tādu pašas lapas izskatu un funkcionalitāti, kā tiem, kas viss ieslēgts. Pie lieliem lapas apmeklējumiem vienmēr būs neapmierināto bariņš. Ja pamata masa ir apmierināta, tad jāpadomā vai ir jēga iespringt to dažu procentu dēļ! Bet tas tik mans vidoklis par tēmu. Quote Link to comment Share on other sites More sharing options...
anonīms Posted March 30, 2012 Author Report Share Posted March 30, 2012 Neiet jau runa vai tas čakarīgi vai nē. Ja klients pieprasa, tad ir jābūt. Quote Link to comment Share on other sites More sharing options...
briedis Posted March 31, 2012 Report Share Posted March 31, 2012 Par valodām, variants ir skatīties pārlūka valodu, un defaultā izmantot to. Tomēr, tā var būt arī greiza, tāpēc noteikti vajadzētu nodrošināt to, ka lietotājs var ātri pamanīt veidu, kā lapā valodu nomainīt. Par JS - nezinu, man liekas, ka jau ir pienākuši tādi laiki, ka JS ir principā visam, pat telefoniem, tāpēc es, personīgi, ignorēju bez-JS lietotājus. Pamata funkcionalitāti protams var mēģināt nodrošināt bez JS, bet ja visa lapa bāzēta uz JS, tad varētu būt reāls čakars, kas nez vai kādreiz attaisnosies to pāris lietotāju dēļ... Quote Link to comment Share on other sites More sharing options...
daGrevis Posted March 31, 2012 Report Share Posted March 31, 2012 > Par valodām, variants ir skatīties pārlūka valodu, un defaultā izmantot to. Kā var uzzināt pārlūka valodu? :O Par JavaScript es vismaz daru tā, ka, kā jau briedis minēja, nodrošinu lapas funkcionalitāti arī bez JavaScript, bet viss skaistāk un funkcionālāk, protams, strādā ar JavaScript. Darbā strādāju pie lapas, kura kā tāda strādā tikai ar ieslēgtu JavaScript — tā kā izņēmumi arī ir. :) Quote Link to comment Share on other sites More sharing options...
Kavacky Posted April 2, 2012 Report Share Posted April 2, 2012 Kā var uzzināt pārlūka valodu? :O $_SERVER['HTTP_ACCEPT_LANGUAGE'] Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.