PHP.SU

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

Страниц (4): [1] 2 3 4 »

> Найдено сообщений: 52
kir55rus Отправлено: 23 Июля, 2014 - 13:44:23 • Тема: Убрать или заменить emoji • Форум: Вопросы новичков

Ответов: 1
Просмотров: 497
Здравствуйте. Есть строка с emoji
Необходимо убрать или заменить все смайлы из нее

На тестовом сервере htmlentities преобразует всё кроме emoji Недовольство, огорчение

Когда пытаюсь отправить какой-нибудь emoji-смайл сюда на форум, то он заменяется, если заключить его в BB-код PHP или CODE.
Например 👌 преобразуется в

Подскажите, как удалить/заменить emoji из строки, либо расскажите, как реализована здесь (на php.su) замена
kir55rus Отправлено: 03 Июля, 2014 - 18:58:33 • Тема: Вызов деструктора класса при сбое в работе скрипта • Форум: Объектно-ориентированное программирование

Ответов: 3
Просмотров: 1252
caballero пишет:
зависит от того корректно ли закрывается скрипт.
в любом случае смысла в деструкторе нет - скрипт(точнее исполняюзая среда) и сам освободит все ресурсы


Меня интересует, спадет ли блокировка файла flock, если скрипт внезапно прекратит работу.
Прочитал, что с версии php 5.3.2 автоматическое снятие блокировки при закрытии было удалено. А значит, что разблокировать файл необходимо самому.
Создал для этого небольшой класс и хочу убедиться, что он будет исправно работать.

PHP:
скопировать код в буфер обмена
  1. class Lock
  2. {
  3.         private $fp;
  4.        
  5.         public function __construct()
  6.         {
  7.                 //Пробуем открыть и заблокировать файл
  8.                 $this->fp = fopen('file.lock', 'r+');
  9.                 return flock($this->fp, LOCK_EX);
  10.                
  11.         }
  12.        
  13.         public function __destruct()
  14.         {
  15.                 flock($this->fp, LOCK_UN);
  16.         }
  17.        
  18. }
kir55rus Отправлено: 03 Июля, 2014 - 16:23:58 • Тема: Вызов деструктора класса при сбое в работе скрипта • Форум: Объектно-ориентированное программирование

Ответов: 3
Просмотров: 1252
Вызывается ли деструктор при сбое в работе скрипта? Например, если скрипт прерывает работу из-за лимитов сервера, либо если его закрывают через консоль, либо возникат фатальная ошибка? Могут ли быть такие случаи, когда скрипт прекратил работу, а деструктор класса не был вызван?
kir55rus Отправлено: 29 Декабря, 2013 - 17:02:33 • Тема: Пустые поля или новая таблица? • Форум: Хранение данных, их вывод и обработка

Ответов: 2
Просмотров: 1037
Здравствуйте
На сайте ~98% постов не имеют заголовка и краткого описания (превью новости)
Поэтому задумался над вопросом, как лучше хранить эти два поля

Первый вариант:
-Таблица posts
--post_id
--post_title
--post_description
--post_text

Второй:
-Таблица posts
--post_id
--post_text

-Таблица postmeta
--postmeta_id
--post_id
--postmeta_key
--postmeta_value


Вот пример первого варианта:

Нажмите для увеличения


И второго:

Нажмите для увеличения

Нажмите для увеличения


Как лучше сделать?

P.S. постов многовато. ~50000+
kir55rus Отправлено: 29 Декабря, 2013 - 14:31:07 • Тема: SELECT CASE WHEN ... THEN ... ELSE... - Ошибка operand should contain 1 column(s) • Форум: SQL и Архитектура БД

Ответов: 0
Просмотров: 36
Здравствуйте

Такой запрос отлично работает:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT CASE
  3. WHEN (SELECT `categories`.`class_id` FROM `categories` WHERE `categories`.`cat_url`='/patch/to/page/')
  4. THEN (SELECT `classes`.`class_file` FROM `classes`, `categories` WHERE `classes`.`class_id`=`categories`.`class_id` AND `categories`.`cat_url`='/patch/to/page/')
  5. ELSE (SELECT `classes`.`class_file` FROM `classes` WHERE `classes`.`class_id`=4) END


Но когда пытаюсь вытащить не одно поле `classes`.`class_file`, а два: `classes`.`class_file` и `classes`.`class_name` вылезает ошибка о количестве столбцов

