2013-03-23 35 views
0

我試圖建立一個多語言的網站進行設置,但問題的變量不能點擊提交按鈕,選擇語言後才能進行設置:會話不能在一個類的函數

<form action="<?php $aradown->make_lang(); ?>" method="post"> 
    <input type="submit" name="en" value="english" > 
    <input type="submit" name="ar" value="arabic" > 
</form> 

類功能代碼:

public function make_lang(){ 
    if($_POST['en']){ 
    $_SESSION['lang_en']; 
    } 

    if($_POST['ar']){ 
    $_SESSION['lang_ar']; 
    } 
} 

public function check_lang(){ 
    if(isset($_SESSION['lang_en'])){ 
    $lang="english"; 
    } 
    if(isset($_SESSION['lang_ar'])){ 
    $lang="arabic"; 
    } 
    $path=dirname(__FILE__)."/languages/".$lang.".php"; 
    return $path; 
} 

這是使用代碼:

include('includes/core.class.php'); 
$aradown= new aradown; 
$lang_file=$aradown->check_lang(); 
include($lang_file); 

我試圖打印的結果,但$lang var是空的。

C:\AppServ\www\aradown-new\includes/languages/.php 

是否缺少任何東西?

+0

試一試'session_start();' – 2013-03-23 23:50:04

回答

1

您需要將變量實際設置爲某些內容。

if($_POST['en']){ 
     $_SESSION['lang_en'] = true; 
     } 

    if($_POST['ar']){ 
     $_SESSION['lang_ar'] = true; 
     } 

以及使用session_start()開始會話。

+0

哇,解決了,但是爲什麼session變量應該被設置爲true後才能在類函數中使用bcz這不是通常的做法 – 2013-03-23 23:59:01

+0

你沒有設置變量;您試圖獲取它,如果您打開了錯誤報告(並顯示通知),則應該導致出現「通知:未定義索引:」。如果你不設置它,那麼'isset'將返回false。 – MichaelRushton 2013-03-24 00:02:34

+0

感謝邁克爾,我現在明白,很感激,並感謝錯誤報告通知bcz我沒有做 – 2013-03-24 00:05:35

相關問題