PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (9): « 1 [2] 3 4 5 6 7 8 9 »

> Найдено сообщений: 131
razorg1991 Отправлено: 29 Декабря, 2015 - 18:24:21 • Тема: Запутался с return • Форум: Вопросы новичков

Ответов: 2
Просмотров: 205
DelphinPRO пишет:
внутри select_action есть return? нет! Конечно ничего возвращено не будет.

PHP:
скопировать код в буфер обмена
  1.  case '.xlsx':
  2.                 return $this->read_xslx($path_to_file);



Помогло, спасибо )))
razorg1991 Отправлено: 28 Декабря, 2015 - 21:42:29 • Тема: Бред при загрузке файлов на сервер • Форум: Вопросы новичков

Ответов: 5
Просмотров: 708
РЕШИЛ ПРОБЛЕМУ!!!!! Улыбка

Все дело в mime type.
Браузеры стационарника не правильно определяют mime type не только экселя, но и верда и всех программ, которые относятся к офису, а все почему? Потому что на стационарнике НЕ УСТАНОВЛЕН ЭТОТ ГРЕБАНЫЙ ОФИС!!! Ха-ха Все файлы офиса трактуются как application/octet-stream

Соответственно в реестре винды нет маймов (их отправляет браузер, т.е. клиент), которые прописаны в конфигурационном файле Codeigniter для xlsx

PHP:
скопировать код в буфер обмена
  1.  
  2. 'xlsx'  =>      array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip'),
  3.  


Но application/octet-stream, есть в других маймах Codeigniter (но толку то, расширение загружаемого файла не соответствует конфигу Ха-ха )

Отсюда решений несколько:
1. Дописать
PHP:
скопировать код в буфер обмена
  1.  
  2. 'xlsx'  =>      array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip', 'application/octet-stream'),
  3.  

(спорно исходя из условий безопасности загружаемых файлов)
2. Установить офис (рекомендовано, но на...й надо Закатив глазки )
3. Вручную внести в реестр винды mime соответствие
razorg1991 Отправлено: 28 Декабря, 2015 - 21:07:20 • Тема: Запутался с return • Форум: Вопросы новичков

Ответов: 2
Просмотров: 205
Помогите, а то совсем уже запутался.

Есть класс

PHP:
скопировать код в буфер обмена
  1.  
  2. class Filereader {
  3.    
  4.     // выбор обработчика для файла
  5.     public function select_action($path_to_file, $file_ext) {
  6.        
  7.         // непосредственный вызов обработчика по расширению файла
  8.         switch ($file_ext) {
  9.             case '.txt':
  10.                 $this->read_txt($path_to_file);
  11.                 break;
  12.             case '.csv':
  13.                 $this->read_csv($path_to_file);
  14.                 break;
  15.             case '.xlsx':
  16.                 $this->read_xslx($path_to_file);
  17.                 break;
  18.         }
  19.        
  20.     }
  21.    
  22.     // чтение из TXT
  23.     public function read_txt($path_to_file) {
  24.        
  25.         //echo 'Чтение txt!';
  26.     }
  27.    
  28.     // чтение из CSV
  29.     public function read_csv($path_to_file) {
  30.        
  31.         //echo 'Чтение csv!';
  32.     }
  33.    
  34.     // чтение из XLSX
  35.     public function read_xslx($path_to_file) {
  36.        
  37.         //echo 'Чтение xslx!';
  38.         // массив для листов
  39.         $sheets = array();
  40.        
  41.         // подключаем класс обработчик
  42.         require_once 'classes/simplexlsx.class.php';
  43.        
  44.         // отправляем файл на обработку
  45.         $xlsx = new SimpleXLSX($path_to_file);
  46.        
  47.         // считаем количество листов в xlsx файле
  48.         $sheetscount = $xlsx->sheetsCount();
  49.        
  50.         // делаем проход по всем листам
  51.         for($i = 1; $i <= $sheetscount; $i++) {
  52.            
  53.             $rows = $xlsx->rows($i);
  54.            
  55.             // проверяем, если лист не пустой
  56.             if(!empty($rows)) {
  57.                
  58.                 // то вносим массив строк в массив листов
  59.                 $sheets[] = $rows;
  60.             }
  61.         }
  62.        
  63.         // возвращаем массив листов
  64.         return $sheets;
  65.        
  66.  
  67.     }
  68. }
  69.  


$xlsx->rows($i) возвращает многомерный массив.


Далее вызываю

PHP:
скопировать код в буфер обмена
  1.  
  2. // создается объект
  3. $this->load->library('filereader');
  4.                 // вызываем обработчик
  5.                 $result = $this->filereader->select_action('./user_files/'.$this->session->tempdata('email').'/tmp/'.$this->upload->data('file_name'), $this->upload->data('file_ext'));
  6.                 echo $result;
  7.  


Но echo $result; ничего не выводит Не понял Т.е. даже не пустой массив print_r($result), а вообще ничего нету.
Правда если в классе Filereader вместо return $sheets; написать echo $sheets; то выводит Array() .

Короче вопрос в следующем, как мне в переменную $result запихнуть результат работы $this->filereader->select_action , т.е. получить на выходе массив
razorg1991 Отправлено: 28 Декабря, 2015 - 14:43:00 • Тема: Бред при загрузке файлов на сервер • Форум: Вопросы новичков

Ответов: 5
Просмотров: 708
Sail пишет:
razorg1991, вот похожая проблема: CodeIgniter's file upload library ignores allowed_types?
Советуют проверить и дописать при необходимости в файл mimes.php.


Это первое, о чем я подумал.

Эти расширения там уже по умолчанию забиты

PHP:
скопировать код в буфер обмена
  1.  
  2. 'xlsx'  =>      array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip'),
  3. 'xls'   =>      array('application/vnd.ms-excel', 'application/msexcel', 'application/x-msexcel', 'application/x-ms-excel', 'application/x-excel', 'application/x-dos_ms_excel', 'application/xls', 'application/x-xls', 'application/excel', 'application/download', 'application/vnd.ms-office', 'application/msword'),
  4.  

(Добавление)
Пробовал вообще левый скрипт который грузит и обрабатывает xlsx. Так вот он все грузит и обрабатывает на ноуте и стационарнике. Значит проблема в Codeigniter Огорчение
Вот это уже капец !!!!
razorg1991 Отправлено: 28 Декабря, 2015 - 14:18:33 • Тема: Бред при загрузке файлов на сервер • Форум: Вопросы новичков

Ответов: 5
Просмотров: 708
Sail пишет:
razorg1991 пишет:
пробую загружать файлы типа xlsx

А файл точно с расширением xlsx, а не xls?


Да точно уже перепроверял с десяток раз. Вот щас даже ради интереса дал добро на xls - его тоже посылает! Не понял

PHP:
скопировать код в буфер обмена
  1.  
  2. $config['allowed_types'] = 'txt|csv|xlsx|xls';
  3.  


Посылает эти 2 расширения xlsx и xls причем на ноуте все норм. Я ни фига не могу понять!
razorg1991 Отправлено: 28 Декабря, 2015 - 13:41:36 • Тема: Бред при загрузке файлов на сервер • Форум: Вопросы новичков

Ответов: 5
Просмотров: 708
Накодил форму загрузки с обработчиком на разрешенный тип файла.
Ситуация такая (туповатая):
Есть ноут, на нем денвер. На ноуте все проверки на тип файла проходят норм.

PHP:
скопировать код в буфер обмена
  1.  
  2. $config['allowed_types'] = 'txt|csv|xlsx';
  3. $this->upload->initialize($config);
  4.  


Т.е. при загрузке иного расширения нас посылают...


Скопировал весь дистрибутив (не частями, а как есть всю папку, т.е. где-то ошибиться не мог) с проектом и базу на стационарный комп.
На компе стоит такой же денвер (может версия чуточку старее). Кинул туда папку с проектом и базу залил.

Далее пробую загружать файлы типа xlsx - и тут "балалайка" Не понял !!!!! Меня посылают и говорят, что "Загрузка файлов данного типа запрещена." Причем сообщение не системное php, а из Codeigniter. пробую другие типы загружать (txt csv) все норм грузит.

Я щас ничего не понял? Как это возможно? Или в конфиге сервера есть где-то запреты на загружаемые файлы?
razorg1991 Отправлено: 21 Декабря, 2015 - 14:15:50 • Тема: Цикл на PHP + вывод результатов цикла AJAX'ом • Форум: Вопросы новичков

Ответов: 2
Просмотров: 190
DelphinPRO пишет:
Длительная операция на каждой итерации пишет в базу (например) процент своего выполнения. Клиент делает регулярные запросы на сервер и выводит это значение из базы. Это если по-быстрому и по-простому.


