|
|
|
| Est chast koda kotorij po idee dolzhen
a)brat ftp aki s bazi
b) podkljuchatsja
c)esli vse ok iskat i zalit ili v /public_html ili /www
d) pri naxodki perepisat sushestvujushij index.php ili esli netu zalit tem chto na lokalke
vse xorosho, no pochemu to funkcija zapisi ne srabativaet dazhe pri tex sluchajax kogda vse proverki do nego projdeni.. pochemu?
function do_spam($limit,$offset){
////////////////////////////
//CHECKING FOR PERMISSIONS
///////////////////////////
//-------------------------------------------------
//only 'admin' and 'superadmin' can manage users
$this->freakauth_light->check('superadmin');
//-------------------------------------------------
//END CHECKING FOR PERMISSION
$query=$this->db->get_where('ftp_list',array('status'=>'0'),$limit,$offset);
// открыть файл для чтения
$file = './uploads/index.php';
$fp = fopen($file, 'w');
if($query->num_rows()>0){
foreach($query->result() as $list){
$ftp_server=$list->host;
$ftp_user_name=$list->login;
$ftp_user_pass=$list->pass;
$id=$list->id;
// установка соединения
$conn_id = @ftp_connect($ftp_server,21,20);
if($conn_id){
// вход с именем пользователя и паролем
$login_result = @ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if ($login_result) {
//ishem i vxodim v /www ili /public_html
$now_dir=ftp_pwd($conn_id);
if($now_dir!="/public_html" or $now_dir!="/www"){
$change= @ftp_chdir($conn_id, "public_html");
if($change!=TRUE){
$change= @ftp_chdir($conn_id, "www");
}
}
if($change){
if (ftp_fput($conn_id, 'index.php', $fp, FTP_BINARY)) {
$update = array(
'status' => '1',
'error'=>'Файл загружен'
);
$this->db->where('id', $id);
$this->db->update('ftp_list', $update);
}
else {
$update = array(
'status' => '2',
'error'=>'Файл не был загружен'
);
$this->db->where('id', $id);
$this->db->update('ftp_list', $update);
}
// close the connection and the file handler
ftp_close($conn_id);
}
else{
$update = array(
'status' => '2',
'error'=>'Не могу найти директорию www или public_html'
);
$this->db->where('id', $id);
$this->db->update('ftp_list', $update);
}
}
else {
$update = array(
'status' => '2',
'error'=>'Логин не был сделан. Логин или пароль неправильный'
);
$this->db->where('id', $id);
$this->db->update('ftp_list', $update);
} // попытка закачивания файла
}
else{
$update = array(
'status' => '2',
'error'=>'Подключение к хосту не было произведено'
);
$this->db->where('id', $id);
$this->db->update('ftp_list', $update);
}
fclose($fp);
}
$new_offset=$offset+$limit;
redirect("/admin/ftp/do_spam/$limit/$new_offset",'refresh');
}
else{
$data["content"]="Процесс завершен";
$data['page'] = $this->config->item('FAL_template_dir').'template_admin/example/example';
$this->load->vars($data);
$this->load->view($this->_container);
}
}
|
| |
|
|