من داشتم یه فیلم اموزش php میدیدم, نمیدونم چرا اکثر فیلم های اموزشی که میگیرم مثله اینی که گرفتم همه چیزو توضیح نمیدن فقط یکم قسمت ها رو میگن الان ۶ دفعه مجموعه های مختلف اموزش php از سایت های مختلف گرفتم ...
یک راهنمایی در زمینه کد زیر نیاز داشتم که توضیحش بدید در کل اون قسمتایی که برای جلوگیزی از حملات xss , sql injection نوشته شده و جاهایه مهم مثله قسمت try و catch را تا جایه ممکن توضیح بدید ...
ممنون
<?php
class news {
private $_dsn = "mysql:host=localhost;dbname=shop";
private $_username = "root";
private $_password = "ddwewewe";
private $_db;
public function __construct() {
try {
$options = array(PDO::ATTR_PERSISTENT => true, PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
$this->_db = new PDO($this->_dsn, $this->_username, $this->_password, $options);
} catch (PDOEXception $e) {
trigger_error('error on opening database' . $e->getMessage());
}
}
public function insert_users($username,$password,$email,$access_id,$active_code) {
//XSS
$username=filter_var($username,FILTER_SANITIZE_STRING);
$password=filter_var($password,FILTER_SANITIZE_STRING);
$email=filter_var($email,FILTER_SANITIZE_STRING);
$access_id=filter_var($access_id,FILTER_SANITIZE_STRING);
$active_code=filter_var($active_code,FILTER_SANITIZE_STRING);
//SQL Injection
$stmt=$this->_db->prepare("INSERT INTO users(username,password,name,access_id,active_code) VALUES (?,?,?,?,?)");
$stmt->execute(array($username,$password,$email,$access_id,$actvie_code));
}
}