2013-10-11 114 views
-1

我正在爲一些有趣的項目工作,但我現在卡住了。每次我打電話給我的index.php時,我都會收到通知和致命錯誤。php undefined變量/未檢測到類

Notice: Undefined variable: translator in C:\xampp\htdocs\Curve\manage\pages\menu.sfwp on line 309

Fatal error: Call to a member function getText() on a non-object in C:\xampp\htdocs\Curve\manage\pages\menu.sfwp on line 309

我需要的所有文件,並要求我的課。

結構: 的index.php - >芯/ core.inc.php - >類/ Translator.cs.php 的index.php - >頁/ menu.sfwp

芯:

if(corekey != "STR456512013213280935405CMS"){ 
    die(); 
} 
//Sessionn 
session_start(); 

//MySQL Connection 
try{ 
    $conn = new PDO("mysql:host=localhost;dbname=Curve", 'root', ''); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} 
catch(PDOException $Exception){ 
    throw new Exception($Exception->getMessage() , $Exception->getCode()); 
} 

//classes 
require('classes/General.cs.php'); 
require('classes/Users.cs.php'); 
require('classes/Portal.cs.php'); 
require('classes/Translation.cs.php'); 

$users   = new users($conn); 
$general  = new general($conn); 
$portal   = new portal($conn); 
$templatePortal = new portalTemplate($conn); 
$translator  = new Translator($conn); 

Menu.sfwp

<?php $translator->getTxt(1, $_SESSION['lang']); ?> 

translator.cs.php

class Translator 
{ 
    private $db; 

    public function __construct($database) { 
     $this->db = $database; 
    } 

    private function getTxt($text, $userlang){ 
     $lang = "lang_".$userlang; 
     $query = $this->db->prepare("SELECT * FROM ".$lang." WHERE id='".$text."'"); 
     $query->execute(); 
     $row = $query->fetch(); 
     echo($row->text); 
    } 
} 
+3

您是否聽說過'debug'這個詞?如果是的話,你試過了嗎? –

+2

'Menu.sfwp'如何連接到內核?另外,'getTxt'是一個私有方法。它需要公開才能在課堂以外進行訪問。 – OptimusCrime

+0

確保你的'menu.sfwp'文件包含翻譯器的實例.. –

回答

0

使用require_once('classes/Translation.cs.php');在Menu.sfwp

<?php 
$translator=new Translator($conn); 

$translator->getText(1, $_SESSION['lang']); 

?> 
0

Menu.sfwp你試圖調用getText方法,它不存在。
您的Translator類改爲getTxt方法。
這是一個錯字。

Menu.wfwp應該是這樣的:

<?php $translator->getTxt(1, $_SESSION['lang']); ?> 
+0

tybor不是我的問題,但它的糾正 – djkevino

+0

做它解決了這個問題? – matewka

0

你Menu.sfwp應該有

<?php 
    $translator  = new Translator($conn); 
    $translator->getText(1, $_SESSION['lang']); 
?> 

同時檢查getTxt的拼寫。

+0

它不是拼寫,翻譯也是在我的核心中定義的,並且在我的索引中被要求與menu.sfwp相同 – djkevino