Зарегистрируйтесь и войдите в SMF с помощью CURL - PullRequest
0 голосов
/ 06 января 2010

Я работаю над веб-сайтом, на котором есть область форума, и, вероятно, я буду использовать программное обеспечение форума SMF для форума. Пользователи могут зарегистрироваться и войти на сайт. Я хотел бы добиться этого, когда они регистрируются на сайте, они также регистрируются на форуме (им не нужно регистрироваться дважды). А также, когда они заходят на веб-сайт, он также регистрирует их на форуме, чтобы им не приходилось заходить дважды.

Я думаю, что это возможно с помощью curl, но мне нужно увидеть пример кода, чтобы я мог разобраться. Основная проблема в том, что на странице регистрации есть капча, поэтому я не знаю, как с этим справиться.

Ответы [ 2 ]

1 голос
/ 06 января 2010

На форумах SMF есть сообщение, в котором объясняется, как опубликовать тему с помощью cURL. http://www.simplemachines.org/community/index.php?topic=53433.0

Вы можете использовать тот же метод для регистрации, просто используя разные переменные формы

Добавление:

Основная проблема заключается в том, что на на странице регистрации есть капча так что я не знаю, как с этим справиться.

Я думаю, дело в том, что вы не должны обходить капчу.

1 голос
/ 06 января 2010

Основные шаги для этого просты.

Во-первых, регистрация. Когда вы регистрируетесь на основном сайте, просто добавьте запись базы данных в базу данных форума с правильной информацией о пользователе:

INSERT INTO TABLE (`Field1`, `Field2`) VALUES(`Value1`, `Value2`)

Следующая часть немного сложнее.

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

if(checkSiteCookie() == true) { // ... do stuff ... 

превращается в

if(checkSiteCookie() == true || checkCompanyCookie() == true)) { // .. do stuff..

Если Сайт и Форум находятся в одном домене, вы можете использовать функцию cookie форума для установки cookie в вашем скрипте.

setMyCookie();
setForumCookie();

Если вы не можете, вы всегда можете попробовать использовать AJAX, чтобы сначала отправить свою форму входа на страницу входа, а затем на форумы. После того, как они будут завершены, перенаправьте их на соответствующую страницу.

// Get your Site Cookies and Log In
$.post("mylogin.php", form, function(data){

    // Get the Forum's Cookies
    $.post("forumlogin.php", form, function(data){

         // Reload the Page
         window.location.reload(true);
    }
});
...