saeed_htb
جمعه 21 مهر 1391, 17:58 عصر
دوستان من با یه مشکل autoload کردن کلاس هام مواجه شدم میشه کمک کنید
یک فایل دارم که تنظیمات اولیه رو توی اون قرار دادم و حاوی کدهای زیر هست
includes/init.inc.php
<?php
session_start();
require_once 'general.inc.php';
define("DEBUG","");
//------------------------------------------------------------------------------
mysql_connect("localhost", "root", "");
mysql_select_db("shop-prj");
mysql_query("SET NAMES 'utf8'");
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
require_once __DIR__ . '/../Smarty/Smarty.class.php';
$smarty = new Smarty;
$smarty->left_delimiter = "{{";
$smarty->right_delimiter = "}}";
$smarty->template_dir = __DIR__ .'/../templates/';
$smarty->compile_dir = __DIR__ . '/../Smarty/templates_c/';
$smarty->force_compile = TRUE;
//------------------------------------------------------------------------------
function __autoload($classname){
require_once "/class/$classname.class.php";
}
و توی صفحه ثبت نامم کلاس user رو صدا زدم
register.php
$user = new user();
$id = $user->addUser($fname, $lname, $email, $pass, $tel, $mobile, $address, $postal);
کلاس user هم توی یه زیر شاخه کنار فایل init.inc.php به آدرس class/user.class.php قرار داره
includes/class/user.class.php
<?php
class user {
function addUser($fname, $lname, $email, $pass, $tel, $mobile, $address, $postal) {
$fname = mysql_real_escape_string($fname);
$lname = mysql_real_escape_string($lname);
$email = mysql_real_escape_string($email);
$pass = mysql_real_escape_string($pass);
$tel = mysql_real_escape_string($tel);
$mobile = mysql_real_escape_string($mobile);
$address = mysql_real_escape_string($address);
$postal = mysql_real_escape_string($postal);
$query = "insert into users set fname='$fname',lname='$lname',email='$email',pass= '$pass',tel='$tel',address='$address',postal='$pos tal',admin=0,emailVer=0";
$res = mysql_query($query);
if (defined("DEBUG") && $res == FALSE) {
echo mysql_errno() . "<br />";
echo $query . "<br />";
echo mysql_error() . "<br />";
}
return $id = mysql_insert_id();
}
}
ولی موقع اجرا با پیغام خطای زیر روبرو می شم.
Fatal error: Class 'user' not found in C:\xampp\htdocs\shop\register.php on line 19
کسی می دونه چرا کلاس ها اتوماتیک لود نمیشن؟
یک فایل دارم که تنظیمات اولیه رو توی اون قرار دادم و حاوی کدهای زیر هست
includes/init.inc.php
<?php
session_start();
require_once 'general.inc.php';
define("DEBUG","");
//------------------------------------------------------------------------------
mysql_connect("localhost", "root", "");
mysql_select_db("shop-prj");
mysql_query("SET NAMES 'utf8'");
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
require_once __DIR__ . '/../Smarty/Smarty.class.php';
$smarty = new Smarty;
$smarty->left_delimiter = "{{";
$smarty->right_delimiter = "}}";
$smarty->template_dir = __DIR__ .'/../templates/';
$smarty->compile_dir = __DIR__ . '/../Smarty/templates_c/';
$smarty->force_compile = TRUE;
//------------------------------------------------------------------------------
function __autoload($classname){
require_once "/class/$classname.class.php";
}
و توی صفحه ثبت نامم کلاس user رو صدا زدم
register.php
$user = new user();
$id = $user->addUser($fname, $lname, $email, $pass, $tel, $mobile, $address, $postal);
کلاس user هم توی یه زیر شاخه کنار فایل init.inc.php به آدرس class/user.class.php قرار داره
includes/class/user.class.php
<?php
class user {
function addUser($fname, $lname, $email, $pass, $tel, $mobile, $address, $postal) {
$fname = mysql_real_escape_string($fname);
$lname = mysql_real_escape_string($lname);
$email = mysql_real_escape_string($email);
$pass = mysql_real_escape_string($pass);
$tel = mysql_real_escape_string($tel);
$mobile = mysql_real_escape_string($mobile);
$address = mysql_real_escape_string($address);
$postal = mysql_real_escape_string($postal);
$query = "insert into users set fname='$fname',lname='$lname',email='$email',pass= '$pass',tel='$tel',address='$address',postal='$pos tal',admin=0,emailVer=0";
$res = mysql_query($query);
if (defined("DEBUG") && $res == FALSE) {
echo mysql_errno() . "<br />";
echo $query . "<br />";
echo mysql_error() . "<br />";
}
return $id = mysql_insert_id();
}
}
ولی موقع اجرا با پیغام خطای زیر روبرو می شم.
Fatal error: Class 'user' not found in C:\xampp\htdocs\shop\register.php on line 19
کسی می دونه چرا کلاس ها اتوماتیک لود نمیشن؟