PHP.SU

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

Страниц (1): [1]

> Найдено сообщений: 11
PickUp Отправлено: 15 Сентября, 2014 - 10:23:02 • Тема: 10060.A connection attempt failed because the connected party did not properly respond after a period of time • Форум: Работа с сетью

Ответов: 2
Просмотров: 6280
Мелкий пишет:
Строка-то какая? 58?
Хост не отвечает за время таймаута.

PickUp пишет:
Адрес сервера точно правильный, даже пинговать пробовал с компа - средний отклик 20 мс.

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

Кратко говоря, используйте mail, раз всё равно сами форматируете письмо.


Mail() использовать уже пробовал, выдаёт ошибку: Warning: mail() [function.mail]: SMTP server response: 503 This mail server requires authentication when attempting to send to a non-local e-mail address. Please check your mail client settings or contact your administrator to verify that the domain or address is defined for this server.

Тех поддержка сказала, что такая шляпа из-за размещения на разных серверах сайта и почты, так они и порекомендовали подключаться.
Порт узнал - действительно 25-й, или можно 587.
Но и по тому и по этому порту ошибка 10060.
Что вообще с этим делать? Можно как-то ожидание ответа увеличить или что-то в этои духе?)
PickUp Отправлено: 12 Сентября, 2014 - 13:48:58 • Тема: 10060.A connection attempt failed because the connected party did not properly respond after a period of time • Форум: Работа с сетью

Ответов: 2
Просмотров: 6280
Сайт залит на сервер, с него пытаюсь отправить сообщение на emale
Выдаёт такую ошибку: 10060.A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

Ниже код:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. ini_set('display_errors', 1);
  3.  error_reporting(E_ALL);
  4.  
  5. // пример использования
  6. require_once "SendMailSmtpClass.php"; // подключаем класс
  7.  
  8. $mailSMTP = new SendMailSmtpClass('логин', 'пароль', 'хост', 'имя отправителя');
  9.  
  10. // заголовок письма
  11. $headers= "MIME-Version: 1.0\r\n";
  12. $headers .= "Content-type: text/html; charset=utf-8\r\n"; // кодировка письма
  13. $headers .= "From: Evgeniy <admin@vk-book.ru>\r\n"; // от кого письмо
  14. $result =  $mailSMTP->send('trol@gmail.com', 'Тема письма', 'Текст письма jeiorjf eoijhf;aoiejr f;aoeigh auoghruaehrgurhguh 32 4 234 2thurv rvhur fu', $headers); // отправляем письмо
  15. // $result =  $mailSMTP->send('Кому письмо', 'Тема письма', 'Текст письма', 'Заголовки письма');
  16. if($result === true){
  17.    echo "Письмо успешно отправлено";
  18. }else{
  19.    echo "Письмо не отправлено. Ошибка: " . $result;
  20. }
  21. ?>


sendmaulsmtp:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. ini_set('display_errors', 1);
  3.  error_reporting(E_ALL);
  4. /**
  5. * SendMailSmtpClass
  6. *
  7. * Класс для отправки писем через SMTP с авторизацией
  8. *
  9. * @author Ipatov Evgeniy <admin@ipatov-soft.ru>
  10. * @version 1.0
  11. */
  12. class SendMailSmtpClass {a
  13.  
  14.    /**
  15.     *
  16.     * @var string $smtp_username - логин
  17.     * @var string $smtp_password - пароль
  18.     * @var string $smtp_host - хост
  19.     * @var string $smtp_from - от кого
  20.     * @var integer $smtp_port - порт
  21.     * @var string $smtp_charset - кодировка
  22.     *
  23.     */  
  24.    public $smtp_username;
  25.    public $smtp_password;
  26.    public $smtp_host;
  27.    public $smtp_from;
  28.    public $smtp_port;
  29.    public $smtp_charset;
  30.    
  31.    public function __construct($smtp_username, $smtp_password, $smtp_host, $smtp_from, $smtp_port = 25, $smtp_charset = "utf-8") {
  32.        $this->smtp_username = $smtp_username;
  33.        $this->smtp_password = $smtp_password;
  34.        $this->smtp_host = $smtp_host;
  35.        $this->smtp_from = $smtp_from;
  36.        $this->smtp_port = $smtp_port;
  37.        $this->smtp_charset = $smtp_charset;
  38.    }
  39.    
  40.    /**
  41.     * Отправка письма
  42.     *
  43.     * @param string $mailTo - получатель письма
  44.     * @param string $subject - тема письма
  45.     * @param string $message - тело письма
  46.     * @param string $headers - заголовки письма
  47.     *
  48.     * @return bool|string В случаи отправки вернет true, иначе текст ошибки    *
  49.     */
  50.    function send($mailTo, $subject, $message, $headers) {
  51.        $contentMail = "Date: " . date("D, d M Y H:i:s") . " UT\r\n";
  52.        $contentMail .= 'Subject: =?' . $this->smtp_charset . '?B?'  . base64_encode($subject) . "=?=\r\n";
  53.        $contentMail .= $headers . "\r\n";
  54.        $contentMail .= $message . "\r\n";
  55.        
  56.        try {
  57.            if(!$socket = @fsockopen($this->smtp_host, $this->smtp_port, $errorNumber, $errorDescription, 30)){
  58.                throw new Exception($errorNumber.".".$errorDescription);
  59.            }
  60.            if (!$this->_parseServer($socket, "220")){
  61.                throw new Exception('Connection error');
  62.            }
  63.        
  64.            fputs($socket, "HELO " . $this->smtp_host . "\r\n");
  65.            if (!$this->_parseServer($socket, "250")) {
  66.                fclose($socket);
  67.                throw new Exception('Error of command sending: HELO');
  68.            }
  69.            
  70.            fputs($socket, "AUTH LOGIN\r\n");
  71.            if (!$this->_parseServer($socket, "334")) {
  72.                fclose($socket);
  73.                throw new Exception('Autorization error 1');
  74.            }
  75.            
  76.            fputs($socket, base64_encode($this->smtp_username) . "\r\n");
  77.            if (!$this->_parseServer($socket, "334")) {
  78.                fclose($socket);
  79.                throw new Exception('Autorization error 2');
  80.            }
  81.            
  82.            fputs($socket, base64_encode($this->smtp_password) . "\r\n");
  83.            if (!$this->_parseServer($socket, "235")) {
  84.                fclose($socket);
  85.                throw new Exception('Autorization error 3');
  86.            }
  87.            
  88.            fputs($socket, "MAIL FROM: ".$this->smtp_username."\r\n");
  89.            if (!$this->_parseServer($socket, "250")) {
  90.                fclose($socket);
  91.                throw new Exception('Error of command sending: MAIL FROM');
  92.            }
  93.            
  94.            fputs($socket, "RCPT TO: " . $mailTo . "\r\n");    
  95.            if (!$this->_parseServer($socket, "250")) {
  96.                fclose($socket);
  97.                throw new Exception('Error of command sending: RCPT TO');
  98.            }
  99.            
  100.            fputs($socket, "DATA\r\n");    
  101.            if (!$this->_parseServer($socket, "354")) {
  102.                fclose($socket);
  103.                throw new Exception('Error of command sending: DATA');
  104.            }
  105.            
  106.            fputs($socket, $contentMail."\r\n.\r\n");
  107.            if (!$this->_parseServer($socket, "250")) {
  108.                fclose($socket);
  109.                throw new Exception("E-mail didn't sent");
  110.            }
  111.            
  112.            fputs($socket, "QUIT\r\n");
  113.            fclose($socket);
  114.        } catch (Exception $e) {
  115.            return  $e->getMessage();
  116.        }
  117.        return true;
  118.    }
  119.    
  120.    private function _parseServer($socket, $response) {
  121.        while (@substr($responseServer, 3, 1) != ' ') {
  122.            if (!($responseServer = fgets($socket, 256))) {
  123.                return false;
  124.            }
  125.        }
  126.        if (!(substr($responseServer, 0, 3) == $response)) {
  127.            return false;
  128.        }
  129.        return true;
  130.        
  131.    }
  132. }