Получается такой запрос:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT CASE
  3. WHEN (SELECT `categories`.`class_id` FROM `categories` WHERE `categories`.`cat_url`='/patch/to/page/')
  4. THEN (SELECT `classes`.`class_file`,`classes`.`class_name` FROM `classes`, `categories` WHERE `classes`.`class_id`=`categories`.`class_id` AND `categories`.`cat_url`='/patch/to/page/')
  5. ELSE (SELECT `classes`.`class_file`,`classes`.`class_name` FROM `classes` WHERE `classes`.`class_id`=4) END



На сайте ЧПУ
Структура таблиц:

Нажмите для увеличения


То есть, алгоритм примерно такой:

Нажмите для увеличения


Подскажите, пожалуйста, как вытащить 2 поля `classes`.`class_file` и `classes`.`class_name` по алгоритму, описанному выше
kir55rus Отправлено: 12 Декабря, 2013 - 17:17:43 • Тема: Выборка и сортировка данных по месяцу и дню. Без учета года • Форум: SQL и Архитектура БД

Ответов: 0
Просмотров: 17
Здравствуйте

Есть таблица с праздниками:
-holidays
--holiday_id (int)
--holiday_title (varchar)
--holiday_date (date)

Нужно вывести 10 ближайших праздников отсортированных по дате. Подскажите, как написать sql-запрос


Был вариант
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `holidays` WHERE DAY(`holiday_date`) >= 12 AND MONTH(`holiday_date`) >= 12 ORDER BY MONTH(`holiday_date`), DAY(`holiday_date`)


(День и месяц подставляются в php-скрипте)

Но тогда на рубеже годов не будут отображаться праздники наступающего года
kir55rus Отправлено: 07 Декабря, 2013 - 13:02:19 • Тема: ЧПУ. Проверка корректности url'a, определение категории • Форум: Вопросы новичков

Ответов: 5
Просмотров: 260
DeepVarvar пишет:
kir55rus пишет:
Руки отвалятся прописывать для каждой страницы свой url
Ну вот пример, где там руки отвалятся?
(Добавление)
Он там автоматом от названия генерится.


Понял суть. Возьму на заметку, как запасной вариант

Пугает лишь такая картина:
Была категория "Новости" с url "/Новости". Редактирую url на "/Новости2"
Захожу на сайт, перехожу на страницу со статьей (адрес "/Новости/Статья...")
В силу своей привычки я не нажимаю "Назад" в браузере, а стираю в адресной строке "/Статья...", ожидая попасть в раздел с новостями. Попадаю на 404

Ваш вариант отличается от моего лишь тем, что у меня в планах было редактировать все значения в базе, а у Вас - одну запись
Благодарю за вариант
kir55rus Отправлено: 07 Декабря, 2013 - 12:38:21 • Тема: ЧПУ. Проверка корректности url'a, определение категории • Форум: Вопросы новичков

Ответов: 5
Просмотров: 260
DeepVarvar пишет:
Вот ты гемор себе нашел..
Сделай каждому документу уникальный УРЛ и не парься.


Ожидается около 50-100 категорий (родительские, дочерние)
В каждой категории от 50 до 1000 страниц (постраничная навигация)
+ страницы с постами

Руки отвалятся прописывать для каждой страницы свой url. А если добавится новая страница в категории, то придется прибавлять +1 ко всем имеющимся (постраничная навигация)
kir55rus Отправлено: 07 Декабря, 2013 - 11:56:12 • Тема: ЧПУ. Проверка корректности url'a, определение категории • Форум: Вопросы новичков

Ответов: 5
Просмотров: 260
Здравствуйте

Есть ссылка вида: site.ru/category/sub-cat1/sub-ca t2/sub-cat3/cat-with-post/post.h tml

Есть 3 таблицы:
-categories
--cat_id
--cat_parent_id
--cat_title (название категории на русском)
--cat_name (название категории транслитом. Именно эта строка находится в url: "sub-cat1", "cat-with-post")

-posts
--post_id
--post_title (название на русском)
--post_text
--post_name (название на транслите)

-links (Так как статья может принадлежать сразу нескольким категориям, создана эта таблица)
--link_id
--post_id
--cat_id


