Datuve :: Forums :: Arhīvs :: PHP language switcher

Datuve

Mana Datuve

Reģistrācija | Noteikumi | Paroles atjaunošana



Forums

Ieskaties


Raksti

Lietotāji online

Lietotāji online: 90

Reģistrētie lietotāji online: 0

Viesi online: 90

Datuve.lv video
Top.LV

PHP language switcher

Ievietoja: cilveks18 @ 2010.04.14 10:08  

Lūk mans mājas lapas valodas maiņas skripts ar PHP:

<?php
session_start();
if(!isset($_SESSION['lang'])) {$_SESSION['lang'] = "lv";}

$lang = $_SESSION['lang'];
if(isset($_GET['lang'])) {$lang = $_GET['lang'];}

include("languages/".$lang.".php");
?>

Tikai tagad nezinu ko likt tājos $lang.php failos... varbūt ir kādas idejas?
Paldies!

Komentāri:

#1 karuuzo @ 2010.04.14 11:06

Nu pīiiiii. Man nav ne mazākās vēlēšanās iedziļināties, ko tas tavs skripts tur dara, bet vienu es gan sapratu. $lang.php tev jāliek katrai valodai atbilstoša lapa. Tu esi tups vai izliecies?
Ko tu darītu, ja tev būtu jāraksta bakalaura/maģistra darba anotācija 3 valodās? Arī prasītu, ko katrā lapā likt iekšā :D

m

PS. Sorry, nenoturējos. Ja tu būtu sācis topiku ar "Labdien, mani sauc Jānis, man ir 6 gadi...", saprastu ;)

#2 Blackout @ 2010.04.14 13:22

karuuzo rakstīja:

Nu pīiiiii. Man nav ne mazākās vēlēšanās iedziļināties, ko tas tavs skripts tur dara, bet vienu es gan sapratu. $lang.php tev jāliek katrai valodai atbilstoša lapa. Tu esi tups vai izliecies?

Tu vispār pats saprati ko uzrakstīji? :D

Autoram:
tur tajos lang failos glabā pieņemsim:

lv.php:      $nav['home''] = 'Galvenā lapa';
en.php:    $nav['home''] = 'Home';

un tad arī kur vajag izvadi tos datus.
echo $nav['home'];

#3 karuuzo @ 2010.04.14 14:30

Un ko tad es tur tādu uzrakstīju :) vai tad lv.php nav LV atbilstoša lapa un en.php nav ENG atbilstoša lapa? Tas, ka tā ir veidota tipa resurss, nemaina ātrumu.

Ja jau par to sākām runāt, vai tad PHP nav resursu failu? Šī vienkārši izskatās pēc pornogrāfijas, inklūdot failu, kurā piedzen pilnu masīvu ar visai weblapai paredzētiem vārdiem. Nu lab, es te muldos, šī tēma jau toč ir mazajiem par zvēriņiem :)

m

#4 usver @ 2010.04.14 14:34

šitādām lapiņām testam var ievadīt

index.php?lang=../index

vai vienkārši ?lang=index. A ja nu nostrādā - pēc brīža būs "out of memory while trying to allocate .." un defaultie 8 MB + skripta nosaukums. recepte priekš  DoS gatava - paprasi 100 tādus rekvestus un skaties, kā serveris nokaras :>

#5 sn1per @ 2010.04.14 15:05

uz leimām sistēmām var arī sistēmas failus šitā atvērt apskatīties.

labāk dari šitā:


switch ($_GET['lang']) {
 case 'en' : $lang='en'; break;
 case 'lv' : $lang='lv'; break;
 case 'ru' : $lang='ru'; break;
 default   : $lang='lv'; break;
}
include("languages/".$lang.".php");

#6 Blackout @ 2010.04.14 16:33

#3
Tavā komentārā nebija saprotams, kas tieši tajā php failā ir, kaut kāda atbilstoša lapa.. :D Kā tu to domāji?
Kāpēc nevar failā glabāt mainīgos ar kaut kādām bieži izmantotām frāzēm, virsrakstiem? Domā palielināsies ielādes laiks, tad parādi ātrāku risinājumu.
Izskatās, ka tu pats neesi pārāk zinošs.

#5
Par to drošību arī taisnība.