2010-10-18 3 views
2

Вы видите их повсюду. Как и твиттер и кнопки facebook, которые отображаются в блогах и на веб-сайтах, на которых отображается несколько «твитов» или «нравится». Все, что мне нужно, это показать номер из моей базы данных MySQL на основе двух переменных (имя пользователя и идентификатор). Вероятно, было бы полезно как-то зашифровать переменные, чтобы пользователи не могли просто изменить код значка и отобразить номер другого пользователя. Но что еще более важно, мне просто нужно знать, как использовать HTML-код, как вы находите в знаках социальной сети, и поговорить с PHP-скриптом на моем сервере, который будет вычислять номер из базы данных на основе переменных, хранящихся в значке ,Как вы делаете значок социальной сети?

Любой ключ, с чего начать?

Редактировать: Я не говорю о типах значков, которые вы находите в stackoverflow, я имею в виду другие сайты, которые вы можете вставить на свой блог/сайт. Как и Digg, вы можете показать, что ваш сайт был dugg 7000 раз и т. Д.

+0

Лучшим способом было бы зашифровать имя пользователя в строке с другим случайным значением и расшифровать его на скрипте сервера. Конечно, не привязывая ссылочный домен значка к вашему серверному приложению, вы не могли бы запретить кому-либо использовать его на другом сервере. – woodscreative

ответ

5

Возможно, вы захотите найти библиотеку GD для PHP и связанных с ней учебников. В принципе, все эти значки состоят из статического изображения в качестве шаблона с добавлением некоторого динамического текста сверху, обычно состоящего из имени пользователя и числа (нравится, твиты и т. Д.).

Для HTML кода, вы могли бы сделать что-то подобное:

<img src="http://www.yourserver.com/yourscript.php?username=miki&id=1337" /> 

это будет отправить запрос HTTP GET в сценарий, заставляя его выполнять. Затем ваш сценарий может связываться с базой данных, извлекать информацию пользователя, использовать GD для вставки этого текста в шаблон и затем возвращать его в браузер с правильным типом и типом mime.

2

Вы говорите о вызове удаленного скрипта, по существу.

Я предполагаю, что вы имеете в виду что-то вроде этого - Вы просматриваете свою анкету на своей стороне. У вас есть виджет, который обещает отобразить общее количество очков, которые у вас есть, например. Вы предлагаете кнопку «код», например, встраивание YouTube или facebook «как» Пользователь нажимает на это, получает сегмент кода и, как ожидается, сможет вставить его в любом месте в Интернете, где это применимо, и код будет генерировать значок или что-то с предположительно именем пользователя и их точками.

Во-первых, вы можете сделать это несколькими способами. На мой взгляд, наиболее рентабельным является создание кнопки пользователя на вашем сервере при обновлении - например, ваши точки означают «количество палец вверх по вашим статьям», поэтому это будет целочисленное значение. Каждый раз, когда вы получаете большие пальцы, вы должны повторно кэшировать кнопку и записывать ее в текстовый файл. Если вы хороши, вы должны записать его на изображение и сгладить его на jpg или gif. Если вы не знаете, как это сделать, вы можете записать его в html и сохранить файл как пользовательский «slug», такой как md5 (имя пользователя). «Html» - таким образом каждый раз, когда вызывается сервер, вы не Не нужно накапливать пропускную способность с избыточными запросами и поиском аккаунта. Вы обслуживаете только оптимизированное изображение или html-файл.

Во-вторых - вы можете предоставить пользователю iframe, в котором есть html. Это как правило, как facebook «like» делает это для людей, которые не используют метод fbml. Проблема в том, что многие сайты видят iframes в качестве потенциальной атаки xss и будут их лишать. Таким образом, чтобы использовать iframe, вам нужно будет управлять доменом, что может привести к поражению цели вашего запроса, если вы намерены поделиться своим профилем.

В-третьих, вы можете вызвать js-файл на своем сервере, который делает ajax-вызов в вашей базе данных и обслуживает результаты. Это, скорее всего, будет рассматриваться как атака xss, и вам, вероятно, не стоит даже больше думать об этом.

Я упомянул методы iframe и js на случай, если вы хотите предоставить возможность другим людям, которые запускают собственные сайты. Способ «как» используется владельцами сайтов, чтобы показать, сколько раз их домен был «понравился» и так далее. Эти люди контролируют домены, поэтому методы iframe и js логичны.

So - Этот ответ может не иметь большого количества необработанного кода для вас, но он должен помочь вам начать. Я буду использовать метод изображения, так как это безопаснее. Вы бы дали пользователю тег изображения с их слизью в атрибуте src. Они могут вставлять его в любом месте, и нет возможности переписать номер внутри изображения. Большинство форумов и мест, где вы можете просто публиковать на чужих сайтах, допускают образы. Просто выполните поиск в Google по рисованию изображений с помощью php, а также с помощью библиотеки imagemagick для слияния текста и изображений.

+0

- именно то, что сказал miki, за исключением того, что я бы фактически сгладил его до изображения, чтобы вы не вызывали php-файл в src. Многие сайты будут регулярно выходить из вашего сообщения. –

+0

Я предоставлял базовый пример, но да, вы абсолютно правы, когда говорите, что сглаживание изображения будет лучше. С моим описанием, если многие пользователи использовали эту функцию, вам, очевидно, потребуется некоторое кэширование в виде сохранения его на изображении, чтобы не попасть в базу данных и не использовать время процессора для GD. –

 Смежные вопросы

  • Нет связанных вопросов^_^