PHP.SU

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

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

> Найдено сообщений: 77
igosja Отправлено: 08 Ноября, 2013 - 16:53:45 • Тема: Перенаправление в curl/crontab • Форум: Операционная система и системные вызовы

Ответов: 3
Просмотров: 2672
Пытаюсь освоится с curl и прошу помощи.

Есть папка на сайте http://site/test/

В этой папке 3 файла: test.php, 1.php, 2.php + таблица mysql
`test` (
`test_id` int(11) NOT NULL AUTO_INCREMENT,
`test` text NOT NULL,
PRIMARY KEY (`test_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

Запуская файл test.php в crontab, я пытаюсь выполнить 1.php и перенаправиться на 2.php, но выполняется только файл 1.php.

Листинг файлов:
1.php
PHP:
скопировать код в буфер обмена
  1. include '../database.php';
  2. $test_update_sql = mysql_query ("       INSERT INTO `test` (`test`)
  3.                                         VALUES ('insert');");
  4. $href = 'http://site/test/2.php';
  5. header("refresh: 2; url=$href");

2.php
PHP:
скопировать код в буфер обмена
  1. include '../database.php';
  2. $test_update_sql = mysql_query ("       INSERT INTO `test` (`test`)
  3.                                         VALUES ('delete');");

test.php
PHP:
скопировать код в буфер обмена
  1. $ch = curl_init();
  2. curl_setopt ($ch, CURLOPT_URL, "http://site/test/1.php");
  3. curl_setopt ($ch, CURLOPT_USERAGENT , "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7");
  4. curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);  //Переходим по редиректам
  5. curl_exec ($ch);


У меня в таблице только записи "insert".
Подскажите, как перенаправиться на файл 2.php?
Усть вариант сделать то же через JS,
PHP:
скопировать код в буфер обмена
  1. print   '<script type="text/javascript">
  2. function doit()
  3. {
  4.         window.location.href="'.$href.'";
  5. }
  6. setTimeout(doit, 2000);
  7. </script>';

но он тоже не работает в cron/curl.
igosja Отправлено: 24 Октября, 2013 - 08:18:48 • Тема: Не правильно работает SELECT mysql • Форум: Работа с СУБД

Ответов: 4
Просмотров: 1638
esterio пишет:
да здраствует sql-иньекция

Это очень помогает в решении моей проблемы.
igosja Отправлено: 23 Октября, 2013 - 23:08:34 • Тема: Вопрос к математикам • Форум: Прочее

Ответов: 194
Просмотров: 2219
ALEN пишет:
должно же быть какое-то значительное изменение в небесном полотне. А так все практически на месте

Выдержка из популярнейшей википедии:

"Альфа Малой Медведицы (Полярная звезда) — звезда +2,0m звёздной величины в созвездии Малой Медведицы, расположенная вблизи Северного полюса мира.
Из-за лунно-солнечной прецессии земная ось движется по кругу с радиусом 23° со скоростью около 0,5 градуса за 100 лет. Поэтому в разное время ближайшими к полюсу Мира становятся разные звёзды. Так, в додинастический период древнего Египта (5000 лет назад) такой звездой была Тубан (альфа Дракона), в начале нашей эры ярких звёзд у полюса мира вообще не было. Через 2000 лет ближайшей к полюсу Мира станет Альраи (гамма Цефея), а через 12 000 лет — Вега (альфа Лиры).
Тем не менее, слово «Полярная» является именем собственным и относится именно к α Малой Медведицы."

Так что "все практически на месте" - это не совсем верное утверждение.
igosja Отправлено: 23 Октября, 2013 - 20:29:55 • Тема: Не правильно работает SELECT mysql • Форум: Работа с СУБД

Ответов: 4
Просмотров: 1638
Здравствуйте, форумчане.
Прошу вашей помощи со следующей проблемой.

У меня на разрабатываемом сайте есть необходимость пересчета больших объемов статистической информации (онлайн менеджер, пересчет игровой ситуации), пересчитывающие скрипты разбиты на файлы, которые запускаются цепочкой (для избежания сверхлимитного использования процессорного времени хостинга).

Все файлы работаю нормально, кроме одного файла - player_phisical.php?limit=0.
Код проблемной части файла:
PHP:
скопировать код в буфер обмена
  1. include '../../database.php';
  2. include '../../function.php';
  3.  
  4. $limit = $_GET['limit'];
  5. $player_sql = mysql_query("     SELECT `player_id`, `player_phisical`
  6.                                 FROM `player`
  7.                                 WHERE `player_age`<'40'
  8.                                 LIMIT $limit, 100");
  9. $count_player = mysql_num_rows($player_sql);
  10. if ($count_player > 0)
  11. {
  12.         $shedule_sql = mysql_query("    SELECT `shedule_id`
  13.                                         FROM `game`, `shedule`
  14.                                         WHERE `game_played`='0'
  15.                                         AND `game_shedule_id`=`shedule_id`
  16.                                         ORDER BY `shedule_date`
  17.                                         LIMIT 1");
  18.         $shedule_id_new = mysql_result($shedule_sql,0,'shedule_id');
  19.         print $shedule_id_new; /*Строка введена для поиска ошибки - ошибка именно в этой выборке. Потом идут расчеты с обновлением таблиц*/
  20.         $limit = $limit + 100;
  21.         $href = 'player_phisical.php?limit='.$limit;
  22.         print   '<script type="text/javascript">
  23.                 function doit()
  24.                 {
  25.                         window.location.href="'.$href.'";
  26.                 }
  27.                 setTimeout(doit, 1);
  28.                 </script>';
  29. }
  30. else
  31. {
  32.         $href = 'player_realpower.php?limit=0';
  33.         print   '<script type="text/javascript">
  34.                 function doit()
  35.                 {
  36.                         window.location.href="'.$href.'";
  37.                 }
  38.                 setTimeout(doit, 1);
  39.                 </script>';
  40. }


Проблема в том, что при запуске этого файла в общей цепочке начиная с index.php значение переменной $shedule_id_new выбирается неправильное - оно постоянно равно 39. Если же файл запустить отдельно через адресную строку .../player_phisical.php?limit=0, переменная выбирается правильно - она варьируется в диапазоне от 1 до 92. Кроме limit файл ничего не получает с предыдущего скрипта, переменная не переприсвается.

Подскажите в чем может быть проблема, так как я додуматься никак не могу.
igosja Отправлено: 15 Октября, 2013 - 20:40:02 • Тема: Не понимаю ООП • Форум: Объектно-ориентированное программирование

Ответов: 112
Просмотров: 35327
А если брать в общем, то я думаю, что конечный результат больше зависит от прослойки между креслом и монитором, чем от использования или неиспользования ООП.
igosja Отправлено: 18 Сентября, 2013 - 14:11:50 • Тема: Не понимаю ООП • Форум: Объектно-ориентированное программирование

Ответов: 112
Просмотров: 35327
Я с ООП не дружу, о чем писал страницы 3-4 назад.
Вот почитал литературу, появилась мысль, прошу опытных людей сказать, правильная она или нет.
Мысль такова - ООП это дальнейшие шаги к абстракции; если бы программирование не двигалось в сторону абстракции, мы бы до сих пор программировали единицами и ноликами.

То есть, функция, к примеру, round(х,у) - это тот же класс. Мы знаем как функция принимает входящие значения (х - округляемое число, у - степень округления) и знаем как она выдает результат. Что происходит внутри (в ядре функции) - это скрыто. Так же с классом.

Если мысль я уловил правильно, то дальнейшее объяснение того, что такое ООП и зачем оно нужно мне уже не требуется.
igosja Отправлено: 29 Июля, 2013 - 15:32:05 • Тема: Проектировка БД под спортивную турнирную таблицу • Форум: SQL и Архитектура БД

Ответов: 0
Просмотров: 21
Приветствую.

На сайте есть задача спроектировать БД под спортивную турнирную таблицу с 2 возможностями:
- просмотр положения команд после первого, пятого, десятого... тура в любой момент турнирной дистанции (то есть отыграли 20 туров, перешли по ссылке и посмотрели турнирную таблицу после 10 тура)
- обозначить изменения в турнирной таблице после очередного тура (команда поднялась/опустилась на 1,2,5 позиций).

Прошу дать мне идеи реализации этих двух возможностей, а не код, так как сделать статическую таблицу с турнирным положением на текущий момент не проблема, вопрос в просмотре истории за предыдущие туры.

Моя идея - создать таблицу, где будет храниться информация за каждый тур, а потом оттуда сплюсовывать результаты за нужные туры. Но это не очень "красивая" проектировка БД.

Может подскажете более простой вариант проектировки?
igosja Отправлено: 20 Июля, 2013 - 22:14:46 • Тема: Include без выполнения кода. • Форум: Вопросы новичков

Ответов: 16
Просмотров: 1340
esterio пишет:
igosja пишет:
простыня в 1500 строк
Следствие плохой проектировкы
Попали в точку. База данных была недостаточно хорошо нормализирована, и теперь приходиться писать километровые файлы для работы с таблицами.
igosja Отправлено: 16 Июля, 2013 - 17:08:14 • Тема: Include без выполнения кода. • Форум: Вопросы новичков

Ответов: 16
Просмотров: 1340
Всем спасибо. Единственным нормальным ответом был самый первый, остальное - обычные подколы, типа
soffrick пишет:
это и не надо кормить интерператору;
автор же хочет разбить как попало 1 файл на несколько файлов
.
igosja Отправлено: 16 Июля, 2013 - 14:32:33 • Тема: Include без выполнения кода. • Форум: Вопросы новичков

Ответов: 16
Просмотров: 1340
esterio пишет:
Я че то пропустил. А какой первый ответ.
Ваш ответ и был первым. Это я написал на случай, если кто еще что ответит.
igosja Отправлено: 16 Июля, 2013 - 14:26:04 • Тема: Include без выполнения кода. • Форум: Вопросы новичков

Ответов: 16
Просмотров: 1340
Приведенный в примере код упрощен до нельзя - в реале у меня простыня в 1500 строк + вызовы функций на еще сколько же строк, и желательно разбить и подключить их именно так, как стоит вопрос. Условие + действие + закрытие условия, а потом выполнить. Можно ли такое седлать? Если нет, тогда будем применять метод из ответа.
igosja Отправлено: 16 Июля, 2013 - 14:12:19 • Тема: Include без выполнения кода. • Форум: Вопросы новичков

Ответов: 16
Просмотров: 1340
Здравствуйте.

Есть код.

PHP:
скопировать код в буфер обмена
  1. if($a == 1) {/*выполняем что-то*/}
  2. else {/*выдаем сообщение об ошибке*/}


Нужно его разбить так:
файл begin.php -
файл main.php -
PHP:
скопировать код в буфер обмена
  1. /*выполняем что-то*/

файл end.php -
PHP:
скопировать код в буфер обмена
  1. }
  2. else {/*выдаем сообщение об ошибке*/}


Если файлы подключать через include/require, то после подключения первого файла - begin.php - сервер его тут-же выполняет, не находит закрытия условия, которое находится в файле end.php, и выдает ошибку - "syntax error, unexpected $end".

Подскажите, как можно подключить файлы без выполнения, а потом их выполнить вместе?
igosja Отправлено: 14 Марта, 2013 - 08:51:15 • Тема: Не понимаю ООП • Форум: Объектно-ориентированное программирование

Ответов: 112
Просмотров: 35327
Всем спасибо за ответы.
Скажу чесно - понимание пользы ООП не увеличилось ни на грамм, но все равно благодарен.
Судя по всему я не представляю себе целосной картины, а мыслю мелкими кусками кода.
igosja Отправлено: 13 Марта, 2013 - 18:33:23 • Тема: Не понимаю ООП • Форум: Объектно-ориентированное программирование

Ответов: 112
Просмотров: 35327
digi пишет:
с какими-нить фреймворками знаком? что такое git и composer известно?

Да, извесно. Не могли бы Вы перейти к результирующей части этих распросов.
igosja Отправлено: 13 Марта, 2013 - 17:58:59 • Тема: Не понимаю ООП • Форум: Объектно-ориентированное программирование

Ответов: 112
Просмотров: 35327
digi пишет:
igosja, вы сайтами занимаетесь или чем? ;)

Ими самыми.

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB