PHP.SU

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

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

> Найдено сообщений: 35
vintag Отправлено: 04 Декабря, 2016 - 14:24:39 • Тема: Перевести с js на php • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 49
Извини, те, но это похоже на "мне не охота, сделайте за спасибо"! JS в отличии от PHP очень трудный и уж если вы одно можете, то почему другое не можете? Я понимаю, что помощь безвозмездно всегда востребована и многие, к числу которых принадлежу и я, готовы помочь , тем, кто увлекается этим делом, но когда пишут такие темы в поисках лохов, желание пропадает напрочсь!
vintag Отправлено: 11 Ноября, 2016 - 10:01:46 • Тема: Проблема с подгрузкой PHP модулей в Apache. • Форум: Администрирование *nix

Ответов: 2
Просмотров: 1065
msi качай и устанавливай на здоровье
vintag Отправлено: 08 Ноября, 2016 - 18:14:05 • Тема: Как создать авто генерируемые ссылки, например, на магазины? • Форум: Вопросы новичков

Ответов: 9
Просмотров: 316
Нифига не понял честно..... ну попробую помочь.
ну вот простейшая ссылка на пхп готовая
PHP:
скопировать код в буфер обмена
  1. http://127.0.0.1/perevod/prosmotr_glav.php?unic=80878295

делается так
PHP:
скопировать код в буфер обмена
  1.  echo "<a href='http://127.0.0.1/perevod/prosmotr_glav.php?unic=".$unic."'>бла бла</a>";

это самое простое по гет запросам, причем ета переменная у меня из бд высвечивает и из нее же разная инфа отображается на основе этого уникального номера.
есть еще второй способ при котором как мне объясняли уже сам сервер формирует урлки. ну читай, мне это пока не интересно
vintag Отправлено: 07 Ноября, 2016 - 16:47:02 • Тема: База данных и локальный сервер. • Форум: Вопросы новичков

Ответов: 3
Просмотров: 198
BoJlod9I пишет:
Возможно неправильные настройки или не стоит модуль user_dir как то так если используешь php 7 то нужно сделать все настройки под php 7 https://www[dot]digitalocean[dot]com/com[dot][dot][dot]-on-ubuntu-14-04

или просто банально добавь полный адресс
$fp = fopen("/perevod/vigruz/".translit
(Добавление)
если помог отпиши

честно сказать вообще не понял при чем тут fopen? как раз это то и работает. Не работает сейчас file_exists(), я его просто убрал из скрипта, так как по документации скрипт в одной дерективе должен быть, чтобы функция могла отыскать файл, а как раз в директиве vigruz у меня не хочет подключаться к базе данных, все остальное работает, файл создается, закрывается и добавляется вроде, последнее не проверял специально. А насчет настроек это конечно мысль, знать бы еще какую строчку в настроечном файле искать, буду благодарен за направление хотя бы.
vintag Отправлено: 06 Ноября, 2016 - 18:40:35 • Тема: База данных и локальный сервер. • Форум: Вопросы новичков

Ответов: 3
Просмотров: 198
Доброго вечера народ! В общем неприятная проблема, с которой я вчера столкнулся заключается в следующем: скрипт не хочет подключаться к базе данных.
обо всем по порядку. Значит начал создавать возможность скачивания текстового документа со страницы. Задумка заключается в том, что посредством аякса запускается скрипт php и создает файл на сервере и заполняется данными из бд, дальше он должен загрузиться на компьютер и в заключении удалиться. Кстати нигде не смог найти как провернуть последнюю часть, может подскажете как лучше можно сделать ее, меня интересует как дождаться окончания загрузки файла пользователю и запустить скрипт на сервере, чтобы удалить потом. Ну в смысле не нашел нигде как понять что файл пользователю выгружен, средствами явскрипт. Ну в общем набросал такой вот код:

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. include('sup.php');
  4.  
  5.   function translit($str) {
  6.     $rus = array('А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я');
  7.     $lat = array('A', 'B', 'V', 'G', 'D', 'E', 'E', 'Gh', 'Z', 'I', 'Y', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'H', 'C', 'Ch', 'Sh', 'Sch', 'Y', 'Y', 'Y', 'E', 'Yu', 'Ya', 'a', 'b', 'v', 'g', 'd', 'e', 'e', 'gh', 'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', 'y', 'y', 'y', 'e', 'yu', 'ya');
  8.     return str_replace($rus, $lat, $str);
  9.   }
  10.  
  11. echo $_REQUEST['golovan'].".txt";
  12. $inf=podklkbd();
  13. $zapros="SELECT name_glav FROM ".$_SESSION['book']."_glav WHERE unic=\"".$_REQUEST['golovan']."\";";
  14. $result=mysql_query($zapros);
  15. if (!$result) {
  16. die("Невозможно исполнить запрос к базе данных: <br />". mysql_error());
  17. }
  18. $result_row = mysql_fetch_row(($result));
  19.  
  20. $fp = fopen("vigruz/".translit(raskodir($result_row[0])).".txt", 'w+t');
  21.  
  22. $zapros="SELECT text_per FROM ".$_SESSION['book']."chapter".$_REQUEST['golovan']."perevod order by nomer_orig ASC;";
  23. $result=mysql_query($zapros);
  24. if (!$result) {
  25. die("Невозможно исполнить запрос к базе данных: <br />". mysql_error());
  26. }
  27.  
  28. while($result_row = mysql_fetch_row(($result))){
  29.         fwrite($fp, raskodir($result_row[0])."\r\n");
  30.        
  31. }
  32. fclose($fp);
  33. otklkbd($inf);
  34.  
  35.  
  36.  
  37.  
  38.  


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

PHP:
скопировать код в буфер обмена
  1.  
  2. function podklkbd($db_host='127.0.0.1', $db_username='sergei', $db_password='841414', $db_database='perevodchik'){
  3.  
  4. $connection = mysql_connect($db_host, $db_username, $db_password);
  5. if (!$connection) {
  6. die("Невозможно подключиться к базе данных: <br />". mysql_error());
  7. }
  8. $db_select = mysql_select_db($db_database);
  9. if (!$db_select) {
  10. die( "Невозможно выбрать базу данных: <br />". mysql_error());
  11. }
  12. return($connection);
  13. }
  14.  
  15. function otklkbd($connection){mysql_close($connection);}
  16.  


ну и в общем сейчас скрипт расположен по адресу http://127.0.0.1/perevod/, где и все остальные и замечательно работает, как и все остальные, а вот если запихнуть по адресу http://127.0.0.1/perevod/vigruz/, то проблемы с подключением к бд, вопрос почему?
vintag Отправлено: 12 Августа, 2016 - 21:18:45 • Тема: Подмена текста • Форум: JavaScript & VBScript

Ответов: 3
Просмотров: 780
andrewkard пишет:
vintag
Так?
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if(isset($_POST['test'])){
  4.     print_r($_POST);
  5. }
  6. ?>
  7. <html>
  8. <form method="post">
  9.     <input type="text" name="test"/>
  10.     <input type="hidden" name="test" value="myValue"/>
  11. </form>
  12. </html>
  13.  

Да нет, нужно на основе введенного текста средствами JS
vintag Отправлено: 09 Августа, 2016 - 22:03:16 • Тема: ВебСокеты и сессии. • Форум: Вопросы новичков

Ответов: 0
Просмотров: 250
Такая непонятка выходит, значит нашел рабочий чат на сокетах, пытаюсь его изменить и разобрать. Т ак вот при попытке вставить переменную из сессии (укажу в коде где) опера выдает бесконечную загрузку страницы, а мозила все грузит. помогите разобраться почему и исправить как нибудь.

Код:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.  
  4.  
  5.  
  6. <!DOCTYPE html>
  7. <html>
  8. <head>
  9. <meta charset='UTF-8' />
  10. <style type="text/css">
  11. <!--
  12. .chat_wrapper {
  13.     width: 200px;
  14.     margin-right: auto;
  15.     margin-left: auto;
  16.     background: #CCCCCC;
  17.     border: 1px solid #999999;
  18.     padding: 10px;
  19.     font: 12px 'lucida grande',tahoma,verdana,arial,sans-serif;
  20. }
  21. .chat_wrapper .message_box {
  22.     background: #FFFFFF;
  23.     height: 250px;
  24.     overflow: auto;
  25.     padding: 10px;
  26.     border: 1px solid #999999;
  27. }
  28. .chat_wrapper .panel input{
  29.     padding: 2px 2px 2px 5px;
  30. }
  31. .system_msg{color: #BDBDBD;font-style: italic;}
  32. .user_name{font-weight:bold;}
  33. .user_message{color: #88B6E0;}
  34. -->
  35. </style>
  36. </head>
  37. <body>  
  38. <?PHP
  39. $colours = array('007AFF','FF7000','FF7000','15E25F','CFC700','CFC700','CF1100','CF00BE','F00');
  40. $user_colour = array_rand($colours);
  41. ?>
  42.  
  43. <script src="//127.0.0.1/JS/jquery.min.js"></script>
  44.  
  45. <script language="javascript" type="text/javascript">  
  46. $(document).ready(function(){
  47.     //create a new WebSocket object.
  48.     var wsUri = "ws://localhost:9000/demo/server.php";  
  49.     websocket = new WebSocket(wsUri);
  50.    
  51.     websocket.onopen = function(ev) { // connection is open
  52.         $('#message_box').append("<div class=\"system_msg\">Вы вошли в чат!</div>"); //notify user
  53.     }
  54.  
  55.     $('#send-btn').click(function(){ //use clicks message send button  
  56.         var mymessage = $('#message').val(); //get message text
  57.         var myname = $('#name').val(); //get user name
  58.        
  59.         if(myname == ""){ //empty name?
  60.             alert("Enter your Name please!");
  61.             return;
  62.         }
  63.         if(mymessage == ""){ //emtpy message?
  64.             alert("Enter Some message Please!");
  65.             return;
  66.         }
  67.        
  68.         //prepare json data
  69.         var msg = {
  70.         message: mymessage,
  71.         name: myname,
  72.         color : '<?PHP echo $colours[$user_colour]; ?>'
  73.         };
  74.         //convert and send data to server
  75.         websocket.send(JSON.stringify(msg));
  76.     });
  77.    
  78.     //#### Message received from server?
  79.     websocket.onmessage = function(ev) {
  80.         var msg = JSON.parse(ev.data); //PHP sends Json data
  81.         var type = msg.type; //message type
  82.         var umsg = msg.message; //message text
  83.         var uname = msg.name; //user name
  84.         var ucolor = msg.color; //color
  85.  
  86.         if(type == 'usermsg')
  87.         {
  88.             $('#message_box').append("<div><span class=\"user_name\" style=\"color:#"+ucolor+"\">"+uname+"</span> : <span class=\"user_message\">"+umsg+"</span></div>");
  89.         }
  90.         if(type == 'system')
  91.         {
  92.             $('#message_box').append("<div class=\"system_msg\">"+umsg+"</div>");
  93.         }
  94.        
  95.         $('#message').val(''); //reset text
  96.     };
  97.    
  98.     websocket.onerror   = function(ev){$('#message_box').append("<div class=\"system_error\">Error Occurred - "+ev.data+"</div>");};
  99.     websocket.onclose   = function(ev){$('#message_box').append("<div class=\"system_msg\">Connection Closed</div>");};
  100. });
  101. </script>
  102.  
  103. <div class="chat_wrapper">
  104. <div class="message_box" id="message_box"></div>
  105. <div class="panel">
  106. <input type="hidden" name="name" id="name" placeholder="Your Name" maxlength="10" style="width:20%" value="
  107.  
  108.  
  109.  
  110.  
  111. [b]ВОТ СДЕСЬ!!!<?PHP session_start(); echo $_SESSION['nick'];?>[/b]
  112.  
  113.  
  114.  
  115.  
  116. "  />
  117. <input type="text" name="message" id="message" placeholder="Message" maxlength="80" style="width:60%" />
  118. <button id="send-btn">Send</button>
  119. </div>
  120. </div>
  121.  
  122. </body>
  123. </html>
  124.   }//End connect()
  125.    
  126. });
  127. </script>
  128.  
  129. <style type="text/css">
  130. body{font-family:Arial, Helvetica, sans-serif;}
  131. #container{
  132.   border:5px solid grey;
  133.   width:800px;
  134.   margin:0 auto;
  135.   padding:10px;
  136. }
  137. #chatLog{
  138.   padding:5px;
  139.   border:1px solid black;  
  140. }
  141. #chatLog p{margin:0;}
  142. .event{color:#999;}
  143. .warning{
  144.   font-weight:bold;
  145.   color:#CCC;
  146. }
  147. </style>
  148. <title>WebSockets Client</title>
  149.  
  150. </head>
  151. <body>
  152.   <div id="wrapper">
  153.  
  154.     <div id="container">
  155.    
  156.       <h1>WebSockets Client</h1>
  157.        
  158.         <div id="chatLog">
  159.        
  160.         </div>
  161.         <p id="examples">e.g. try 'hi', 'name', 'age', 'today'</p>
  162.        
  163.       <input id="text" type="text" />
  164.         <button id="disconnect">Disconnect</button>
  165.  
  166.   </div>
  167.  
  168.   </div>
  169. </body>
  170. </html>?
  171.  





PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $host = '127.0.0.1'; //host
  4. $port = '9000'; //port
  5. $null = NULL; //null var
  6.  
  7. //Create TCP/IP sream socket
  8. $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //Создание сокета(конечной точки соединения) (domain устанавливает домен (семейство протокола), type выбирает тип сокета, protocol устанавливает протокол)
  9. //многоразовый порт
  10. socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1); //  Устанавливает опции для сокета (socket
  11. //Действующий ресурс сокета, созданный при помощи функции socket_create(), level
  12. //Параметр level указывает уровень протокола, на котором используется опция, optname
  13. //Возможные опции для сокета , optval
  14. //Значение опции)
  15.  
  16. //привязываем сокет к указанному узлу
  17. socket_bind($socket, 0, $port); //Привязывает имя, указанное в параметре address, к сокету, описанному в параметре socket. Это должно быть сделано до того, как соединение установлено при помощи функции socket_connect() или socket_listen().
  18.  //(socket
  19. //Действующий ресурс сокета, созданный при помощи функции socket_create()., address
  20. //Если сокет из семейства AF_INET, то параметр address должен быть IP-адресом в записи, разделённой точками (например, 127.0.0.1)., port (Optional)
  21. //Параметр port используется только когда имя привязывается к сокету AF_INET, и указывает порт, на котором будут слушаться соединения.
  22. //слушать порт
  23. socket_listen($socket); //прослушивает соединение на сокете.
  24.  
  25. //создать и добавить плюс сокет в список
  26. $clients = array($socket);
  27.  
  28. //запустить бесконечный цикл, так что наш скрипт не останавливается
  29. while (true) {
  30.     //управление multipal подключения
  31.     $changed = $clients;
  32.     //возвращает сокет ресурсов в $измененный массив
  33.     socket_select($changed, $null, $null, 0, 10);  //socket_select - запускает системный вызов select() на данных массивах сокетов с таймаутом, специфицированным параметрами tv_sec и tv_usec.
  34. //
  35. //Описание
  36. //
  37. //int socket_select (resource &read, resource &write, resource &except, int tv_sec [, int tv_usec])
  38.    
  39.     //регистрация на новый сокет
  40.     if (in_array($socket, $changed)) {
  41.  
  42. //in_array -- Проверить, присутствует ли в массиве значение
  43. //Описание
  44. //
  45. //bool in_array ( mixed needle, array haystack [, bool strict] )
  46.  
  47.  
  48.         $socket_new = socket_accept($socket); //примите новый сокет
  49. //socket_accept - принимает соединение с сокетом.
  50. //
  51. //Описание
  52. //
  53. //resource socket_accept (resource socket)
  54.  
  55.         $clients[] = $socket_new; //добавить сокет для клиента в массив
  56.        
  57.         $header = socket_read($socket_new, 1024); //чтение данных, отправляемых на сокет
  58. //Функция socket_read() читает данные из ресурса сокета socket
  59. //(socket
  60. //Действующий ресурс сокета, созданный при помощи функций socket_create() ,length
  61. //Максимальное количество байт для чтения определено параметром length, type
  62. //Необязательный параметр type - это именованная константа:)
  63.  
  64.         perform_handshaking($header, $socket_new, $host, $port); //проанализировать вебсокетов рукопожатие
  65.        
  66.         socket_getpeername($socket_new, $ip); //узнать IP адрес подключенного сокета
  67.  
  68. //socket_getpeername - запрашивает удалённую сторону данного сокета, что может дать либо пару host/port, либо путь файловой системы UNIX, в зависимости от типа.
  69. //bool socket_getpeername (resource socket, string &addr [, int &port])
  70.  
  71.         $response = mask(json_encode(array('type'=>'system', 'message'=>$ip.' присоединился к беседе...'))); //подготовка данных json ?определение маски для формы?
  72.         send_message($response); //уведомить всех пользователей о новой связи
  73.        
  74.         //освободить место для нового гнезда
  75.         $found_socket = array_search($socket, $changed); //array_search --  Осуществляет поиск данного значения в массиве и возвращает соответствующий ключ в случае удачи
  76. //Описание
  77. //
  78. //mixed array_search ( mixed needle, array haystack [, bool strict] )
  79.         unset($changed[$found_socket]); //unset - разустанавливает данную переменную.
  80.     }
  81.    
  82.     //петля через все подключенные сокеты
  83.     foreach ($changed as $changed_socket) {
  84.        
  85.         //проверьте все входящие данные
  86.         while(socket_recv($changed_socket, $buf, 1024, 0) >= 1)
  87.         {
  88.  
  89. //Функция socket_recv() получает len байт данных в буфер buf из сокета socket. функция socket_recv() может быть использована для получения данных из подсоединённых сокетов. Дополнительно к этому, один или более флагов могут быть указаны для изменения поведения функции.
  90.          //socket
  91. //(Параметр socket должен быть ресурсом сокета, предварительно созданным при помощи функции socket_create().,
  92. //buf
  93. //Полученные данные будут переданы в переменную, указанную в параметре buf. ,
  94. //len
  95. //До len байт будет получено с удалённого хоста.,
  96. //flags
  97. //Значение параметра flags может быть любой комбинацией следующих флагов, соединённых при помощи двоичного оператора OR (|).)
  98.             $received_text = unmask($buf); //демаскировать данных
  99.             $tst_msg = json_decode($received_text); //json_decode — Декодирует JSON строку
  100. //(json
  101. //json строка (string) для декодирования.
  102. //Эта функция работает только со строками в UTF-8 кодировке., assoc
  103. //Если TRUE, возвращаемые объекты будут преобразованы в ассоциативные массивы.
  104. //depth
  105. //Указывает глубину рекурсии.
  106. //options
  107. //Битовая маска опций декодирования JSON. )
  108.  
  109.             $user_name = $tst_msg->name; //имя отправителя
  110.             $user_message = $tst_msg->message; //текст сообщения
  111.             $user_color = $tst_msg->color; //цвет
  112.            
  113.             //подготовка данных для отправки клиенту
  114.             $response_text = mask(json_encode(array('type'=>'usermsg', 'name'=>$user_name, 'message'=>$user_message, 'color'=>$user_color)));
  115.             send_message($response_text); //отправить данные
  116.             break 2; //выйти из цикл
  117.         }
  118.        
  119.         $buf = @socket_read($changed_socket, 1024, PHP_NORMAL_READ); //socket_read - читает максимум length байтов из сокета.
  120. //
  121. //Описание
  122.  
  123. //string socket_read (resource socket, int length [, int type])
  124.         if ($buf === false) { // проверьте отключенных клиентов
  125.             // удалить клиент за $клиенты массива
  126.             $found_socket = array_search($changed_socket, $clients);
  127. //array_search --  Осуществляет поиск данного значения в массиве и возвращает соответствующий ключ в случае удачи
  128. //Описание
  129. //
  130. //mixed array_search ( mixed needle, array haystack [, bool strict] )
  131.  
  132.  
  133.             socket_getpeername($changed_socket, $ip);
  134. //socket_getpeername - запрашивает удалённую сторону данного сокета, что может дать либо пару host/port, либо путь файловой системы UNIX, в зависимости от типа.
  135. //
  136. //Описание
  137. //
  138. //bool socket_getpeername (resource socket, string &addr [, int &port])
  139.  
  140.             unset($clients[$found_socket]);
  141.            
  142.             //уведомлять всех пользователей об отключении связи
  143.             $response = mask(json_encode(array('type'=>'system', 'message'=>$ip.' disconnected')));
  144.             send_message($response);
  145.         }
  146.     }
  147. }
  148. // закрыть прослушивающий сокет
  149. socket_close($sock);
  150.  
  151. function send_message($msg)
  152. {
  153.     global $clients;
  154.     foreach($clients as $changed_socket)
  155.     {
  156.         @socket_write($changed_socket,$msg,strlen($msg));
  157. //socket_write - записывает в сокет.
  158. //
  159. //Описание
  160. //
  161. //int socket_write (resource socket, string buffer [, int length])
  162.  
  163.     }
  164.     return true;
  165. }
  166.  
  167.  
  168. //Демаскировать входящих в обрамлении сообщение
  169. function unmask($text) {
  170.     $length = ord($text[1]) & 127; //ord -- Возвращает ASCII код символа
  171.     if($length == 126) {
  172.         $masks = substr($text, 4, 4);
  173.         $data = substr($text, 8);
  174.     }
  175.     elseif($length == 127) {
  176.         $masks = substr($text, 10, 4);
  177.         $data = substr($text, 14);
  178.     }
  179.     else {
  180.         $masks = substr($text, 2, 4);
  181.         $data = substr($text, 6);
  182.     }
  183.     $text = "";
  184.     for ($i = 0; $i < strlen($data); ++$i) {
  185.         $text .= $data[$i] ^ $masks[$i%4];
  186.     }
  187.     return $text;
  188. }
  189.  
  190. //Кодирование сообщений для передачи клиенту.
  191. function mask($text)
  192. {
  193.     $b1 = 0x80 | (0x1 & 0x0f);
  194.     $length = strlen($text);
  195.    
  196.     if($length <= 125)
  197.         $header = pack('CC', $b1, $length);
  198. //pack - упаковывает данные в бинарную строку.
  199. //
  200. //Описание
  201. //
  202. //string pack (string format [, mixed args])
  203.  
  204.     elseif($length > 125 && $length < 65536)
  205.         $header = pack('CCn', $b1, 126, $length);
  206.     elseif($length >= 65536)
  207.         $header = pack('CCNN', $b1, 127, $length);
  208.     return $header.$text;
  209. }
  210.  
  211. //рукопожатие нового клиента.
  212. function perform_handshaking($receved_header,$client_conn, $host, $port)
  213. {
  214.     $headers = array();
  215.     $lines = preg_split("/\r\n/", $receved_header);
  216.  
  217. //preg_split -- Разбивает строку по регулярному выражению
  218. //Описание
  219. //
  220. //array preg_split ( string pattern, string subject [, int limit [, int flags]] )
  221.     foreach($lines as $line)
  222.     {
  223.         $line = chop($line);
  224.  
  225. //Удаляет пробелы из конца строки
  226. //Описание
  227. //
  228. //string chop ( string str [, string charlist] )
  229.  
  230.         if(preg_match('/\A(\S+): (.*)\z/', $line, $matches))
  231.         {
  232.             $headers[$matches[1]] = $matches[2];
  233.         }
  234.     }
  235.  
  236.     $secKey = $headers['Sec-WebSocket-Key'];
  237.     $secAccept = base64_encode(pack('H*', sha1($secKey . '258EAFA5-E914-47DA-95CA-C5AB0DC85B11')));  //base64_encode - кодирует данные способом MIME base64.
  238.     //hand shaking header качая головой руку
  239.     $upgrade  = "HTTP/1.1 101 Web Socket Protocol Handshake\r\n" .
  240.     "Upgrade: websocket\r\n" .
  241.     "Connection: Upgrade\r\n" .
  242.     "WebSocket-Origin: $host\r\n" .
  243.     "WebSocket-Location: ws://$host:$port/demo/shout.php\r\n".
  244.     "Sec-WebSocket-Accept:$secAccept\r\n\r\n";
  245.     socket_write($client_conn,$upgrade,strlen($upgrade));
  246. }
  247.  

(Добавление)
Все разобрался почему
(Добавление)
Запустил на другом адрессе сокет и все заработало
(Добавление)
в смысле домене
vintag Отправлено: 09 Августа, 2016 - 12:52:09 • Тема: простой и понятный пример сокета. • Форум: Напишите за меня, пожалуйста

Ответов: 3
Просмотров: 61
Скажите хотя бы как отправить рукопожатие с сервера браузеру.
vintag Отправлено: 08 Августа, 2016 - 18:20:34 • Тема: Движок для форума • Форум: CMS и фреймворки

Ответов: 9
Просмотров: 1663
Куча сервисов с бесплатными форумами и доменами. Один такой http://mybb[dot]ru можно отключить рекламу за символическую плату, куча стандартных стилей.
vintag Отправлено: 08 Августа, 2016 - 18:15:20 • Тема: Подмена текста • Форум: JavaScript & VBScript

Ответов: 3
Просмотров: 780
Здравствуйте. Проблема такая. Мне нужно до отправки формы подменить текст, Причем текст в поле должен остаться тот же, а отправиться должна подмена.
Как это сделать без аякса и дополнительных скрытых полей hidden? Или с дополнительными полями, но чтобы набранные символы с текстовых полей не отправлялись, т . е. отправлялись бы только поля hidden из формы.
vintag Отправлено: 06 Августа, 2016 - 20:57:38 • Тема: Помогите с навигацией на страницу вперёд/назад • Форум: Вопросы новичков

Ответов: 17
Просмотров: 626
Если я правильно понимаю у тебя кнопки на странице, ну и вбивай в них ид, а потом вытягивай. также массив на явку для кнопок вперед назад можно тупо передать через вывод.
echo "<SCRIPT>";
.................
echo "var ..........
echo "v[i]=".$t[$j].";"
.......................
......................
...............
.................
vintag Отправлено: 06 Августа, 2016 - 20:46:27 • Тема: Вывести данные с конца БД • Форум: Вопросы новичков

Ответов: 4
Просмотров: 186
Fart пишет:
думаю, ты как то привязывал действия пользователя к определенному отрезку времени или же к конкретному `time`

Достаточно примаари кей использовать инт нот нулл автоинкремент
vintag Отправлено: 04 Августа, 2016 - 21:49:38 • Тема: простой и понятный пример сокета. • Форум: Напишите за меня, пожалуйста

Ответов: 3
Просмотров: 61
Fart пишет:
habrahabr.ru/post/209864 читал это?

нет не читал. уже кое-что, но по-моему слишком поверхностно, посмотрю в свободное время еше
vintag Отправлено: 04 Августа, 2016 - 09:37:33 • Тема: Замена тега в тексте • Форум: Регулярные выражения

Ответов: 6
Просмотров: 732
eri пишет:
Подскажи, как сделать проще?

самое простое это прописать требуемые элементы в другом элементе, элементах. Для этого подойдут таблицы в идеале. ид каждой ячейки должно соответствовать ид заменяемого элемента, например, b0 - c0, b1 -c1, b2-c2 и тд, где цифра есть переменная счетчик исмпользуемая при составлении страницы средствами пшп. таких цифр может быть так же две и более, не важно. Главное что мы делаем с этим всем потом уже явкойскриптом. А делаем мы просто, выбираем ид ячейки таблицы, b0, меняем первую буквсу на c и получается что мы уже обращаемся к элементу который надо сменить. Да льше присваиваем чемуто там содержимое тега, сам тег из ячейки удаляем и прописываем новый в ячейки с содержимым которое сохранили предварительно и ид.
<td id="b0"><p id="c0>содержимое</p></td>
Ну и думаю понятно как из этого каскадную сделать смену
vintag Отправлено: 04 Августа, 2016 - 09:14:32 • Тема: простой и понятный пример сокета. • Форум: Напишите за меня, пожалуйста

Ответов: 3
Просмотров: 61
Напишите пожалуйста простой и понятный пример на сокете. Много чего смотрел, но так и не понял что откуда берется и как вообще подключается к серверу это. Help! Очень хочется научиться!

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB