PHP oturumları ve çerezleri kullanarak dil durumunu korumak için nasıl

4 Cevap php

Benim index.php bu var:

<?php include_once 'file.php' ?> then I have <html> some content </html>

ve file.php bu vardır:

<?php
session_start();
header('Cache-control: private');

if(isSet($_GET['lang']))
{
$lang = $_GET['lang'];

$_SESSION['lang'] = $lang;

setcookie("lang", $lang, time() + (3600 * 24 * 30));
}
else if(isSet($_SESSION['lang']))
{
$lang = $_SESSION['lang'];
}
else if(isSet($_COOKIE['lang']))
{
$lang = $_COOKIE['lang'];
}
else
{
$lang = 'en';
}

switch ($lang) {
  case 'en':
  $lang_file = 'lang.en.php';
  break;

  case 'de':
  $lang_file = 'lang.de.php';
  break;

  case 'es':
  $lang_file = 'lang.es.php';
  break;

  default:
  $lang_file = 'lang.en.php';

}

include_once 'languages/'.$lang_file;
?>

Ben öyle bir lang.en.php demek, bu 3 dosya var ...

ve bu yüzden, benim sayfa boş, hiçbir metin çalışmıyor? Ne oldu?

lang.en.php içeriyor

<?php


$h1 ="HOME";
$h2 ="ABOUT US";
$h3 ="CONTACT";
$h4 ="FAQ";

$txt1 = "Here goes txt,Here goes txt,Here goes txt,Here goes txt,
         Here goes txt,Here goes txt,Here goes txt,Here goes txt,
         Here goes txt, Here goes txt,Here goes txt,Here goes txt.";
?>

I don't know what's wrong with this... What should I change? Can someone help me. Thanks.

4 Cevap

Bazı HTML dışında baskı şey değildir. Lütfen lang.en.php 'dosyalarındaki dizeleri içeriğini görmek için, bir echo dil yapısı kullanarak çıktı bunları gerekir.

<?php
echo $txt1;
?>

çıkışı olur:

Here goes txt,Here goes txt,Here goes txt,Here goes txt,
Here goes txt,Here goes txt,Here goes txt,Here goes txt,
Here goes txt, Here goes txt,Here goes txt,Here goes txt.

Girinti kontrol yapıları, cenneti denetleyicileri (mantık) ve Gösterim (sunum): Eğer doğru kod yapılandırma kullandığınızda bu gibi problemler oluşabilir etkili olmadı. Bunu açıkçası zor sizin ve diğerlerinin kodunu okumak ve anlamak için yapar bir dosya var bir sürü şeyler kadar karıştırma vardır. Eğer php kullanarak bile, akılda okunabilirlik / Düzeltilebilirlik ile kod deneyin.

Ben (bu Bitrepository tutprial sağdan :) seni kodu test

Hiç biri varsa tamam, file.php sizin function.php olmalıdır.

Ben yaşadığınız varsayıyorum index.php ve doğru gibi dil dosyaları bu değişkenleri yankılandı:

echo $h1;

echo $h2;

echo $h3;

echo $txt1;

Dilini değiştirmek için, file.php, bu durumlarda belirtilen görüyorum. Eğer ingilizce isterseniz:

index.php?lang=en

index.php?lang=de

index.php?lang=es

Ve böylece.

Kolay değil \(^_^)/

Çok ayrıntılı öğretici için bitrepository edin. Ben de dil dosyaları için define() kullanmak önermek istiyorum.

ex.

define('TITLE', 'This is the title')

Echo:

echo TITLE;

session_start() belgenizin üstünde olması gerekiyor.

Şey tarayıcıya gönderilmeden önce oturumu başlatmanız gerekir.