1. Т.е. ajax запрос именно через промежуток времени?
2. "выводит это значение из базы" или результаты выполнения итерации надо записывать в базу и их выводить?
razorg1991 Отправлено: 21 Декабря, 2015 - 14:07:20 • Тема: Цикл на PHP + вывод результатов цикла AJAX'ом • Форум: Вопросы новичков

Ответов: 2
Просмотров: 190
Вопрос следующий:

На сервере обрабатываются данные в цикле. Итераций к примеру 100 (кол-во итераций я буду знать точно). Время выполнения цикла может занять немалое время (более 1 минуты).
Каждая итерация может также занимать разное кол-во времени.
Хочется реализовать следующее: чтобы при выполнении каждой итерации ее результат ajax'ом отображался в браузере.

Это надо делать ajax запросы через промежуток времени или после очередного ответа?

Есть ли какой-нибудь похожий пример?
razorg1991 Отправлено: 26 Октября, 2015 - 10:38:59 • Тема: Не записываются куки в Хром и Опера с локалхоста • Форум: Вопросы новичков

Ответов: 2
Просмотров: 197
SAD пишет:
http://stackoverflow.com/questions/10131824/codeigniter-session-does-not-work-in-google-chrome


Спасибо помогло Радость
Оставил в конфиге $config['cookie_domain'] пустым, теперь куки записываются Ха-ха и все работает во всех браузерах.
razorg1991 Отправлено: 26 Октября, 2015 - 10:00:14 • Тема: Не записываются куки в Хром и Опера с локалхоста • Форум: Вопросы новичков

Ответов: 2
Просмотров: 197
Использую сессии в Codeigniter 3. В firefox все работает на ура: захожу на сайт (локалхост) создаются куки и создается сессия в базе (id совпадают). При переходе на другую страницу сайта, все норм сессия сохраняется.

В опере и хроме все плохо Огорчение При посещении сайта куки не создаются, поэтому новые сессии плодятся при каждом посещении любой страницы Нахмурился

Подозреваю, что дело в браузерах. Подскажите пожалуйтса как это можно решить?
Если что работаю на денвере.
razorg1991 Отправлено: 26 Октября, 2015 - 09:54:36 • Тема: Передача переменной из одного метода в другой • Форум: Вопросы новичков

Ответов: 2
Просмотров: 189
DeepVarvar пишет:
Потому что это веб.
Это не реалтайм -- это отдельный запрос.
Записывай куку в БД и по куке оперделяй кто просит повтор отправки мыла.


В принципе потом самому дошло, закодился, устал )))) Но за идею спасибо )))
razorg1991 Отправлено: 21 Октября, 2015 - 22:38:04 • Тема: Передача переменной из одного метода в другой • Форум: Вопросы новичков

Ответов: 2
Просмотров: 189
Кодю на Codeigniter (в принципе не сильно важно), короче есть такой код

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. defined('BASEPATH') OR exit('No direct script access allowed');
  4.  
  5. class Registration extends CI_Controller {
  6.    
  7.     protected $password;
  8.    
  9.     public function index() {
  10.      
  11.      // загружаем модель
  12.        $this->load->model('users');
  13.        
  14.        // загружаем библиотеку email
  15.        $this->load->library('email');
  16.        
  17.        // загружаем библиотеку валидации форм
  18.        $this->load->library('form_validation');
  19.        
  20.        // конфигурируем правила валидации
  21.        $config = array(
  22.             array(
  23.                     'field' => 'email',
  24.                     'label' => 'E-mail',
  25.                     'rules' => 'required|valid_email|is_unique[users.email]',
  26.                     'errors' => array(
  27.                                     'is_unique' => 'Такой {field} уже существует!'
  28.                                 )
  29.             )
  30.        );
  31.        
  32.        // устанавливаем правила валидации
  33.        $this->form_validation->set_rules($config);
  34.        
  35.        // отправляем форму на сервер
  36.                 if ($this->form_validation->run() == FALSE)
  37.                 {
  38.                     // если форма не прошла валидацию
  39.                         $this->load->view(tpl().'auth/registration');
  40.                 }
  41.                 else
  42.                 {
  43.                     // если форма прошла валидацию
  44.                    
  45.                         // генерируем пароль
  46.                         $password = generate_pass();
  47.                        
  48.                         $this->password = $password;
  49.                        
  50.                         // помещаем пароль в пост данные для передачи на сервер
  51.                         $_POST['password'] = $password;
  52.                        
  53.                    
  54.                         //добавляем данные в базу данных с проверкой
  55.                         if($this->users->add_user()) {
  56.                            
  57.                             // отсылаем на почту письмо с данными для авторизации
  58.                             $this->email->from($this->config->item('app_email'), $this->config->item('app_name'));
  59.                             $this->email->to($this->input->post('email'));
  60.                             $this->email->subject('Регистрация в сервисе '.$this->config->item('app_name'));
  61.                             $this->email->message('Вы подали заявку на регистрацию в сервисе '.$this->config->item('app_name').'.<br> Регистрация прошла успешно! Ваши данные для входа в систему: <br> Email: <b>'.$this->input->post('email').'</b><br> Пароль: <b>'.$this->input->post('password').'</b><br> Вход в систему: <a href='.base_url($this->config->item('login_page')).'>'.base_url($this->config->item('login_page')).'</a>');
  62.                             $this->email->send();
  63.                            
  64.                            
  65.                             // показываем страницу подтверждения регистрации
  66.                             $this->load->view(tpl().'auth/registration_success');
  67.                            
  68.                         }
  69.                         else {
  70.                             // показываем страницу ошибки
  71.                             $this->load->view(tpl().'auth/registration_error');
  72.                         }
  73.                        
  74.                 }
  75.        
  76.     }
  77.    
  78.     public function repeat() {
  79.         echo 'повтор';
  80.         echo $this->password;
  81.     }
  82.    
  83. }
  84.  


В виде метод repeat вызывается просто кнопкой <a type="button" href="<? echo base_url(); ?>registration/repeat" class="btn btn-warning btn-block btn-flat">Отправить данные повторно</a>

В базу и email пароль идет.
И тут я не могу понять почему не передается пароль в метод repeat? Может кто-то объяснить?
razorg1991 Отправлено: 27 Сентября, 2015 - 15:02:40 • Тема: Сессии в CodeIgniter 3 (длительность сессии) • Форум: CMS и фреймворки

Ответов: 3
Просмотров: 1326
andrewkard пишет:
razorg1991
Посмотрите тут: http://habrahabr.ru/post/130853/


Это я уже видел! Во-первых это не для 3-й версии, а для 2-й, а значит старье и не актуально! А во-вторых это не решение, а костыль (большинство комментариев тому подтверждение)!
razorg1991 Отправлено: 27 Сентября, 2015 - 13:52:04 • Тема: Сессии в CodeIgniter 3 (длительность сессии) • Форум: CMS и фреймворки

Ответов: 3
Просмотров: 1326
В конфиге установил следующее:

PHP:
скопировать код в буфер обмена
  1.  
  2. $config['sess_driver'] = 'files';
  3. $config['sess_cookie_name'] = 'rz_session';
  4. $config['sess_expiration'] = 0;
  5. $config['sess_save_path'] = NULL;
  6. $config['sess_match_ip'] = TRUE;
  7. $config['sess_time_to_update'] = 0;
  8. $config['sess_regenerate_destroy'] = FALSE;
  9.  


Правильно ли я понимаю что установкой $config['sess_expiration'] = 0 и $config['sess_time_to_update'] = 0 решается вопрос проблема сессий как CodeIgniter 2 ?
Читал мануал, но не до конца понял. Нужно, чтобы юзер раз авторизировался и потом ему не приходилось бы каждый раз при заходе на сайт проходить авторизацию. Сессия должна сохраняться как минимум месяц.

Подскажите пжлст
razorg1991 Отправлено: 06 Сентября, 2015 - 13:15:01 • Тема: curl и ip • Форум: Вопросы новичков

Ответов: 1
Просмотров: 135
Вопрос следующего характера.

При обращении к другому сайту (к предоставляемому им api) со своего сайта, может ли тот другой сайт определить ip моего сайта?

Запрос следующего содержания

PHP:
скопировать код в буфер обмена
  1.  
  2. $url = " урл гет запроса через api";
  3. $headers = array(
  4.   "Host: хост того другого сайта",
  5.   "Accept: */*",
  6.   "Authorization: api ключ"
  7. );
  8. $ch = curl_init();
  9. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  10. curl_setopt($ch, CURLOPT_URL,$url);
  11. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  12. $data = curl_exec($ch);
  13.  


По curl из информации о себе только api ключ. А возможно ли отследить с какого ip пришел этот запрос?

И еще один вопрос: У двух сайтов может ли быть один ip (если к примеру на одном vps или vds находятся)?

Вопросы может конечно немного туповаты, но все же хотелось бы получить ответы Не понял

Страниц (9): « 1 [2] 3 4 5 6 7 8 9 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB