За последние 24 часа нас посетили 17679 программистов и 1609 роботов. Сейчас ищут 1115 программистов ...

Как скопировать текст юзеру в буфер обмена?

Тема в разделе "Сделайте за меня", создана пользователем ineedsomehelp, 12 июл 2015.

  1. ineedsomehelp

    ineedsomehelp Новичок

    С нами с:
    12 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    Установил на сайт скрипт. Он сокращает ссылки и после при нажатии на кнопку - копирует в буфер сокращенную ссылку.

    Пример urltest.ga -> на странице /create.php

    Кнопка COPY. C ней у меня две проблемы, которые я не смог, но очень хочу решить:
    1. Копирование происходит при клике на надпись "copy", а не на саму кнопку (css перерыл, не получается изменить).
    2. Кнопка копировать, если я правильно разобрался работает через флеш, который запускается JS (?). В общем в этом тоже проблема: баннерорезки либо вырезают все (особенно кнопки социалок), либо при наведении мышки появляется надпись "блокировать" (расширение эдблок) для создания правила.

    Это все создает большие неудобства в использовании скрипта.


    Код create.php

    Код (PHP):
    1. <?php
    2.     require("lib/config.php");
    3.     require("lib/common.php");
    4.  
    5.     $error = false;
    6.     $url  = trim(urldecode(@$_REQUEST['url']));
    7.     if (strstr($url, "http://") == $url) {
    8.     } elseif (strstr($url, "https://") == $url) {
    9.     } else {
    10.     $url = "http://".trim(urldecode(@$_REQUEST['url']));
    11.     }
    12.     $custom  = trim(urldecode(@$_REQUEST['custom']));
    13.     if( empty($url) || $url == "http://" || $url == "https://"  || strlen($url) < 8 || stristr($url,$config_location) ){
    14.         $error = true;
    15.     }else{
    16.         if( !isValidUrl($url) ){ $error = true; }
    17.     }
    18.     require("lib/header.php");
    19.  
    20.  
    21.  
    22.     if (!empty($url) && !$error) {
    23. if (!settingsdb(safe) == '') {
    24.    
    25. $m_url = 'https://sb-ssl.google.com/safebrowsing/api/lookup?client=api&apikey='.settingsdb(safe).'&appver=1.0&pver=3.0&url='.$url;
    26.  
    27. $curl_handle=curl_init();
    28. curl_setopt($curl_handle,CURLOPT_URL,$m_url);
    29. curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
    30. curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
    31. $buffer = curl_exec($curl_handle);
    32. curl_close($curl_handle);
    33.  
    34. }
    35.  
    36. $buffer = "";
    37.  
    38. if (empty($buffer))
    39. {
    40.     $length = strlen($url);
    41.     $short_url = shortenit($url,$custom);
    42.     $surl = $short_url;
    43.     $short_url    = "http://".settingsdb(location)."/".((!$_SESSION['config']['rewrite']) ? "?" : "").$short_url;
    44.     $short_length = strlen($short_url);
    45.  
    46. ?>
    47.     <h2>[url="http://<?php echo $config_location; ?>/url"]</div>[/url] </h2>
    48.  
    49.     <div id='bluebox' class='tbox'>
    50.  
    51.         <div id="content-short-url">
    52.  
    53.     <div class="alert alert-info check">
    54.         <center>The URL has been coppied to your clipboard.</center>
    55.     </div>
    56.             <div class="input-append">
    57.               <input id="appendedInputButton" size="16" type="text" onclick="select_all(this)" class="sturl_field span5" value="<?=$short_url?>" ><a class="btn btn-primary btn-large"><span id="flashbtn">Copy</span></a>
    58.             </div>
    59.  
    60.         </div>
    61.  
    62.  
    63.     <style type="text/css">.check { display:none; }</style>
    64.  
    65.         <div class="<?php if(!settingsdb(socialmedia) == 0 && !settingsdb(qr) == 0 ) { echo "meelab"; } elseif(!settingsdb(qr) == 0) { echo "meelabqr"; } elseif(!settingsdb(socialmedia) == 0 ) { echo "meelab"; } else { echo "none"; } ?>">
    66.         <div class="<?php if(!settingsdb(qr) == 0 && settingsdb(socialmedia) == 0) { echo "qro"; } elseif(!settingsdb(qr) == 0 && !settingsdb(socialmedia) == 0) { echo "qr"; } else { echo "none";} ?>"><img src="https://chart.googleapis.com/chart?chs=200x200&cht=qr&chl=<?php echo $short_url; ?>" /></div>
    67.  
    68.  
    69.             <div class="socialmedia <?php if(settingsdb(socialmedia) == 0 ) { echo "none"; } ?>">
    70.                 <?php if(!settingsdb(socialmedia) == 0 && !settingsdb(qr) == 0 ) ?>
    71.  
    72. <a href="http://vk.com/share.php?url=<?=$short_url?>" target="_blank">
    73.                 <div class="vk <?php if(!settingsdb(socialmedia) == 0 && settingsdb(qr) == 0 ) { echo "share_btns"; } else { echo "share_btn"; } ?>">
    74.                     Р’Контакте
    75.                 </div></a>
    76.  
    77.     <a href="http://www.facebook.com/sharer.php?u=<?=$short_url?>" target="_blank">
    78.                 <div class="facebook <?php if(!settingsdb(socialmedia) == 0 && settingsdb(qr) == 0 ) { echo "share_btns"; } else { echo "share_btn"; } ?>">
    79.                     Facebook
    80.                 </div></a>
    81.                 <a href="https://twitter.com/share?url=<?=$short_url?>" target="_blank">
    82.                 <div class="twitter <?php if(!settingsdb(socialmedia) == 0 && settingsdb(qr) == 0 ) { echo "share_btns"; } else { echo "share_btn"; } ?>">
    83.                     Twitter
    84.                 </div></a>
    85.  
    86.             </div>
    87.             <div class="clearfix"></div>
    88.         </div>   
    89.  
    90.     </div>
    91.  
    92. <?
    93. }
    94. else
    95. {
    96.     echo "<h2>This URL has been flagged by our system as ";
    97.     print $buffer;
    98.     echo ". <br/>РњС‹ РЅРµ РјРѕР¶РµРј СЃРѕРєСЂР°С‚ить РґР°РЅРЅС‹Р№ Url.</h2>";
    99. }
    100.  
    101.  
    102.     }else {
    103.         echo "<h2>Ссылка РЅРµРєРѕСЂСЂРµРєС‚ная, <a href=/url>попробуйте СЃРЅРѕРІР°</a>.</h2>";
    104.     }
    105. ?>
    106.     </div>
    107.  
    108. <?php
    109.     require("lib/footer.php");
    110. ?>

    Так же прикладываю полный оригинальный скрипт https://yadi.sk/d/DO0Ve4EWhovvd

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Код (Text):
    1. <a class="btn btn-primary btn-large"><span id="flashbtn">Copy</span></a>
    1. это не кнопка. Это - ссылка. Заменить на кнопку проблем не составит?
    2. где вы тут нашли флеш? Насколько я вижу - есть инпут, в нём ссылка. При клике на инпут вызывается js-функция select_all, в которую передаётся параметр this.
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    так какой вопрос?
     
  4. ineedsomehelp

    ineedsomehelp Новичок

    С нами с:
    12 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    Я приложил полный скрипт. Если не сложно, посмотрите его.

    В папке lib/footer.php

    Код (Text):
    1. <script>
    2.  
    3. $(document).ready(function(){
    4.  
    5.     $("#flashbtn").zclip({
    6.         path:'http://<?php echo settingsdb(location); ?>/assets/ZeroClipboard.swf',
    7.         copy:$('#appendedInputButton').val(),
    8.         afterCopy:function(){
    9.             $('.check').slideDown();
    10.             return $(this).prev().val();
    11.         }
    12.     });
    13.  
    14.  
    15. });
    16.  
    17.  
    18. setTimeout(function(){
    19.     $(".check").slideUp("slow");
    20.   }, 8000 );
    21.  
    22. </script>
    Именно поверх текста, идет скрипт копирования на флеш. Создается кнопка, которую очень хотят блочить рекламорезки.



    Нужна помощь: настроить копирование на полностью кнопку. Сейчас я расширил область копирования с надписи, теперь эта флеш-кнопка стала больше. Но возникает проблема, описанная выше: рекламорезки блочат/съедают эту флеш-кнопку.

    Как мне избавится от флеш-кнопки, сделав обычную, которая будет копировать полученную ссылку?




    Посмотреть результат, расширения флеша на всю кнопку/ссылку можно по адресу http://urltest.ga/create.php (нужно ссылку сократить). По мне сомнительное удовольствие использовать флеш.
     
  5. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    А по каким сигнатурам её блокирует? Посмотри их и измени, чтобы перестало определяться

    Добавлено спустя 1 минуту 28 секунд:
    Посмотри, блокируется ли демо http://www.steamdev.com/zclip/
     
  6. ineedsomehelp

    ineedsomehelp Новичок

    С нами с:
    12 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    Вы понимаете, что вы предлагаете не решение проблемы? По аналогии: в Москве много пробок каждый день. Поэтому я пересяду на велосипед.
    Я хочу сказать, что как мои сигнатуры помогут посетителям сайта? Я хочу решить проблему, а не обойти ее в своем браузере. Если бы я преследовал цель работать с каким-то сайтом, я не создавал бы топик с описание работы скрипта.
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Ответь на второй вопрос, я предлагаю решение которое будет работать у всех, хочу подтолкнуть тебя к информации которая поможет выполнить твою задачу.
    Ты мог поступить проще, дать ссылку на сайт с проблемой и сказать в каком браузере и какое расширение блокирует кнопку, после чего тебе бы подсказали в чём проблема.
     
  8. ineedsomehelp

    ineedsomehelp Новичок

    С нами с:
    12 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    Ссылку я указывал в первых двух постах. Или о какой сылке речь?
    данной ссылки не было на момент моего прочтения поста. я ее только сейчас увидел. в любом случае, поверх кнопки постоянно вылезает "блокировать?" лично у меня (эдблок без плюса). А я пытаюсь скопировать ссылку, но постоянно выскакивает правило.
    кнопка на странице urltest.ga/create.php появляется после сокращения ссылки.

    Если есть возможность делать копирование без флеша и джавы (часто же отключена), то был бы более предпочтительный вариант.

    Добавлено спустя 7 минут 23 секунды:
    Хочу добавить, что сейчас я размер кнопки расширил (раньше она прозрачная лишь поверх надписи была) и эдблок у меня не предлагает блочить (в прикрепленном оригинальном скрипте предлагает). Но так как не факт, как себя будет вести и на этот флеш реагировать в других браузерах и рекламорезках, то я ищу варианты более прозрачного скрипта для антивирусников и баннерорезок.

    Добавлено спустя 8 минут 13 секунд:
    Chrome [​IMG]

    Vivaldi [​IMG]

    Еще более смешной момент: невидимая флеш-кнопка остается, а фейковая с надписью смещается (после нажатия) [​IMG]

    Добавлено спустя 14 минут 23 секунды:
    Блокировка в FF + AB+
    [​IMG]

    [​IMG]
     
  9. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Ух ты. Действительно флеш. Автор, не джава, а javascript, наверно, ты имел в виду? Если так, то не надо путать. Это разные вещи. Ну и сетовать на его отключение тоже не надо. Сейчас он уже почти ни у кого не отключен. А параноики сами виноваты, что у них почти ни один сайт не работает, как должен.
    По теме: глянул я, как зклип работает и почему адблок любит его блочить. Он создаёт невидимое поле на инпуте, что даёт возможность копировать текст не только по нажатию кнопки, но и по самому инпуту. А такие вещи адблоку не нравятся. В общем надо уходить от этого решения. К прочтению:
    http://htmlweb.ru/java/clipboard.php

    Добавлено спустя 10 минут 38 секунд:
    ещё
    http://www.sukebe.ru/blog-posts/13/
     
  10. ineedsomehelp

    ineedsomehelp Новичок

    С нами с:
    12 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    К сожалению все ваши скрипты устарели и не работают. Есть ли готовый работающий вариант?
     
  11. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Тема: PHP для новичков

    Автор, а ты собираешься что-то делать пытаться сам? Или тема переносится в "Сделайте за меня"?
     
  12. ineedsomehelp

    ineedsomehelp Новичок

    С нами с:
    12 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    А вы кто, полиция "скажи не вникая в тему"? Ссылку видели в начале топика на пример? Так вот по теме предложений я все там пробую и проверяю. Результата я не добился. Можете посмотреть ссылку и убедиться, что я делаю по мере поступающей информации. А ваш пост никакой пользы не принес. Хотя, судя по вашему количеству сообщений и дате регистрации (плюс я пробежался по сообщениям вашим), легко сделать вывод, что вы обычный флудер, и данный пост был в рамках вашей "работы".
     
  13. ineedsomehelp

    ineedsomehelp Новичок

    С нами с:
    12 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    Подчеркну, что данные решения более неактуальны и нерабочие. Они были актуальны еще для ФФ3.5 и тех же времен другие браузеры. Сейчас эти скрипты не обрабатываются никак.

    Какой метод сейчас, кроме флеш используется? Может есть чистый JS?
     
  14. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    You god damn right!

    Тут ты кстати тоже прям в корень зришь.

    Только с самой "работой" промахнулся.

    Тема перенесена в "Сделайте за меня".