Незнаю как это обьяснить но нужно сделать многоязычный сайт. Есть ли у кого скрипт? Смотрел примеры делал но что-то не выходит...
пришло в голову это. PHP: <?php $lan = $_GET['lang']; if ($lan == 1) echo '<html>русиш лэнгвидж (текст на русском)</html>'; if ($lan == 2) echo '<html>инглиш лэнгвидж (текст на английском)</html>'; if ($lan == 3) echo '<html>падонаг лэнгвидж (текст на падонкаффском =) )</html>'; ?> доработай, может понравится
Да это конечно просто, но всеже мне нужно каждое слово делать. типа выбор языка пользователем, куки придеться применить, и еще например вывод слова как $lang[0] у меня есть такой пример только неработает чтото щас найду выложу...
PHP: if(empty($lang)) $lang = 'ru'; if (!empty($_POST['lang'])) { $lang1 = basename($_POST['lang']); if(($lang1 != $lang) && is_file('lang/'.$lang1.'.php')) $lang = $lang1; @setcookie("lang", $lang, time()+333333333); refresh(); } if (!empty($_COOKIE['lang'])) { $lang1 = basename($_COOKIE['lang']); if(($lang1 != $lang) && is_file('lang/'.$lang1.'.php')) $lang = $lang1; } include('lang/'.$lang.'.php'); if(substr_count($_SERVER['REQUEST_URI'], '/')>1 && ereg('set=',$_SERVER['REQUEST_URI'])) { header('LOCATION: http://'.$HTTP_SERVER_VARS['HTTP_HOST'].'/?'.strstr($_SERVER['REQUEST_URI'], 'set=')); exit; } В папке lang файлы ru.php en.php в файл содержания типа $lang[1] = "1"; $lang[2] = "2"; $lang[3] = "3"; Почему не работает незнаю....
Пример: /lang/en.php: PHP: <?php $lng['title'] = 'Main page'; $lng['hello'] = 'Welcome'; ?> /lang/ru.php: PHP: <?php $lng['title'] = 'Главная страница'; $lng['hello'] = 'Добро пожаловать'; ?> index.php: PHP: <?php error_reporting('0'); if($_GET['l']=='ru'){ $language = 'ru'; } else { $language = 'en'; } include('./lang/'.$language.'.php'); ?> <html> <head> <title><?=$lng['title']?></title> </head> <body> <h1><?=$lng['hello']?></h1> </body> </html> То есть в индексе инклудится языковой файл, index.php?l=ru — значение передается в get-запросе, можно и в куках. Этот код уязвим php-incl, но думаю смысл понятен.
Ну как вариант писать в куку язык, а потом в самом главном файле проверять эту куку и грузить шаблон с выбранным языком. Типо так: PHP: <?php #Страница выбора языка $arr = array( 0, //ru (default) 1, //en 2 //ukr ); $lang = 1; //Выбираем англ к примеру setcookie('lang', $arr[$lang]); #Самый главный файл $lang = !empty($_COOKIE['lang']) && is_numeric($_COOKIE['lang'])) ? $_COOKIE['lang'] : ''; if($lang == 1){ require_once('template_en.tpl'); }elseif($lang == 2){ require_once('template_ukr.tpl'); }else{ #Грузим дефолтовый require_once('template_ru.tpl'); } ?> Вместо множества if-ов можно к примеру проверять правильность куки через array_key_exists() к примеру...
Ну да, подразумевается что это шаблон. если я правильно понял то ты собираешься без шаблонов всё это делать....имхо это будет очень большое извращенство...легче взять шаблон, перевести его на множество языков и юзать в зависимости от указанного юзером языка
#Wolf#, примерно вот так: PHP: $file_text=file_get_contents ("file.txt"); $file_text=str_replace($str,"",$file_text); $file=fopen("file.txt","w+"); fwrite($file,$file_text); fclose($file); Это скрипт замены повторов.
PHP: else замени на PHP: elseif (!strpos(file_get_contents('file.txt'), $login111.":".$password1)) тогда скрипт будет учитывать наличие такой связки логин:пасс в файле и если такая связка уже есть, то писать не будет (как я понял тебе нужно именно это)
и имя, и пароль три раза были одинаковыми? up: попробуй так: PHP: elseif (strpos(file_get_contents('file.txt'), $login111.":".$password1) !== FALSE)
А так? PHP: $login111=$_POST['login_name']; $password1=$_POST['login_password']; $file = fopen ("file.txt","a"); $str ="".$login111.":".$password1."\r\n"; if ( !$file ) { echo("Ошибка открытия файла"); } elseif (!in_array($str,file('file.txt'))); fputs ( $file, $str); fclose ($file);
PHP: elseif (strpos(file_get_contents('file.txt'), $login111.":".$password1) === FALSE) походу надо так, а не !==
вероятно, из-за того, что после elseif'а с условием стоит ';', если ее убрать по идее должно норм работать
Столкнулся с проблемой .. PHP: if ($_SERVER['PHP_AUTH_USER'] == $l_user and $_SERVER['PHP_AUTH_PW'] == $l_pass) { done(); } else { header('WWW-Authenticate: Basic realm="See error ..."'); header('HTTP/1.0 401 Unauthorized'); template('401.html'); } Окошко авторизации вылетает, но логин с паролем не проглатывает .. в чем проблема? register_globals = off
У меня все работает, а вы уверены, что функции done() и переменные $l_user и $l_pass заданы и заданы верно?
Переменные $l_user и $l_pass определены на 1 строку выше, просто их не стал копировать .. проверял, $_SERVER['PHP_AUTH_USER'] равен $l_user $_SERVER['PHP_AUTH_PW'] равен $l_pass НО done(); не выполняется, а вторая ветка if'а ..(else{header(' ..) сижу вот думаю - когда дурка приедет, чур йа сникерс .. или наполеон ..
А если от обратного идти? PHP: <?PHP $name='test'; $pass='test'; if (!isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER']!==$name || $_SERVER['PHP_AUTH_PW']!==$pass) { header('WWW-Authenticate: Basic realm="See error.."'); header('HTTP/1.0 401 Unauthorized'); exit(template('401.html')); } ?>