Единственное - не уверен в порте, но техподдержка молчить.
Подскажите, что за фигня может быть?
Адрес сервера точно правильный, даже пинговать пробовал с компа - средний отклик 20 мс.
PickUp Отправлено: 13 Февраля, 2014 - 17:49:02 • Тема: Ошибка Uncaught TypeError: Cannot read property 'innerHTML' • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 2599
IllusionMH пишет:
PickUp, смотрите в консоли на какой строке ошибка. Случайно еще не в 7(тут) строке? Там вообще есть элемент с id thumbs? что это за элемент?

да, есть, я его включил в код который здесь выложил, здесь он на 40 строке <ul id=thumbs>
Просто не понятно, почему не работает, когда второй раз пытаюсь обновить его контент. Вроде же всё то же самое делается, но ошибка возникает
PickUp Отправлено: 13 Февраля, 2014 - 12:54:31 • Тема: Ошибка Uncaught TypeError: Cannot read property 'innerHTML' • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 2599
Мелкий пишет:
В обработчике onreadystatechange нету переменной cont

Немного не понял)
Она же вроде глобальная - типо в обработчик должна входить. Как её туда добавить?)
PickUp Отправлено: 13 Февраля, 2014 - 12:36:23 • Тема: Ошибка Uncaught TypeError: Cannot read property 'innerHTML' • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 2599
Здравствуйте, подскажите пожалуйста, в чём проблема?
Ниже код. При нажатии на кнопку подгружается содержимое из базы данных. Но кнопка т.с. одноразовая. После первого нажатия начинают выводиться ошибки Uncaught TypeError: Cannot read property 'innerHTML' of null. Подскажите пожалуйста, где мой ляп?
CODE (text):
скопировать код в буфер обмена
  1. <script>
  2.         function showContent(link) {
  3.  
  4.                 var cont = document.getElementById('thumbs');  //это директорию, куда фото грузится
  5.                 var loading = document.getElementById('loading');  //надпись, возникающая во время загрузки
  6.  
  7.                 cont.innerHTML = loading.innerHTML;
  8.  
  9.                 var http = createRequestObject();                                       // создаем ajax-объект
  10.                 if( http ) {
  11.                         http.open('get', link);                                                 // инициируем загрузку страницы
  12.                         http.onreadystatechange = function () {                 // назначаем асинхронный обработчик события
  13.                                 if(http.readyState == 4) {
  14.                                         cont.innerHTML = http.responseText;             // присваиваем содержимое
  15.                                 }
  16.                         }
  17.                         http.send(null);    
  18.                 } else {
  19.                         document.location = link;       // если ajax-объект не удается создать, просто перенаправляем на адрес
  20.                 }
  21.         }
  22.  
  23.         // создание ajax объекта
  24.         function createRequestObject() {
  25.                 try { return new XMLHttpRequest() }
  26.                 catch(e) {
  27.                         try { return new ActiveXObject('Msxml2.XMLHTTP') }
  28.                         catch(e) {
  29.                                 try { return new ActiveXObject('Microsoft.XMLHTTP') }
  30.                                 catch(e) { return null; }
  31.                         }
  32.                 }
  33.         }
  34. </script>
  35.         <form>
  36.                 <input onclick="showContent('content_loader.php?w=3')" type="button" value="Страница 1"> // Собственно кнопки для загрузки страницы
  37.                 <input onclick="showContent('content_loader.php?w=1')" type="button" value="Страница 2">
  38.         </form>
  39.  
  40.                         <ul id="thumbs"> // директория, куда грузится контент
  41.                                                         <div id="loading" style="display: none">
  42.                                                         Идет загрузка...
  43.                                                         </div>
  44.                         </ul>

