• 13-05-2010, 13:49:21
    #1
    smf forumum var
    curl ile login oluyoru
    istediğim kategoriye konu actırıyorum
    konu başılığını girdiriyorum
    konu mesajını girdiyorum
    önizleme yaptırıyorum
    ama submit yani göndermeyi yapamadım 2 gündür :S


    html değerlerini ekliyorum php kodlarla birlikte


    html
    <input value="Gönder" tabindex="3" onclick="return submitThisOnce(this);" accesskey="s" class="button_submit" type="submit">
    <input name="preview" value="Önizleme" tabindex="4" onclick="return event.ctrlKey || previewPost();" accesskey="p" class="button_submit" type="submit">
    <?
    
    
    $ch = curl_init(); 
    // curl oturumunu aç
    
    curl_setopt($ch, CURLOPT_HEADER, 1);
    //Header Bilgileri
    
    
    curl_setopt($ch, CURLOPT_URL, 'http://www.*************.net/index.php?action=login2'); 
    //post atılacak adres
    
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    
    
    curl_setopt ($ch, CURLOPT_POST, 1); 
    //yukarıdaki adrese post atacağımızı belirtiyoruz
    
    
    curl_setopt ($ch, CURLOPT_POSTFIELDS, 'user=******&passwrd=******&cookielength=60&cookieneverxp=on&submit=Giriş Yap');
    // sayfanın kaynak kodundan aldığımız form değerlerini post etmek için gerekli değerleri yazıyoruz
    
    
    curl_setopt ($ch, CURLOPT_COOKIEJAR, '/home/*************/public_html/***/cookie/ss.txt');
    //login olduktan sonra gelen cookie değerlerini aldık kullanmak için dosyaya kaydettik (yazma hakkı olmalı)
    
    
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    $store = curl_exec ($ch); 
    //posttan sonra gelen sayfayı alıp değişkene kaydettik (sana lazım olmayabilir)
    
    
    curl_setopt($ch, CURLOPT_COOKIEFILE, '/home/*************/public_html/****cookie/ss.txt');
    //az önce aldığımız cookie değerlerii kullanmak için dosyaya kaydetmiştik şimdi onları yeni bir sayfada kullanmak için geri alıyoruz
    
    
    curl_setopt($ch, CURLOPT_URL, "http://www.*************.net/index.php?action=post;board=350.0");
    // Konu Acılan Sayfa
    
    
    curl_setopt ($ch, CURLOPT_POST, 1); 
    //yukarıdaki adrese post atacağımızı belirtiyoruz
    
    
    
    curl_setopt ($ch, CURLOPT_POSTFIELDS, 'subject=Burası Başıktır&message=Konunun içeriği&submit=Gonder');
    echo $icerik = curl_exec ($ch);
    //Konu Başlığı ve Mesaj 
    
    
    
    ?>
    Bu şekilde önizlme alıyorum

    ama post edemiyorum


    Ekran çıktısı

  • 13-05-2010, 14:22:09
    #2
    Peki bu kodlarla basit bir forma( mesela kendi oluşturduğun ) post edebiliyor musun ?

    Daha önce curl ile forumlara post etmedim ama hidden tipinde token benzeri bir değer varsa sorun olabilir belki.
  • 13-05-2010, 14:31:20
    #3
    eagle_one adlı üyeden alıntı: mesajı görüntüle
    Peki bu kodlarla basit bir forma( mesela kendi oluşturduğun ) post edebiliyor musun ?

    Daha önce curl ile forumlara post etmedim ama hidden tipinde token benzeri bir değer varsa sorun olabilir belki.

    basit bir formda denemedim ama önizleme butonuna tıklattıgına göre yapılır denemek lazım


    konu acarken Önizleme ve Gönder Butonları var orada Önizlme Butonuna Tıklıyor Konuyu Gösteriyor ama Gönder Butonuna Tıklatamadım
  • 13-05-2010, 19:25:45
    #4
    Resim Eklenmiştir Burada Bu Soruya Cevap Bulamazsam Baska Biyerde Bulacağıma inanmıyorum işin doğrusu
  • 13-05-2010, 19:44:23
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Neden cURL kullanıyorsun? SMF'nin kendi konu açma fonksiyonu neyimize yetmiyor?

    <?php
    require_once('./Sources/Subs-Post.php');
    
    // Mesaj ayaları
    $msgOptions = array(
    	'id' => empty($_REQUEST['msg']) ? 0 : (int) $_REQUEST['msg'], // Mesaj ID
    	'subject' => 'Burası Başlıktır', // Başlık
    	'body' => 'Burasıda İçerik', // İçerik
    );
    
    // Konu ayarları
    $topicOptions = array(
    	'id' => empty($topic) ? 0 : $topic,
    	'board' => $board,
    	'mark_as_read' => true, // Okundu olarak işaretle
    );
    
    // İleti yazarı ayarları
    $posterOptions = array(
    	'id' => 1, // İletiyi yazan ID
    	'name' => '', // İletiyi yazan adı
    	'email' => '', // İletiyi yazan emaili
    	'update_post_count' => !$user_info['is_guest'] && !isset($_REQUEST['msg']) && $board_info['posts_count'],
    );
    
    createPost($msgOptions, $topicOptions, $posterOptions);
    ?>
    Daha fazla bilgi:
    http://support.simplemachines.org/fu...unction;id=323
  • 13-05-2010, 19:48:03
    #6
    Güzel Bir Bot Yazıyorum Smfye bu yüzden curl ile yapıyorum diceksinki neden

    öyle olması gerekiyor direk konu acma functionu bu rc3 konuları onaylama var biliyorsundur burada göremedim görsemde zaten amacıma uymuyor

    peki bu kodla değilde smf_messages tablosuna direk insert into etsem yine aynıı işlvei görürmü acaba biliyorsan örnek verebilirmisin

    kafayı yedim bugün 3.gün konuyu actıramıyorum
  • 13-05-2010, 19:53:06
    #7
    Yetmez. smf_boards, smf_topics, smf_members tablolarında da oynamak gerekir. Ayrıca yapabileceğin en iyi yöntem verdiğimdir. Onaylama işi içinse, ./Sources/Post.php'de createPost diye aratın. Biraz yukarısında $msgOptions, $topicOptions, $posterOptions diye 3 tane dizi değişkeni göreceksiniz. Onlara bakın. is_approved falan...
  • 13-05-2010, 19:54:39
    #8
    biliyorum dün aksam baktım inceledim ama buna çözüm bulmam lazım

    teşekkürler bilgiler için
  • 13-05-2010, 20:00:55
    #9
    &submit=Gonder yerine &submit=post yazın.