آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در security

AmirrezaSh  10 سال پیش  10 سال پیش
0 0

سلام

کلاس 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;
}
}
+2 0
من دو تا ایراد ظاهری میبینم که اولی شاید مهم نباشه ولی دومی قطعا ایراد داره. اولی این که تابع Construct شاید نباید private تعریف بشه و باید public باشه. دومی این که در تابع safeQuery هیچ مقداری return نمی شه. (10 سال پیش)
 برای این سوال پاسخی وجود ندارد.

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