Код content_loader.php:
CODE (text):
скопировать код в буфер обмена
  1. <?php
  2. $link = mysqli_connect("localhost", "root", "", "articl");
  3.  
  4. /* проверка соединения */
  5. if (mysqli_connect_errno()) {
  6.     printf("Соединение не удалось: %s\n", mysqli_connect_error());
  7.     exit();
  8. }
  9.  
  10. if (isset($_GET['w'])) {
  11. $w = $_GET['w'];
  12. $i = $i+$w;
  13. }
  14. else {
  15. $w = 0;
  16. $i = 1;
  17. };
  18. $query = "SELECT image, alt FROM image ORDER by ID LIMIT ".$w;
  19.  
  20. if ($result = mysqli_query($link, $query)) {
  21.  
  22.     /* извлечение ассоциативного массива */
  23.     while ($row = mysqli_fetch_assoc($result))
  24.  {
  25. /* Работа с базой данных */
  26.   printf ('
  27.   <li class="item-thumbs span3 design" style="background:url('.$row["image"].');">
  28.   <a class="hover-wrap fancybox" data-fancybox-group="gallery" title="'.$title.'" href="'.$row["image"].'"'.$title.'">
  29.   <span class="overlay-img"></span>
  30.   <span class="overlay-img-thumb font-icon-plus"></span></a>
  31.   <img src="'.$row["image"].'" alt="'.$row["alt"].'">
  32.   </li>');
  33.   }
  34.       /* удаление выборки */
  35.     mysqli_free_result($result);
  36. }
  37.  
  38. /* закрытие соединения */
  39. mysqli_close($link);
  40. ?>
PickUp Отправлено: 13 Февраля, 2014 - 12:11:36 • Тема: Передача значения методом GET • Форум: Вопросы новичков

Ответов: 2
Просмотров: 103
Здравствуйте, подскажите пожалуйста, как передать методом GET значение типо $i++ .
И можно ли вообще?)
PickUp Отправлено: 13 Февраля, 2014 - 12:03:03 • Тема: Передача значения методом GET • Форум: JavaScript & VBScript

Ответов: 2
Просмотров: 699
Здравствуйте, подскажите пожалуйста, как передать методом GET значение типо $i++ .
И можно ли вообще?)
PickUp Отправлено: 13 Февраля, 2014 - 10:46:32 • Тема: Подгрузка контента из БД, Ajax • Форум: JavaScript & VBScript

Ответов: 2
Просмотров: 1209
Цитата:
При создании первого вывода картинок к кнопке добавьте значение смещения, ваш $i. При клике по кнопке запрашиваете это смещение, делаете выборку и выводите на страницу новые картинки и обновляете смещение для кнопки.

Большое спасибо, сейчас попробую)
А, да, только как обратное смещение сделать?
Ведь картинки в обе стороны листают...
PickUp Отправлено: 13 Февраля, 2014 - 01:59:24 • Тема: Подгрузка контента из БД, Ajax • Форум: JavaScript & VBScript

Ответов: 2
Просмотров: 1209
День добрый. Столкнулся с такой проблемой - есть сайт, на нём должно отображаться не более 9 картинок на странице. При этом, по нажатию кнопки (далее) должны сменяться текущие картинки на следующие - без перезагрузки страницы. Пути к картинкам хранятся в базе данных.
Никак не могу понять, как это сделать.
CODE (php):
скопировать код в буфер обмена
  1. <?php
  2. $link = mysqli_connect("localhost", "root", "", "articl");
  3. /* Подключение к базе articl */
  4.  
  5.  
  6.     printf("Соединение не удалось: %s\n", mysqli_connect_error());
  7.     exit();
  8. /* проверка соединения */
  9. }
  10.  
  11. $query = "SELECT image, alt FROM image ORDER by ID LIMIT 9";
  12. /* здесь из базы берётся путь к картинке - image - и какой-то комментарий - alt; */
  13. if ($result = mysqli_query($link, $query)) {
  14.  
  15.     /* извлечение ассоциативного массива */
  16.     while ($row = mysqli_fetch_assoc($result))
  17. {
  18. /*Ниже вывод картинки на экран, всякие классы и т.д. для css*/
  19.   printf ('
  20.  <li class="item-thumbs span3 design" style="background:url('.$row["image"].');">
  21.  <a class="hover-wrap fancybox" data-fancybox-group="gallery" title="'.$title.'" href="'.$row["image"].'"'.$title.'">
  22.  <span class="overlay-img"></span>
  23.  <span class="overlay-img-thumb font-icon-plus"></span></a>
  24.  <img src="'.$row["image"].'" alt="'.$row["alt"].'">
  25.  </li>');
  26.   }
  27.       /* удаление выборки */
  28.     mysqli_free_result($result);
  29. }
  30.  
  31. /* закрытие соединения */
  32. mysqli_close($link);
  33. ?>


И тут ступор. Не могу понять, как не перезагружая взять следующие 9 картинок. Ну, например в
CODE (php):
скопировать код в буфер обмена
  1. $query = "SELECT image, alt FROM image ORDER by ID LIMIT 9";

берём limit с $i по $i+9, добавляем if (isset($i ... в общем проверку на текущее значение переменной.
Но как при нажатии по кнопке дать этой самой $i другое значение не перезагружаясь?
Подскажите пожалуйста)
PickUp Отправлено: 07 Января, 2014 - 13:12:40 • Тема: Как сделать постраничную навгацию на php для галереи? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 166
Спасибо большое)
Вроде как работает, только один вопрос:
DelphinPRO пишет:

считываем переменную $_GET['page'] (например)
считаем номер первой картинки ($page-1) * $perPage (кол-во на страницу)

Как задать переменной, ну нашей $page, которую мы считываем, начальную страницу 1?
Чтобы при открытии сайта у $page сразу было значение 1, а при переходам по ссылкам - 2,3...
Просто если $page = 1 поставить перед циклом, то при переходе по страницам эта переменная и останется равной 1.
PickUp Отправлено: 06 Января, 2014 - 23:22:09 • Тема: Как сделать постраничную навгацию на php для галереи? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 166
Есть код - сканирует папку с картинками и выводит их в галерее. Картинок много, поэтому хочу сделать постраничную навигаию, чтобы при достижении количесвта картинок = 9, добавлялась сслыка на последующие странички...Как это реализовать?
Вот код:
CODE (text):
скопировать код в буфер обмена
  1. <?php
  2. $directory = '_include/img/work/full/'; //название папки с изображениями
  3. $allowed_types=array('jpg','jpeg','gif','png'); //разрешеные типы изображений
  4. $file_parts=array();
  5.  $ext='';
  6.  $title='';
  7.  $i=0;
  8. //пробуем открыть папку
  9.  $dir_handle = @opendir($directory) or die("There is an error with your image directory!");
  10. while ($file = readdir($dir_handle))    //поиск по файлам
  11.  {
  12.  if($file=='.' || $file == '..') continue;      //пропустить ссылки на другие папки
  13. $file_parts = explode('.',$file);       //разделить имя файла и поместить его в массив
  14.  $ext = strtolower(array_pop($file_parts));     //последний элеменет - это расширение
  15. $title = implode('.',$file_parts);     
  16.  $title = htmlspecialchars($title);    
  17. $nomargin='';
  18.  if(in_array($ext,$allowed_types))     
  19.  {
  20.  if(($i+1)%9==0) $nomargin='nomargin';
  21.  //последнему изображению в ряде присваевается CSS класс "nomargin"
  22.  echo '
  23.  <li class="item-thumbs span3 design'.$nomargin.'" style="background:url('.$directory.'/'.$file.');">
  24.  <a class="hover-wrap fancybox" data-fancybox-group="gallery" title="'.$title.'" href="'.$directory.'/'.$file.'"'.$title.'">
  25.  <span class="overlay-img"></span>
  26.  <span class="overlay-img-thumb font-icon-plus"></span></a>
  27.  <img src="'.$directory.'/'.$file.'" alt="'.$signature.'">
  28.  </li>';
  29. $i++;  
  30.  }
  31.  }
  32. closedir($dir_handle);  //закрыть папку
  33. ?>
  34.  

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB