بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

مشکل در security

مدیریت گفتگو
AmirrezaSh 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام

کلاس DB رو طبق آموزشهای استاد تغییر دادم ولی با این ارور مواجه شدم

ممنون می شم بررسی کنید

<?
class Db{
private $connection;
private static $db;
public static function getInstance($option=null){
if(self::$db==null){
self::$db=new Db($option);
}
return self::$db;
}
private function __construct($option=null){
if($option!=null){
$host=$option['host'];
$user=$option['user'];
$pass=$option['pass'];
$name=$option['name'];
}else{
global $config;
$host = $config['db']['host'];
$user = $config['db']['user'];
$pass = $config['db']['pass'];
$name = $config['db']['name'];
}
$this->connection = new mysqli($host, $user, $pass, $name);
if ($this->connection->connect_error) {
echo ("Connection failed due to: " . $this->connection->connect_error);
exit;
}

$this->connection->query("SET NAMES 'utf8'");
}
private function safeQuery(&$sql,$data){
foreach ($data as $key=>$value){
$value=$this->connection->real_escape_string($value);
$value="'$value'";
$sql=str_replace("<-$key->",$value,$sql);
}
$this->connection->query($sql);

}
public function insert($sql,$data=array()){
$result=$this->safeQuery($sql,$data);
if(!$result){
echo "Your query was ".$sql." Faild! Cause: ".mysql_error($this->connection());
exit;
}

return $result;
}
public function modify($sql,$data=array()){
$result=$this->csafeQuery($sql,$data);
if(!$result){
echo "Your query was ".$sql." Faild! Cause: ".mysql_error($this->connection());
exit;
}
return $result;
}
public function first($sql,$data=array()){
$records=$this->query($sql,$data);
if($records==null){
return null;
}
return $records[0];
}
public function query($sql,$data=array()){
$result=$this->safeQuery($sql,$data);
if(!$result){
echo "Your query was ".$sql." Faild! Cause: ".mysql_error($this->connection());
exit;
}
$records=array();
if($result->num_rows==0){
return null;
}
while($row = $result->fetch_assoc()) {
$records[]=$row;
}
return $records;
}
private function connection(){
return $this->connection;
}
private function close(){
$this->connection->close;
}
}

نظرات

mhpakdel 10 سال پیش
من دو تا ایراد ظاهری میبینم که اولی شاید مهم نباشه ولی دومی قطعا ایراد داره. اولی این که تابع Construct شاید نباید private تعریف بشه و باید public باشه. دومی این که در تابع safeQuery هیچ مقداری return نمی شه.

هنوز پاسخی ثبت نشده است


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .