eregi Posted November 23, 2007 Report Share Posted November 23, 2007 (edited) tātad ir valodas skripts.. pašā index faila augšā tiek izsaugta lang($kategorija,$id); pati funkcija - function lang($kategorija,$id) { if(isset($kategorija) && $kategorija==lang && isset($id)) switch($id) { case 'en': $_SESSION['valoda']="en"; break; case 'lv': $_SESSION['valoda']="lv"; break; default: $_SESSION['valoda']="lv"; } elseif(isset($kategorija) && $kategorija==lang && empty($id)) { header('location'); } } lapai izmantoju rewrite funkciju, tātad jautājums tāds, kā es varu panākt, lai nospiežot uz http://lapa/lang/eng tiktu switchota valoda, un useris atmests atpakaļ uz to lapu, kur viņš iepriekš bija, pievienot ?lang&id=eng neder, kā jau rewraitā.. Edited November 23, 2007 by eregi Link to comment Share on other sites More sharing options...
andrisp Posted November 23, 2007 Report Share Posted November 23, 2007 Saac ar to, ka ieliec normaali indenteetu kodu. ;) Link to comment Share on other sites More sharing options...
eregi Posted November 23, 2007 Author Report Share Posted November 23, 2007 Tātad gabals no index.php - http://paste.php.lv/6474 gabals no pašas funkcijas - http://paste.php.lv/6475 tātad vēlreiz jautājums tāds, ja piemēram esmu http://ip/raksts/muca sadaļā, un vēlos nomainīt valodu, kas būtu jādara, lai pēc valodas maiņas mani atmestu atpakaļ uz - http://ip/raksts/muca ? tā ja nebūtu rewraits lietots, tad varētu linkam pievienot ?lang=eng Link to comment Share on other sites More sharing options...
betons Posted November 23, 2007 Report Share Posted November 23, 2007 Iestādīto valodu var ērti glabāt cookijā, nebūs sesijās jāglabā un pie visiem pieprasījumiem būs pieejams. Link to comment Share on other sites More sharing options...
eregi Posted November 23, 2007 Author Report Share Posted November 23, 2007 ir labi pašlaik, vajag par to redirektu. adrisp? Link to comment Share on other sites More sharing options...
marcis Posted November 24, 2007 Report Share Posted November 24, 2007 es pieņemsim visu laiku izmantoju mainīgo $_GET['lang'] un pēc tā arī sastādu kverijus, inklūdoju failus utt izmantoju mod_rewrite (mainīgais $_GET['lang'] iet kā pirmais - /lv/bla/bla/bla.html ) uz valodas maiņas podziņām izsaucu funkciju, priekš tevi bik pielāgošu: function shitchlang($lang,$key=0) { global $_SERVER; $newlang=explode("/",$_SERVER['REQUEST_URI']); $newlang[$key]=$lang; return implode("/",$newlang); } Link to comment Share on other sites More sharing options...
eregi Posted November 24, 2007 Author Report Share Posted November 24, 2007 (edited) Nu un kurā vietā man viņš jāliek? domā iekš - http://paste.php.lv/6475 vai iekš tā gabaliņa, kur es sadalu savu $_GET['kat']? un, ko Tu gribi laist caur ($lang,$key=0) mainīgajaiem? Edited November 24, 2007 by eregi Link to comment Share on other sites More sharing options...
marcis Posted November 25, 2007 Report Share Posted November 25, 2007 tak paskties pats $lang ir jaunās valodas simbols (en,lv,ru utt kā tu viņus lieto), $key ir mainīgā, kas definē valodu, atrašānās vieta linkā. http://paste.php.lv/6475 - šo funciju tev nemaz nevajag. manu funkciju liec šajā vietā <a href="<?=switchlang("en");?>">en</a> un attiecīgi taisi kverijus un inklūdo failus ( include("lang_".$_GET['lang'].".php"); utt ) nekādas sesijas nemaz nav vajadzīgas Link to comment Share on other sites More sharing options...
xPtv45z Posted November 26, 2007 Report Share Posted November 26, 2007 $_SERVER['HTTP_REFERER_URL'] neder? Link to comment Share on other sites More sharing options...
Kavacky Posted November 26, 2007 Report Share Posted November 26, 2007 Neder, jo tas glabājas iekš 'HTTP_REFERER'. Link to comment Share on other sites More sharing options...
Delfins Posted November 26, 2007 Report Share Posted November 26, 2007 (edited) man ir uztaisīts rewrite-cond, ka smuki urla sākumā padod valodu. Urls: http://mans_serveris.lv/lv-lv/paths?a=23&b=c (lv-lv vietā var rakstīts en-us/en-gb/en-ca un t.t. pēc paša izdomas un vajadzības) # Rewrite with LANG-LANG RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([a-z]{2}-[a-z]{2})(/)(.*)$ ./core.php?lang=$1&_engine_request_path=$3 [QSA] # Rewrite with NO-LANG RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ ./core.php?lang=no_lang&_engine_request_path=$1 [QSA] PHP kodā jābūt attiecīgi handlers, kas pārbauda vai ir tāda valoda un t.t... Edited November 26, 2007 by Delfins Link to comment Share on other sites More sharing options...
eregi Posted November 26, 2007 Author Report Share Posted November 26, 2007 (edited) Mārci, Tavam variantam nav nevainas, bet tomēr vēlos palikt pie sava sesiju varianta, tādēļ ceru, ka kāds ieteiks veidu, kā pēc tās funkcijas varētu redirektot uz to lapu, no, kuras mainīja valodu. aaa, ++ vai ir iespējams iekš http://paste.php.lv/6488 6 & 7 rindas palaist kādu php funkciju? Edited November 26, 2007 by eregi Link to comment Share on other sites More sharing options...
xPtv45z Posted November 26, 2007 Report Share Posted November 26, 2007 Tak es jau tev mazliet nepareizi teicu. $_SERVER['HTTP_REFERER'] Vai arī tu postus, kur visu kodu priekšā raksta, nemaz nepamani? Link to comment Share on other sites More sharing options...
marcis Posted November 26, 2007 Report Share Posted November 26, 2007 (edited) nesaprotu priekškam tev sesiju, bet nu ja tik ļoti gribi, tad taisi sesiju pašā sākumā no $_GET['lang'] <? if($_SESSION['valoda']!=$_GET['lang']){ $_SESSION['valoda']=$_GET['lang']; } ?> linkā met manu funkciju un būs tev gan pareizā saite gan sesija Edited: kļūda kodā Edited November 26, 2007 by marcis Link to comment Share on other sites More sharing options...
Delfins Posted November 26, 2007 Report Share Posted November 26, 2007 marcis, tikai, == uz = PS: iesācējs nepamanīs tādu paviršību. Link to comment Share on other sites More sharing options...
Recommended Posts