Грешки върху многоезичен сайт

amgcompany

Registered
Здравейте, започнах да пиша система за многоезичен сайт, но ми излизат грешки. Използвам 3 PHP файла, начална страница, bg.php и en.php. Използвам сесии за създаването на системата. Ето го и кода:

PHP:
<?php
	session_start();
	$languages = $_GET['lang'];
	$sesLang = $_SESSION['lang'];
	
	if(isset($languages)){
		switch($sesLang){
			case 'bg':
				$sesLang = "bg";
			break;
			
			case 'en':
				$sesLang = "en";
			break;
		}
	}
	elseif(!isset($languages) && empty($sesLang)){
		$sesLang = "bg";
	}
	
	require('languages/'.$sesLang.'.php');
?>

Трябва да ми излиза по подразбиране на български. Но ми излизат тези две грешки

Notice: Undefined index: lang in C:\index.php on line 3

Notice: Undefined index: lang in C:\index.php on line 4

Тези може би до някъде знам как да ги махна, но следващите си нямам и на представа защо ми ги показва


Notice: Undefined index: lang in C:\index.php on line 4

Warning: require(languages/.php) [function.require]: failed to open stream: No such file or directory in C:\index.php on line 21

Fatal error: require() [function.require]: Failed opening required 'languages/.php' (include_path='.;C:\xampp\php\PEAR') in C:\index.php on line 21

Ако някой може да помогне, ще съм му благодарен :)
 
За първото мога да ти помогна.За да зададеш стойност на дадена сесия,задължително трябва да провериш дали тя съществува
Код:
if(isset($_GET['lang'])) {
 $languages = $_GET['lang'];
}
if(isset($_SESSION['lang'])) {
  $sesLang = $_SESSION['lang'];
}
 
critrate каза:
За първото мога да ти помогна.За да зададеш стойност на дадена сесия,задължително трябва да провериш дали тя съществува
Код:
if(isset($_GET['lang'])) {
 $languages = $_GET['lang'];
}
if(isset($_SESSION['lang'])) {
  $sesLang = $_SESSION['lang'];
}

Благодаря :)

koko5 каза:
$sesLang ти е null

Warning: require(languages/.php) [function.require]: failed to open stream: No such file or directory
Няма файл "празно".php

Виждам, че е празно но аз нали използвам сесия $sesLang и съм написал require('languages/'.$sesLang.'.php'); Ако се използва сесията то трябва да се променя автоматично, а по подразбиране трябва да е на български. Щом като ми изкарва грешка в която пише, че търси в ".php" значи сесията не се използва и кода ми куца някъде, като не мога да разбера къде, урокът който гледах е този http://vbox7.com/play:3a1785a5
 
Виж empty респ. isset.

ако $sesLang=="" , тя е empty , но е set-ната, т.е. условието
elseif(!isset($languages) && empty($sesLang)){
не е изпълнено. Трябва да е
PHP:
elseif(!isset($languages) or empty($sesLang)){
switch($sesLang){

case 'bg':

$sesLang = "bg";

break;



case 'en':

$sesLang = "en";

break;
Ако $sesLang е равно на 'bg', пак го направи равно на 'bg', съответно и за 'en' Обмисли го :)
 

Горе