В скрипте url разбивается и заносится в массив:
CODE (htmlphp):
скопировать код в буфер обмена
  1. [0] => category
  2. [1] => sub-cat1
  3. [2] => sub-cat2
  4. [3] => sub-cat3
  5. [4] => cat-with-post
  6. [5] => post


Нужно:
1. Определить cat_id категории статьи (cat-with-post)
2. Проверить корректность url.

Поясняю:
Первое:
Если делать запрос типа
SELECT `cat_id` FROM `categories` WHERE `cat_name`='cat_with_post'
То нельзя будет использовать одинаковые имена категорий, иначе они будут путаться
Чтобы путаницы не было, необходимо искать cat_id исходя из поля cat_parent_id (идентификатор категории-родителя). Проблема тут в том, что при большой вложенности к базе будет очень много запросов
Выход из данной ситуации вижу один - хранить в базе не отдельные кусочки ("sub-cat3", cat-with-post"...), а полностью url ("category/sub-cat1/sub-cat2/sub-cat3/cat-with-post/"). Но тут возникает другая проблема. Если я захочу изменить название какой-нибудь категории, то редактировать придется всю таблицу (Например, захочу заменить "sub-cat2" на "subcat-2").

Второе:
Если определять идентификатор только cat-with-post, а на остальное просто не смотреть, то статья станет доступной по адресам:
site.ru/cat-with-post/post.html
site.ru/sub1/cat-with-post/post. html и т.д.
А это не очень хорошо. Поэтому нужно проверять правильность иерархии. Тут бы отлично бы справился второй вариант, но меня отпугивает возможная проблема с редактированием


Вот такие пироги.. Помогите найти решение


P.S. Как сгенерировать структуру таблицы типа ?
CODE (htmlphp):
скопировать код в буфер обмена
  1. +-------------+
  2. |    name     |
  3. +-------------+
  4. |    123      |
  5. +-------------+

Не руками ведь их пишут...


UPD: Раньше использовал ссылки типа site.ru/1.cat/5.sub/123.post.hym l
Где 1,5,123 - идентификаторы статьи и категорий. Я просто брал эти id, а на сами названия не смотрел. Поэтому в скором времени обнаружилась ошибка, что одна и та же статья доступна по адресам 1./5.sub/123.----.hyml, 1.caaaat/5./123.pt.hyml и т.д.
Да и смотрятся такие url'ы ужасно, раздражают глаза. Куда лучше, когда в ссылке нет id Улыбка Поэтому в новом варианте хочу использовать формат, как писал в начала сообщения
kir55rus Отправлено: 19 Октября, 2013 - 10:04:35 • Тема: json в mysql • Форум: Работа с СУБД

Ответов: 1
Просмотров: 1016
Здравствуйте
Нужно ли обрабатывать json-строку функцией mysql_real_escape_string перед тем, как ее заносить в базу?

То есть, 2 варианта:
PHP:
скопировать код в буфер обмена
  1.  
  2. function xsql($request){
  3.         global $db;
  4.         $result = mysql_query($request,$db);
  5. if (!$result){
  6.         echo "<p>Запрос на выборку данных из базы не прошел.<br /> <strong>Код ошибки:</strong></p>";
  7.         exit(mysql_error());
  8. }
  9.         return $result;        
  10.        
  11. }
  12.  
  13. $arr = array('string',2,3);
  14. xsql("INSERT INTO `table` (`json_data`) VALUES ('". json_encode($arr) ."')");
  15.  


Или

PHP:
скопировать код в буфер обмена
  1.  
  2. $arr = array('string',2,3);
  3. xsql("INSERT INTO `table` (`json_data`) VALUES ('". mysql_real_escape_string( json_encode($arr) ) ."')");
  4.  
kir55rus Отправлено: 19 Октября, 2013 - 05:59:52 • Тема: Структура бд для статистики сайта • Форум: SQL и Архитектура БД

Ответов: 1
Просмотров: 28
Еще есть вариант, изменить таблицу stats, а именно добавить поле source
В этом поле будет храниться в формате json массив:
Array(
'Site1.ru' => array( 'views' => 20, 'hits' => 10, 'a_clicks' => 5, 'u_clicks' => 2),
'Site2.ru' => array( 'views' => 30, 'hits' => 20, 'a_clicks' => 6, 'u_clicks' => 4),
...
)
И каждый раз, при обновлении статистики, обновлять этот массив.
Алгоритм:
PHP:
скопировать код в буфер обмена
  1.  $sources = json_decode($row['source'], true);
  2. /* увеличение значений
  3. Например, $sources[$utm_content]['views']++;
  4. */
  5. $sources = json_encode($sources);
  6. //обновление записи в бд
  7.  


Но боюсь, что это даст большую нагрузку на сервер. Каждый раз кодировать и раскодировать из json. Есть ли еще вариант какой-нибудь?
kir55rus Отправлено: 18 Октября, 2013 - 18:38:53 • Тема: Структура бд для статистики сайта • Форум: SQL и Архитектура БД

Ответов: 1
Просмотров: 28
Здравствуйте

Сайтом пользуются N человек ( 10<N<500 )
Каждый из них может создать по 1-100 потоков для приема трафика
Нужно отслеживать статистику по этим потокам по след.пунктам:
-хиты
-просмотры
-уникальный клики по ссылке http://site[dot]ru/go/123
-все клики по этой ссылке
-источники трафика

С первыми 4-мя проблем не возникло. Создал 2 таблицы для этого:
CODE (SQL):
скопировать код в буфер обмена
  1. --
  2. -- Структура таблицы `ips`
  3. --
  4.  
  5. CREATE TABLE IF NOT EXISTS `ips` (
  6.   `id` int(11) NOT NULL AUTO_INCREMENT,
  7.   `id_flow` int(11) NOT NULL,
  8.   `type` int(1) NOT NULL,
  9.   `ip` int(11) UNSIGNED NOT NULL,
  10.   PRIMARY KEY (`id`)
  11. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
  12.  
  13. -- --------------------------------------------------------
  14.  
  15. --
  16. -- Структура таблицы `stats`
  17. --
  18.  
  19. CREATE TABLE IF NOT EXISTS `stats` (
  20.   `id` int(11) NOT NULL AUTO_INCREMENT,
  21.   `id_flow` int(11) NOT NULL,
  22.   `date` date NOT NULL,
  23.   `views` int(11) NOT NULL,
  24.   `hits` int(11) NOT NULL,
  25.   `a_clicks` int(11) NOT NULL,
  26.   `u_clicks` int(11) NOT NULL,
  27.   PRIMARY KEY (`id`)
  28. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


Исходник счетчика:
PHP:
скопировать код в буфер обмена
  1. //Статистика
  2.  
  3. $date = date("Y-m-d");
  4. $ip = sprintf('%u', ip2long($_SERVER["REMOTE_ADDR"]));
  5. $id_flow = $GLOBALS['id_flow'];
  6. $id_go = $GLOBALS['id_go'];
  7.  
  8. /*
  9. В БД поле `type` обозначает тип статистики:
  10. 0 - просмотры/хиты
  11. 1 - клики
  12. */
  13.  
  14. //Если это переход на целевую страницу
  15. if($id_go){
  16.        
  17.         //Запрашиваем статистику за сегодняшнее число для данного потока
  18.         $s_res = xsql("SELECT `id` FROM `stats` WHERE `date`='". $date ."' AND `id_flow`=". $id_flow);
  19.        
  20.         //Если данных нет, то это первый посетитель за сегодня. Чистим вчерашние Ip и создаем запись для сегодняшнего дня
  21.         if(mysql_num_rows($s_res) == 0){
  22.                 xsql("DELETE FROM `ips` WHERE `id_flow`=". $id_flow);
  23.                
  24.                 xsql("INSERT INTO `stats` (`id_flow`, `date`, `views`, `hits`, `a_clicks`, `u_clicks`) VALUES (". $id_flow .", '". $date ."', 1, 1, 1, 1)");
  25.                 xsql("INSERT INTO `ips` (`id_flow`, `type`, `ip`) VALUES (". $id_flow .", 1, ". $ip .")");
  26.                
  27.         }else{ //Если уже есть ячейка для сегодняшнего дня, обновляем ее
  28.                
  29.                 $s_row = mysql_fetch_assoc($s_res);
  30.                
  31.                 //Если это уникальный клик
  32.                 $sip_res = xsql("SELECT `id` FROM `ips` WHERE `ip`=". $ip ." AND `id_flow`=". $id_flow ." AND `type`=1");
  33.                 if(mysql_num_rows($sip_res) == 0){
  34.                        
  35.                         //Прибавляем +1 к уникальным и не уникальным кликам
  36.                         xsql("UPDATE `stats` SET `a_clicks`=`a_clicks`+1, `u_clicks`=`u_clicks`+1 WHERE `id`=". $s_row['id']);
  37.                        
  38.                         //Заносим ip в базу данных
  39.                         xsql("INSERT INTO `ips` (`id_flow`, `type`, `ip`) VALUES (". $id_flow .", 1, ". $ip .")");
  40.                 }else{//Если это не уникальный клик
  41.                        
  42.                         //Прибаляем +1 к не уникальным кликам
  43.                         xsql("UPDATE `stats` SET `a_clicks`=`a_clicks`+1 WHERE `id`=". $s_row['id']);
  44.                 }
  45.                
  46.         }
  47.        
  48.        
  49. }else{ //Если просмотр страницы приема трафика
  50.        
  51.         //Запрашиваем статистику за сегодняшнее число для данного потока
  52.         $s_res = xsql("SELECT `id` FROM `stats` WHERE `date`='". $date ."' AND `id_flow`=". $id_flow);
  53.        
  54.         //Если данных нет, то это первый посетитель за сегодня. Чистим вчерашние Ip и создаем запись для сегодняшнего дня
  55.         if(mysql_num_rows($s_res) == 0){
  56.                 xsql("DELETE FROM `ips` WHERE `id_flow`=". $id_flow);
  57.                
  58.                 xsql("INSERT INTO `stats` (`id_flow`, `date`, `views`, `hits`, `a_clicks`, `u_clicks`) VALUES (". $id_flow .", '". $date ."', 1, 1, 0, 0)");
  59.                 xsql("INSERT INTO `ips` (`id_flow`, `type`, `ip`) VALUES (". $id_flow .", 0, ". $ip .")");
  60.                
  61.         }else{ //Если уже есть ячейка для сегодняшнего дня, обновляем ее
  62.                
  63.                 $s_row = mysql_fetch_assoc($s_res);
  64.                
  65.                 //Если Это уникальный посетитель
  66.                 $sip_res = xsql("SELECT `id` FROM `ips` WHERE `ip`=". $ip ." AND `id_flow`=". $id_flow ." AND `type`=0");
  67.                 if(mysql_num_rows($sip_res) == 0){
  68.                        
  69.                         //Прибавляем +1 к просмотру и хиту
  70.                         xsql("UPDATE `stats` SET `views`=`views`+1, `hits`=`hits`+1 WHERE `id`=". $s_row['id']);
  71.                        
  72.                         //Заносим ip в базу данных
  73.                         xsql("INSERT INTO `ips` (`id_flow`, `type`, `ip`) VALUES (". $id_flow .", 0, ". $ip .")");
  74.                 }else{//Если это не уникальный посетитель
  75.                        
  76.                         //Прибаляем +1 к просмотрам
  77.                         xsql("UPDATE `stats` SET `views`=`views`+1 WHERE `id`=". $s_row['id']);
  78.                 }
  79.                
  80.         }
  81.        
  82.        
  83. }
  84.  


Этот код инклудится в скрипт отдачи страниц для приема трафика (Его содержимое не важно. За исключением 2-х моментов: $id_flow - поток трафика, который создает юзер, $id_go используется для того, чтобы отличить переход на целевую страницу от просмотра одностраничника)


Вот так собирается стата по просмотрам и кликам. Ее можно сортировать по дате (Например, просмотреть статистику с 1 по 20 числа)

Теперь вопрос. Как лучше прикрутить сюда сортировку по сайтам-источникам? Статистику по ним нужно будет сортировать по дням (Посмотреть, сколько с источника было уникальных посетителей, сколько кликов по ссылке за определенный срок). То есть, должны собираться первые 4 параметра!
Была идея создать таблицы: хиты, просмотры, уник.клики, все клики. А при просмотре статистики запрашивать количество записей. Но думаю, что это плохой вариант, и должен быть другой способ. Не будут ведь так хранить данные какие-нибудь гиганты статистик, как я.метрика, или партнерские программы, например, CPA-пп


В общем, как нужно сконструировать таблицы в бд для моих целей? Заранее спасибо
kir55rus Отправлено: 22 Августа, 2013 - 12:44:12 • Тема: Создание объекта одного класса внутри другого класса • Форум: Объектно-ориентированное программирование

Ответов: 3
Просмотров: 1767
Здравствуйте! Только начинаю разбираться с ООП, возник вопрос.

Почему нельзя создать объект одного класса внутри другого класса?

Пример: (11 строка)
PHP:
скопировать код в буфер обмена
  1. class my1{
  2.         private $a=5;
  3.        
  4.         public function get(){
  5.                 return $this->a;
  6.         }
  7.        
  8. }
  9.  
  10. class my2{
  11.         private $b = new my1();
  12.        
  13. }



На деле хочу сделать следующее:
Есть класс-обертка для curl
Хочу написать класс, с помощью которого буду авторизовываться/совершать действия/выходить из аккаунта на одном сайте
Для этого мне надо использовать некоторые методы из класса-обертки


Может неправильно строю код? Набросайте пример, как надо действовать в таком случае (где и как создавать объект). Спасибо!


P.S. Как я понял
class my_class{...} - сам класс, а
$my_obj = new my_class(); - его объект. Поправьте, если не прав
kir55rus Отправлено: 31 Мая, 2013 - 18:39:16 • Тема: Загрузка файлов на сервер в папку с правами 777 • Форум: Работа с файловой системой и файлами

Ответов: 2
Просмотров: 1948
Zuldek пишет:
например через FTP, SSH. Ну и через шел по любому доступному протоколу.
Никогда не используйте исходные файлы. Сохраняйте обработанную (отресайзенную) копию, оригинал зачем держать?


SSH отключен.
Чтобы залить через FTP, нужно знать логин и пароль для доступа, верно?

Цитата:
Ну и через шел

Шелл еще нужно загрузить, если мы думаем об одном и том же... Я имею ввиду шеллы типа WSO

Цитата:
Сохраняйте обработанную (отресайзенную) копию
Ок, спасибо. Над этим поработаю
kir55rus Отправлено: 30 Мая, 2013 - 11:23:44 • Тема: Загрузка файлов на сервер в папку с правами 777 • Форум: Работа с файловой системой и файлами

Ответов: 2
Просмотров: 1948
Здравствуйте!

Есть папка на сервере с правами 777
Папка доступна пользователям для просмотра, то есть, находится она внутри каталога сайта, а не выше него.
Может ли кто-нибудь загрузить в нее файл, не используя интерфейс сайта?


вопрос 2.
Будьте добры, укажите на ошибки в коде (в плане безопасности)

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. function upload_img(){
  4.  
  5.         if( filesize($_FILES['img']['tmp_name']) > 204800) exit("Error! Size more than 200KB!"); //если размер больше 200кб, выдаем ошибку
  6.         $uploadfile = $_SERVER['DOCUMENT_ROOT'].'/img/'; //каталог для загрузки файлов
  7.        
  8.         if (preg_match('#\.(jpeg|jpg|gif|png)$#iUs', $_FILES['img']['name'], $out) && // проверяем расширение и запоминаем его
  9.  
  10. move_uploaded_file($_FILES['img']['tmp_name'], $uploadfile.($name=md5(time().basename($_FILES['img']['name'])).'.'.$out[1]) )) {
  11. //перемещаем загруженный файл. имя генерируем с помощью md5, в конец подставляем найденное ранее расширение
  12.  
  13.                 return $name; //если все ок, возвращаем имя файла после загрузки
  14.         }
  15.        
  16.         else exit("Error uploading");
  17. }
  18.  
  19. if( !empty($_FILES['img']) ){
  20.  
  21. $img = upload_img();
  22.                
  23. echo 'Загрузили файл '.$img.' <br>';
  24.                
  25.         }
  26.  
  27. ?>
  28.  
  29. <form action="index.php" method="post" enctype="multipart/form-data">
  30.         <p>Картинка: (max: 200KB) <input type="file" name="img" ></p>
  31.         <input type="submit" value="Add">
  32.         </form>
  33.  


Так же в папке img находится файл .htaccess
CODE (htmlphp):
скопировать код в буфер обмена
  1. php_flag engine 0
  2. AddType "text/html" .php .cgi .pl .fcgi .fpl .phtml .shtml .php2 .php3 .php4 .php5 .asp .jsp

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB