PHP.SU

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

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

> Найдено сообщений: 38
Virus1850 Отправлено: 19 Июля, 2016 - 23:23:51 • Тема: Помогите допилить практически рабочий код • Форум: Напишите за меня, пожалуйста

Ответов: 6
Просмотров: 115
Ребят, долго мучился на следующим, кодом, что делать дальше ума не приложу.. помогите допилить.

В общем, есть авторизация, которая вроде работает правильно, при запуске выводит в браузер главную страницу уже авторизованного пользователя - УРА!
Далее есть парсер (на заранее сохраненной странице, работает безупречно), он должен считывать несколько блоков со страницы, которая доступна лишь после авторизации, но поскольку эта страница имеет адрес отличный от главной страницы сайта, данные парсить не получается(( Подпилите код, что бы после авторизации можно было попасть на нужную страницу и далее уже получить данные...

PHP:
скопировать код в буфер обмена
  1.  /* Блок авторизации */
  2. ПЕРЕПИСАН, есть в низу!
  3.  
  4. /* Блок авторизации */
  5.  
  6. /* Парсер */
  7. include_once('simple_html_dom.php');
  8. $html = file_get_html ('http://****/****/****/play/25438/');
  9. $level = $html->find ('.content span ', 0)->innertext;
  10. $task = $html->find ('.content h3 ', 0)->innertext; // Отключен
  11. $text = $html->find ('.content p ', 0)->innertext; // Отключен
  12. echo "Информация: $level";
  13. /* Парсер */
Virus1850 Отправлено: 19 Июля, 2016 - 16:44:53 • Тема: Не работает авторизация Login.aspx • Форум: Вопросы новичков

Ответов: 1
Просмотров: 165
Решил авторизацию на сайте вот таким кодом! При его исполнении перебрысывает на главную страницу, как можно задать страницу, куда должно отправлять после авторизации???

PHP:
скопировать код в буфер обмена
  1. $ch = curl_init('http://******/Login.aspx?return=%2fDefault.aspx');
  2.     //curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
  3.     curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
  4.     curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
  5.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // не выводим код
  6.     $content = curl_exec($ch) or die(curl_error($ch));// получаем код в переменную
  7.     curl_close($ch);
  8.  
  9.     preg_match('/(?<=csrfmiddlewaretoken\" value=")[a-zA-Z0-9]{32}(?=\"\/\>)/', $content, $IDoriginalaction); // достаем переменную
  10.     //echo $IDoriginalaction[0];
  11.  
  12.     $ch = curl_init('http://******/Login.aspx?return=%2fDefault.aspx');
  13.     curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
  14.     curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
  15.     curl_setopt($ch, CURLOPT_CERTINFO, 1);
  16.     curl_setopt($ch, CURLOPT_VERBOSE, 1);
  17.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  18.     curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"); //
  19.     curl_setopt($ch, CURLOPT_HEADER, 1);
  20.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
  21.     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  22.     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  23.     curl_setopt($ch, CURLOPT_POST, 1);
  24.  
  25.     $log="*****";
  26.     $pass="******";
  27.  
  28.     curl_setopt($ch, CURLOPT_POSTFIELDS, "socialAssign=0&Login=$log&Password=$pass&EnButton1=%D0%92%D1%85%D0%BE%D0%B4&ddlNetwork=1");
  29.     curl_exec($ch) or die(curl_error($ch));
  30.     curl_close($ch);
Virus1850 Отправлено: 19 Июля, 2016 - 06:04:09 • Тема: Посоветуйте логику исполнения команд • Форум: Вопросы новичков

Ответов: 3
Просмотров: 172
Все таки разобрался сам. Реализовал через запись переменной в файл, но записывал одну переменную а выводил другую, и сравнивал их через if - пока переменные были равны, ничего не происходило, как только 1я переменная становится больше другой - запускается скрипт отправки данных на почту и перезапись файла. И все по кругу)

Теперь более сложный вопрос, как прикрутить авторизацию к парсеру??
Virus1850 Отправлено: 18 Июля, 2016 - 21:13:07 • Тема: Посоветуйте логику исполнения команд • Форум: Вопросы новичков

Ответов: 3
Просмотров: 172
andrewkard пишет:
Как у Вас парсер запускается, бесконечный цикл или по крону?
Virus1850 пишет:
при каждом новом запросе файл будет перезаписывать результат предыдущего

почему, сначала читаете, потом перезаписываете.

Пожалуй лучше скину код)
В общем, запросы я посылаю таким образом:
CODE (javascript):
скопировать код в буфер обмена
  1. <script type="text/javascript">
  2. function timer(){
  3. var obj=document.getElementById('timer_inp');
  4. obj.innerHTML--;
  5.     if (obj.innerHTML==0){
  6.   location.reload();
  7.     } else {
  8.         setTimeout(timer,1000);
  9.     }
  10. }
  11. setTimeout(timer,1000);
  12. </script>
  13. <div>Осталось: <span id="timer_inp">10</span> сек.</div>

10 сек. для теста, в идеале каждую секунду должен запускаться.

Потом следует самый простой парсер:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include_once('simple_html_dom.php');
  3. $html = file_get_html ('Страница сайта');
  4. $level = $html->find ('.content span ', 0)->innertext;
  5. $task = $html->find ('.content h3 ', 0)->innertext;
  6. $text = $html->find ('.content p ', 0)->innertext;
  7. echo $level, $task, $text;
  8.  
  9. $cont =  array(Start, $level['text'] );
  10. echo "</br>";
  11. echo $cont[0, 1];
  12. ?>

Кстати, в нем ошибка, не могу вывести массив через $cont, вывод данных по 8 сроке работает да всю инфу одной строкой, а мне бы разделить их).
Дальше, по моей логике, нужно if для проверки переменной, что-то вроде следующей..

PHP:
скопировать код в буфер обмена
  1. if ($level > $x ) {
  2. Отправка почты...
  3. }

Но вот как в эту $x занести значение $level но от предыдущего запроса, что бы их сравнить:

Вообще это делается пока что для понятия принципов и общей отладки, тестирую на заранее сохраненной странице, в идеале сюда нужно прикрутить авторизацию, т.к. страница и данные которые мне нужно парсить, доступны только с моего логина( Буду премного благодарен если подскажете где найти инфу или как это реализовать (поскольку я врач а не программер, чем проще тем лучше, php для меня скорее увлечение, помогающее в решений некоторых задач))
Virus1850 Отправлено: 18 Июля, 2016 - 16:54:52 • Тема: Посоветуйте логику исполнения команд • Форум: Вопросы новичков

Ответов: 3
Просмотров: 172
Ребят, подскажите как написать алгоритм для решения следующей задачи.
У меня есть простой парсер который должен присылать инфу с сайта. Инфа на сайте меняется, причем время смены инфы рандомное, т.е. можно ждать час а можно и 20 сек. Поэтому парсер отправляет запросы каждую секунду, соответственно весь html вносит в переменную и должен отправлять мне.. но
Что бы мне не приходило сообщение каждую сек. с повторяющейся инфой нужно решать такую задачу: а именно, сравнить как-то переменную с первого запроса к серверу с той же переменной со второго запроса.

Смену инфы на странице можно отследить по одному блоку в котором меняются только цифры начиная от 1 и до... 20-80. Вот коротко алгоритм работы сайта: 1 ст. № в блоке 1 (инфа-1) через 10 мин. -> 2 ст. № в блоке 2 (инфа-2) через 5 мин. -> 3 ст. № в блоке 3 (инфа-3) и т. д. эту цифру я уже загнал в переменную...

Так вот, как написать код, что бы при парсинге первой станицы когда $a=1; сравнивалась с той же переменной $a но из предыдущего запроса. Соответственно, через функцию if пока значения будут равны, сообщение отправляться не будет, как только на сайте изменится инфа, $ блока прилетевшего в последнем запросе станет > предыдущей и мне прилетит письмо уже с новой инфой. Надеюсь изложил понятно. Что можете посоветовать.

Были мысли записывать запрос в файл и потом сравнивать, но, при каждом новом запросе файл будет перезаписывать результат предыдущего, в итоге схема не работает..
Virus1850 Отправлено: 08 Июля, 2016 - 13:40:47 • Тема: Помогите разобраться в 1 строчке кода... • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 756
Sail пишет:
Virus1850 пишет:
почему на сайте работает первый способ но как только вношу изображение в код реакции никакой...

Быть может просто скрипт из кэша на клиенте отрабатывает...

ДРУЗЬЯ! Спасибо всем кто пытался помочь!) но как не странно проблема решена, почему-то заработал код с картинкой который я втыкал разными способами 4 часа)) а главное что ничего не менял, он просто взял и утром начал работать) возможно были косяки на сервере или еще что...
(Добавление)
Ахаха, все таки нашел в чем был баг, вдруг кому пригодится! Я использовал следующий код:
CODE (javascript):
скопировать код в буфер обмена
  1. <script type="text/javascript">
  2. document.getElementById("olimp_1").innerHTML="<img src='Картинка";
  3. </script>
  4.  


И он не в какую не хотел работать, но, когда я просмотрел исходный код страницы после публикации, все стало на свои места и исправил косяк. Обратите внимание что функция написана с новой строки!
Оказывается движок, в который я вносил этот код, не понимает пробелов и переносов и заменяет их на </br>
Поэтому после публикации ссылка на картинку была в тегах </br> </br>
А когда я написал код одной строкой, без переносов:
CODE (javascript):
скопировать код в буфер обмена
  1. <script type="text/javascript">document.getElementById("olimp_1").innerHTML="<img src='Картинка";</script>
  2.  

Все заработало)
Virus1850 Отправлено: 08 Июля, 2016 - 13:09:50 • Тема: Помогите разобраться в 1 строчке кода... • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 756
exlant пишет:
а что в консоли пишет? должно так работать без библиотек. Возможно что-то на сервере блокирует.. У меня вот норм все вывело - http://joxi[dot]ru/KAxbYjeI4OYJKm , скопировал ваш код и картинку вставил...

А как можно проверить? я в js не понимаю практически ничего, просто пришлось сталкнутся поэтому несколько часов с DOM + форум и смог реализовать такой вот кодик, у меня он тоже выполняется на локальном сервере и в программе WebBuilder и все норм, но на нужном мне сервере работает только замена текста а с картинкой никак(((
Подскажите хоть в каком направлении копать? и как проверить, есть ли какая-то блокировка на выполнение данной функции или нет? Может можно как-то ее обойти, др. способами...

P.S возникла такая мысль, если нельзя втыкнуть картинку в блок, я могу ее вставить туда изначально и закрасить блок (важно что бы картинка не была видна пока не исполнится код) может подскажете как написать функцию которая сбросит заливку но background-Image в блоке
Virus1850 Отправлено: 08 Июля, 2016 - 03:28:51 • Тема: Помогите разобраться в 1 строчке кода... • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 756
Друзья, хэлп ми! В общем, есть такой код:
CODE (html):
скопировать код в буфер обмена
  1. <div id="cont15">
  2. <div id="olimp_15" > Текст </div>
  3. </div>


По определенному сценарию на страницы выполняется (одна единственная строчка):
CODE (javascript):
скопировать код в буфер обмена
  1. document.getElementById("olimp_15").innerHTML = "Привет";


До этого момента все хорошо, "Текст" в блоке меняется на "Привет", но, как только я вставляю:
CODE (javascript):
скопировать код в буфер обмена
  1. document.getElementById("olimp_15").innerHTML = "<div>Привет<img src='адрес изображения'/> </div>";


Реакции никакой(( хотя при тестировании кода в WebBuilder в режиме просмотра, все нормально, "Текст" заменяется на "Привет"+ картинка.

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

P.S.
CODE (javascript):
скопировать код в буфер обмена
  1. document.getElementById("olimp_15").style.backgroundImage= "url('адрес изображения')";

Так же не помогает(( хотя повторю, локально в WebBuilder все норм, не работает только на сервере и только с изображением...
Virus1850 Отправлено: 19 Апреля, 2016 - 22:33:34 • Тема: Как отследить обновление страницы и отправить данные об этом • Форум: JavaScript & VBScript

Ответов: 2
Просмотров: 1245
Pinkya_rabbit пишет:
Virus1850 пишет:
Друзья, возможно кто-то знает как реализовать такую задачу. Суть проблемы:
Есть страница, на которой тикает таймер, каждый раз время меняется, 10-15-20 минут. Как только таймер истекает, на странице появляется определенный текст. Есть необходимость получать уведомления как только страница перезагружается...

с другой стороны на моем сервере лежит файл .php с формой отправки сообщения в которой есть переменная $text. Как только php выполняется, $text прилетает мне на почту.

Так вот, как реализовать возможность, что бы при обновлении сайта с таймером, в $text прилетала инфа (а по возможности текст который появляется на этой странице) и далее уже php отправит его мне...

Грубо говоря тебе нужно сделать таймер на js, например, зациклить setTimeout. После твоё сообщение выскакивает в модальном окне. Есть куча готовых модалов, но, если сложно, грубо говоря, когда таймер доходит до конца, у блока с position:fixed, параметр display меняется с none на block. Ну и отправка на почту может быть реализована как угодно. Может быть, например, в том же setTimeout вызов ajax, который вызывает любой скрипт где ты используешь стандартную функцию php mail. Но я всё же рекомендую погуглить готовые php решения для работы с почтой, чтобы с кодировкой писем проблем не было. Естественно, это при учёте, что твой хостер поддерживает отправку писем.

Ну эт как бы понятно, проблема в том, что 1ый сайт, на котором лежит таймер и сообщения которого мне нужно отслеживать, не мой, а сторонний, по сути мне нужен код, в который вставляется ссылка на страницу, и это ссылка отслеживается на предмет обновления (после срабатывания таймера). Представление как это сделать имею смутное т.к. c js практически никогда не работал... может подскажете с чего начать, и на какие функции обратить внимание (т.е. с чем начинать работать) а там уже и сам разберусь...
Virus1850 Отправлено: 15 Апреля, 2016 - 22:18:36 • Тема: Как отследить обновление страницы и отправить данные об этом • Форум: JavaScript & VBScript

Ответов: 2
Просмотров: 1245
Друзья, возможно кто-то знает как реализовать такую задачу. Суть проблемы:
Есть страница, на которой тикает таймер, каждый раз время меняется, 10-15-20 минут. Как только таймер истекает, на странице появляется определенный текст. Есть необходимость получать уведомления как только страница перезагружается...

с другой стороны на моем сервере лежит файл .php с формой отправки сообщения в которой есть переменная $text. Как только php выполняется, $text прилетает мне на почту.

Так вот, как реализовать возможность, что бы при обновлении сайта с таймером, в $text прилетала инфа (а по возможности текст который появляется на этой странице) и далее уже php отправит его мне...
Virus1850 Отправлено: 10 Ноября, 2015 - 14:37:29 • Тема: Друзья, нужен совет по mail (). • Форум: Вопросы новичков

Ответов: 1
Просмотров: 118
Друзья, проблема следующая, может кто более опытный, подскажет что и как, а то не могу найти ответ... В общем написал сайт с различными формами связи, которые прекрасно работают на тестовом (бесплатном сервере), перенес на норм. сервер - формы не работают.

Для теста создал самый простой файл отправки почты:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $to = "Мой адрес";
  3. $subject = "Email Test";
  4. $message = "Текст сообщения";
  5. $message = wordwrap($message, 70);
  6. if ( mail($to, $subject, $message) )
  7. {
  8.      echo("Отправлено");
  9. }
  10. else
  11. {
  12.      echo("Не отправлено");
  13. }
  14. ?>


И снова, тестовый сервер все отправляет и возвращает "Отправлено", на другом - "Не отправлено".

Ребята которые занимаются обслуживанием сервера, утверждают что у них все работает (сервер организации, на нем всего 2 сайта, мой и еще один, и с их сайта почта отправляется). И как быть и в чем может быть проблема? Наставьте кто на путь истинный))
Virus1850 Отправлено: 17 Сентября, 2014 - 15:38:34 • Тема: Нужна небольшая помощь. Не работает прикрепление файла к письму. • Форум: Если скрипт не работает

Ответов: 0
Просмотров: 990
Подскажите как прикрепить $_FILES['attachfile'] и $_FILES['attachimage'] к телу письма (строка 4-5). пробовал просто прописать (как в коде ниже) но не работает...( а что имел ввиду автор скрипта в 29 строке, не имею понятия...

PHP:
скопировать код в буфер обмена
  1. ...
  2.  
  3. // тело письма
  4.         $mess = '
  5. <b>Имя отправителя: </b>'.$_POST['name'].'<b>Контактный телефон: </b>'.$_POST['tel'].'<b>Контактный email: </b>'.$_POST['email'].'<b>Сообщение: </b>'.$_POST['mess'].'<b>Картинка: </b>' .$_FILES['attachimage'].'<b>Файл: </b>' .$_FILES['attachfile']['name'];
  6.  
  7.         //  класс для отправки почты
  8.         require 'class.phpmailer.php';
  9.  
  10.         $mail = new PHPMailer();
  11.         $mail->CharSet = "UTF-8";
  12.         $mail->From = $_POST['name'];      // от кого
  13.         $mail->FromName = $_POST['name'];   // от кого
  14.         $mail->AddAddress('sergei-6@bk.ru', 'Имя'); // кому - адрес, Имя
  15.         $mail->IsHTML(true);        // выставляем формат письма HTML
  16.         $mail->Subject = $_POST['title'];  // тема письма
  17.  
  18.         // если был файл, то прикрепляем его к письму
  19.         if(isset($_FILES['attachfile'])) {
  20.                  if($_FILES['attachfile']['error'] == 0){
  21.                     $mail->AddAttachment($_FILES['attachfile']['tmp_name'], $_FILES['attachfile']['name']);
  22.                  }
  23.         }
  24.         // если было изображение, то прикрепляем его в виде картинки к телу письма.
  25.         if(isset($_FILES['attachimage'])) {
  26.                  if($_FILES['attachimage']['error'] == 0){
  27.                     if (!$mail->AddEmbeddedImage($_FILES['attachimage']['tmp_name'], 'my-attach', 'image', 'base64', $_FILES['attachimage']['type']))
  28.                          die ($mail->ErrorInfo);
  29.                     $mess .= 'А вот и наша картинка:<br /><img src="cid:my-attach" border=0><br />я показал как ее прикреплять, соответственно Вам осталось вставить ее в нужное место Вашего письма ;-) ';
  30.                  }
  31.         }
  32.         $mail->Body = $mess;
  33.  
  34. ....
Virus1850 Отправлено: 27 Апреля, 2012 - 00:37:10 • Тема: Помогите с MySQL • Форум: Напишите за меня, пожалуйста

Ответов: 4
Просмотров: 83
Bio man пишет:
Во первых collation это не кодировка самих данных в БД. Оставь юникод как был.
После подключения к БД отправь запрос
или mysql_set_charset()
(Добавление)
Bio man пишет:
или mysql_set_charset()
а, у тебя PDO... не посмотрел сразу...


В результате:



все то же самое....
Virus1850 Отправлено: 27 Апреля, 2012 - 00:06:31 • Тема: Помогите с MySQL • Форум: Напишите за меня, пожалуйста

Ответов: 4
Просмотров: 83
Есть вот такой обработчик:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. /*** mysql hostname ***/
  3.  
  4. $hostname = '***';
  5.  
  6. /*** mysql username ***/
  7. $username = '***';
  8.  
  9. /*** mysql password ***/
  10. $password = '***';
  11.  
  12. $dbname = 'web';
  13.  
  14. try {
  15.     $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
  16.  
  17. if($_POST['name']) {
  18.     $name       = $_POST['name'];
  19.     $message    = $_POST['message'];
  20.     /*** set all errors to execptions ***/
  21.     $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  22.  
  23.     $sql = "INSERT INTO shoutbox (date_time, name, message)
  24.            VALUES (NOW(), :name, :message)";
  25.     /*** prepare the statement ***/
  26.     $stmt = $dbh->prepare($sql);
  27.  
  28.     /*** bind the params ***/
  29.     $stmt->bindParam(':name', $name, PDO::PARAM_STR);
  30.     $stmt->bindParam(':message', $message, PDO::PARAM_STR);
  31.  
  32.     /*** run the sql statement ***/
  33.     if ($stmt->execute()) {
  34.         populate_shoutbox();
  35.     }
  36. }
  37. }
  38. catch(PDOException $e) {
  39.     echo $e->getMessage();
  40. }
  41.  
  42. if($_POST['refresh']) {
  43.     populate_shoutbox();
  44. }
  45.  
  46.  
  47. function populate_shoutbox() {
  48.     global $dbh;
  49.     $sql = "select * from shoutbox order by date_time desc limit 10";
  50.     echo '<ul>';
  51.     foreach ($dbh->query($sql) as $row) {
  52.         echo '<li>';
  53.         echo '<span class="date">'.date("d.m.Y H:i", strtotime($row['date_time'])).'</span>';
  54.         echo '<span class="name">'.$row['name'].'</span>';
  55.         echo '<span class="message">'.$row['message'].'</span>';
  56.         echo '</li>';
  57.     }
  58.     echo '</ul>';
  59. }
  60. ?>
  61.  

А вот запрос на БД

CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE IF NOT EXISTS `shoutbox` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `date_time` datetime NOT NULL,
  4.   `name` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
  5.   `message` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  6.   PRIMARY KEY (`id`)
  7. ) ENGINE=MyISAM



Проблема в том что данные на русском, в таблице `message` и `name` отображаются иероглифами, с английским и цифрами все норм. Подскажите как исправить.

P.S кодировку на таблицах изменил на cp1251_general_ci все равно не помогло(


Скрин таблиц:
Virus1850 Отправлено: 12 Февраля, 2012 - 12:19:03 • Тема: Подскажите где нет закрывающей скобки PHP • Форум: Напишите за меня, пожалуйста

Ответов: 7
Просмотров: 86
Большое спасибо) все работает)

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB