Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Wordpress, POST и curl, Передача параметров в блог 
:(
    Опции темы
farrow
Дата 21.3.2008, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 3.2.2008

Репутация: нет
Всего: нет



Вообщем, постараюсь как можно детальнее описать задумку. Нужно скриптом пересылать данные в блог (POST метод), тем самым оставляя там комментарий.

Но то ли я где-то ошибся, то ли руки не оттуда растут, но у меня просто сохраняется страничка, данные не передаются. Вот листинг моего скрипта:

Код

<?php

   $data = urlencode('author=Kelly&[email protected]&url=http://buy.com&comment=nice&comment_post_ID=5');
    $useragent="Mozilla/5.0 (Windows; U; Windows NT 5.0; us; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6";

    $URL = "http://localhost/wordpress/wp-comments-post.php?";
    $cp = curl_init($URL);
    curl_setopt($cp, CURLOPT_USERAGENT, $useragent);
    curl_setopt($cp, CURLOPT_POST, 1);
    curl_setopt($cp, CURLOPT_POSTFIELDS,$data);
    curl_setopt($cp, CURLOPT_RETURNTRANSFER, 1);
    $code = curl_exec($cp);
    curl_close($cp);
 ?>




Вот листинг формы, значения которой я передаю:

Код


<form action="http://localhost/wordpress/wp-comments-post.php" method="post" id="commentform">


<p><input type="text" name="author" id="author" value="Kiko" size="22" tabindex="1" />
<label for="author"><small>Name (required)</small></label></p>

<p><input type="text" name="email" id="email" value="[email protected]" size="22" tabindex="2" />
<label for="email"><small>Mail (will not be published) (required)</small></label></p>

<p><input type="text" name="url" id="url" value="http://bughy.com/" size="22" tabindex="3" />
<label for="url"><small>Website</small></label></p>


<!--<p><small><strong>XHTML:</strong> You can use these tags: &lt;a href=&quot;&quot; title=&quot;&quot;&gt; &lt;abbr title=&quot;&quot;&gt; &lt;acronym title=&quot;&quot;&gt; &lt;b&gt; &lt;blockquote cite=&quot;&quot;&gt; &lt;code&gt; &lt;em&gt; &lt;i&gt; &lt;strike&gt; &lt;strong&gt; </small></p>-->

<p><textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p>

<p><input name="submit" type="submit" id="submit" tabindex="5" value="Submit Comment" />
<input type="hidden" name="comment_post_ID" value="15" />
</p>


Ну и навсякий случай выкладываю листинг файла, который принимает данные (wp-comments-post.php):

Код


<?php
require( dirname(__FILE__) . '/wp-config.php' );

nocache_headers();

$comment_post_ID = (int) $_POST['comment_post_ID'];

$status = $wpdb->get_row("SELECT post_status, comment_status FROM $wpdb->posts WHERE ID = '$comment_post_ID'");

if ( empty($status->comment_status) ) {
    do_action('comment_id_not_found', $comment_post_ID);
    exit;
} elseif ( 'closed' ==  $status->comment_status ) {
    do_action('comment_closed', $comment_post_ID);
    wp_die( __('Sorry, comments are closed for this item.') );
} elseif ( 'draft' == $status->post_status ) {
    do_action('comment_on_draft', $comment_post_ID);
    exit;
}

$comment_author       = trim($_POST['author']);
$comment_author_email = trim($_POST['email']);
$comment_author_url   = trim($_POST['url']);
$comment_content      = trim($_POST['comment']);

// If the user is logged in
$user = wp_get_current_user();
if ( $user->ID ) :
    $comment_author       = $wpdb->escape($user->display_name);
    $comment_author_email = $wpdb->escape($user->user_email);
    $comment_author_url   = $wpdb->escape($user->user_url);
else :
    if ( get_option('comment_registration') )
        wp_die( __('Sorry, you must be logged in to post a comment.') );
endif;

$comment_type = '';

if ( get_option('require_name_email') && !$user->ID ) {
    if ( 6 > strlen($comment_author_email) || '' == $comment_author )
        wp_die( __('Error: please fill the required fields (name, email).') );
    elseif ( !is_email($comment_author_email))
        wp_die( __('Error: please enter a valid email address.') );
}

if ( '' == $comment_content )
    wp_die( __('Error: please type a comment.') );

$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'user_ID');

$comment_id = wp_new_comment( $commentdata );

$comment = get_comment($comment_id);
if ( !$user->ID ) :
    setcookie('comment_author_' . COOKIEHASH, $comment->comment_author, time() + 30000000, COOKIEPATH, COOKIE_DOMAIN);
    setcookie('comment_author_email_' . COOKIEHASH, $comment->comment_author_email, time() + 30000000, COOKIEPATH, COOKIE_DOMAIN);
    setcookie('comment_author_url_' . COOKIEHASH, clean_url($comment->comment_author_url), time() + 30000000, COOKIEPATH, COOKIE_DOMAIN);
endif;

$location = ( empty($_POST['redirect_to']) ? get_permalink($comment_post_ID) : $_POST['redirect_to'] ) . '#comment-' . $comment_id;
$location = apply_filters('comment_post_redirect', $location, $comment);

wp_redirect($location);

?>



Да, кстати, если вводить руками в браузер http://localhost/wordpress/wp-comments-pos...mment_post_ID=5, тоже ничего не происходит.
PM MAIL   Вверх
Fortop
Дата 22.3.2008, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 1
Всего: 42



Код

$data = array('author' => 'Kelly',
'email' => '[email protected]',
'url' => 'http://buy.com',
'comment' => 'nice',
'comment_post_ID' => '5');

Попробуй сделать так.
А вообще мануал вещь хорошая. smile


Это сообщение отредактировал(а) Fortop - 22.3.2008, 13:20


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
farrow
Дата 22.3.2008, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 3.2.2008

Репутация: нет
Всего: нет



Fortop, благодарю за помощь, заработало smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.2798 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.