Jump to content
php.lv forumi

Valodas izvēles saglabāšana iekš cookie


Matiss

Recommended Posts

Sveiki

 

Man ir galvenā lapa (index.php) ar vienkāršiem teksta linkiem:

 

<a href="mainLV.php">Latviski</a>

<a href="mainRU.php">Krieviski</a>

<a href="mainEN.php">Angliski</a>

 

, kas atrodas teiksim uz www.vards.lv

 

Loģiski katrs no tiem ved uz pamata lapas attiecīgo valodas versiju.

 

Gribu uztaisīt tā, lai lietotājs, pirmo reizi izvēloties valodu iekš index.php, nākamreiz apmeklējot lapu

tiktu aizsūtīts uz pirmīt izvēlētās valodas adresi. Proti, ja es izvēlos "Latviski", tad nākamreiz ejot uz www.vards.lv tieku pārsūtīts uz www.vards.lv/mainLV.php

 

MySQL man nav pieejams, un es to arī nezinu, PHP arī nezinu, tik vien cik brīžiem ķimerējos ar gataviem skriptiem, mēģinot tos izprast. Gribēju jums pajautāt, vai šo lietu ir iespējams uztaisīt tikai ar PHP? Cik noprotu, tad te vajadzētu saglabāt lietotāja sākotnējo izvēli kādā cookie... tikai kā to izdarīt? Varbūt kāds lūdzu var atsaucīgs būt un palīdzēt?

Link to comment
Share on other sites

Viss ko tev vajg, aprakstits seit.

 

http://www.php.net/manual/en/function.setcookie.php

 

setcookie() un $_COOKIE skaties....

 

Nu nav jau tā, ka to nebūtu lasījis. Lasīju pirms postot.

Testēju uz lokalhosta ... nu saglabājas cepumiņš... citā lapā varu parādīt tā vērtību...

bet kā to visu sasaistīt kopā... lūk to gan es nezinu. Tāpēc arī jautāju.

 

Bet ar

 

<?php

$value = 'something from somewhere';

setcookie("TestCookie", $value);

?>

 

jau es tik vien kā lieku uzģenerēt cepumiņu "TestCookie" ar vērtību, kuru esmu pats iedevis "something from somewhere"... es nezinu kā man pateikt, lai šī $value vērtība būtu attiecīgais tajā brīdī izvēlētais links.

Link to comment
Share on other sites

nesmuki jau tev tur ir, ka katrai valodai sava lapa, bet ja tā tad:

katrā lapā sūti attiecīgu cookie, un tad pirmajā lapā:

if ( $_COOKIE['bbb'] == eng)

header("Location: mainEN.php");

elseif

.....

Edited by goldy
Link to comment
Share on other sites

Vai man vajadzētu tiem linkiem dot nosaukumus?

 

proti,

<a href="mainLV.php" name="LV">Latviski</a>

<a href="mainRU.php" name="RU">Latviski</a>

<a href="mainEN.php" name="EN">Latviski</a>

utt..

 

un tad kautkā definēt mainīgos? Piemēram:

 

$lang1 = 'mainLV.php';

$lang2 = 'mainRU.php';

$lang3 = 'mainEN.php';

 

???

 

Bet kā skripts zinās, ka jūzeris ir izvēlējies tieši mainLV.php linku, nevis kādu citu?

 

 

Ai.. redz kā pasteidzos...

 

ak šitā te tas darās... labi.. pamēģināšu tā...

 

Paldies, Goldy un Delfins.

Edited by Matiss
Link to comment
Share on other sites

Redz kā. Patiesībā tas patiesi nebija sarežģīti. Problēma, ka man nav loģiskās domāšanas.

Nezinu kāpēc gribēju, lai funkcija, kas ieraksta kukijā jūzera izvēli, zinātu to jau tajā - pirmajā lapā... bet ja loģiski padomā - protams, ka pirmo reizi cilvēks izvēlēsies valodu, aizies uz lapu un tur tiks ierakstīts kukijs.

 

nākamreiz nākot uz pirmo lapu, kukijs tiek iesaukts, tā vērtība salīdzināta un lietotājs aizsūtīts kur vajag.

 

Eh...

 

bet tagad cita lieta .. smejies vai raudi, kamēr kukijs nav fiziski izdzēsts, vai (laikam ekspairojies)

es netieku pie galvenās (valodu izvēles) lapas... šis, sivēns, mani visu laiku sūta uz turieni, kur pats gribēju :)

 

Kā ir, ja esmu kļūdījies savā izvēlē, un tomēr gribu citu valodu?

 

p.s. kāpēc ideja, ka katrai valodai sava lapa, būtu slikta?

Link to comment
Share on other sites

Tieši tāpēc :) Taisi visu to ar inclūdēm lieliem texta gabaliem, un kaut kādu translatoru priekš interfeisa elementiem. Par interfeisa tulkošanu te kaut kur bija topiks, pameklē... Idejai, ērti to darīt ar heša palīdzību... un viss ies caur vienu failu index.php.

Vai arī dublē valodas izvēlni visos failos...

Link to comment
Share on other sites

Hmmm... tad sanāk, ka pie ši, patreizējā varianta, es normālā veidā nemaz nevaru pie tās galvenās lapas tikt?

 

 

Nu jā, neesmu tik gudrs šajās lietās...

include zinu... pirmā lieta ko iemācījos ar PHP darīt - inklūdot :)

bet neko vairāk arī nezinu īpaši... tikai tā lūk ņemu gatavus skriptus, ķidāju, lasu, pētu, modificēju un no tā mēģinu kaut ko iemācīties... grūti nākas...

 

nu man šajā gadījumā nav tik grūti uztaisīt trijās atsevišķas valodās... mjā... bet tas ka atpakaļ netieku uz galveno lapu ir nešpetni...zūd visa valodas izvēles kukija jēga.

 

Oh, jā, un kā ir, ja es gribu lai kukijs neekspairo? Vai tas vispār ir iespējams?

 

Neuzstādot kukija expire vērtību tas nobeidzās pie browsera aizvēršanas...

Ja es to atstātu kā ""?

Link to comment
Share on other sites

Heh... tas jau man tā kā pieleca pašam :P

Bet lielā problēma ir tas, ka netieku atpakaļ uz valodu izvēles lapu, ja vien fiziski neizdzēšu kukiju, vai ja tas neekspairo. Tad protams laikam vienīgā iespēja ir likt katrā no šīm trijām lapām combo boxi ar valodu izvēles iespēju... savādāk nekā?

Link to comment
Share on other sites

linku uz valodas izvēles lapu. index.php?man-nevajag-redirectu=1

un lapā raksti

if(isset($_GET['man-nevajag-redirectu']) || !isset($_COOKIE['valoda']))

{

// radi valodu izveles

} else {

 

// skaties kas pa kukiju un redirectee

}

Link to comment
Share on other sites

Hm.. nezinu... varbūt pats sev radu problēmu, bet lieta tāda, ka:

 

valodu izvēles lapa reāli būs uz teiksim: www.vards.lv, tur pat arī lapas latviskā versija,

bet krieviskā būs uz www.imja.ru un angliskā uz www.name.com, pie kam - pamata saturs lapām

būs vienāds tikai sākumā. pēcāk katrs savā lapā taisīs izmaiņas, kas nesinhronizēsies...

paliks tikai vienota ideja...

 

Tāpēc sākumam vajag valodas izvēli un ...jā... ja izvēlēta nejauši tomēr nepareiza valoda -

iespēju atnākt atpakaļ un izvēlēties pareizo...

 

nezinu... varbūt visu daru nepareizi, bet tāda ir tā situācija...

 

varbūt ir citi risinājumi.. nezinu..

Link to comment
Share on other sites

Jebkuraa gadijumaa lietotajam ir jabut kadai atpakaļsaitei lai nomeinitu valodu. tatad tev valodas izvele www.vards.lv.

a) Ja nav kukijs tad piedāvā izvēlēties valodu.

b) Ja ir kukijs tad redirektē uz www.name.lv, vai www.imja.lv utt. atkaribaa no vertibas.

 

Tad kad lietotajs er redirektēts tad tajaa www.name.lv piemeram ir links "nomainit valodu" ar target www.vards.lv?no_redirect=1

 

Tad skripts zinaas ka lietotajs ir nacis mainiit valodu un neredirektees vinu projam. Un talak visu pec v3rb0 varianta.

 

Parbadi vai lietotajs ir nacis mainit valodu:

 

1) Ja ir tad piedaavaa izvelni, un saglabaa kukijaa jauno vertibu

2) Ja nav nacis mainit valodu tad skaties vai ir kukijs.

3) Ja ir kukijs, tad redirektee uz attiecigo lapu, ja nav tad piedava izveleties valodu utt.

 

Centos izstastit ar vardiem ko v3rb0 uzrakstija paris rindinaas, ceru ka saprati :)

Link to comment
Share on other sites

×
×
  • Create New...