Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
16
Cevap
669
Tıklama
0
Öne Çıkarma
Yazdırmış olduğum php bot ta bi özelliği değiştirmek istiyorum
H
11 yıl
Onbaşı
Konu Sahibi

Yazdırmış olduğum bot forum, sayfa ve kişilerin gönderilerini rasgele seçip facebook benzeri duvarda rasgele şekilde yayınlamaktadır. Yalnız sürekli çok eski gönderileri satırlardan seçmekte ve yayınlamakta. Aşağıda gösterilen kodda nereyi nasıl değiştireyim ki forumda yayınlanan son 20 gönderiyi, sayfada ( guruplarda)) yayınlanan son 20 gönderiyi ve kişilerin (user) son 20 gönderiyi rasgele seçsin. Ek sik dosya varsa onları da yükleyebilirim. Yardımlarınız için şimdiden teşekkürler

<?php
$fl = fopen('hm.txt', 'r');
$str = fgets($fl);
fclose($fl);
preg_match('#<user>(.*?)</user>#s', $str, $getuser);
$user = $getuser[1];
preg_match('#<group>(.*?)</group>#s', $str, $getgroup);
$group = $getgroup[1];
preg_match('#<forum>(.*?)</forum>#s', $str, $getforum);
$forum = $getforum[1];
$user = htmlspecialchars($user);
$group = htmlspecialchars($group);
$forum = htmlspecialchars($forum);
$user = get_magic_quotes_gpc() ? stripslashes($user) : $user;
$group = get_magic_quotes_gpc() ? stripslashes($group) : $group;
$forum = get_magic_quotes_gpc() ? stripslashes($forum) : $forum;
include('connect.php');
$user = function_exists('mysql_real_escape_string') ? mysql_real_escape_string($user) : mysql_escape_string($user);
$group = function_exists('mysql_real_escape_string') ? mysql_real_escape_string($group) : mysql_escape_string($group);
$forum = function_exists('mysql_real_escape_string') ? mysql_real_escape_string($forum) : mysql_escape_string($forum);



$time = time();

mysql_query("update se_actions set action_date='$time' where action_object_owner='user' order by rand() limit $user ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='group' order by rand() limit $group ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='forum' order by rand() limit $forum ");






?>

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



H
11 yıl
Onbaşı
Konu Sahibi

Daha iyi anlaşılabilmesi için sitemiz www.hopboom.com yerlifacebook projesidir.


Bu mesaja 1 cevap geldi.
S
11 yıl
Teğmen

quote:

Orijinalden alıntı: hopboomyerlifacebook

Daha iyi anlaşılabilmesi için sitemiz www.hopboom.com yerlifacebook projesidir.

o bu değilde sırf o yerli facebook ibaresinden dolayı davalık olabileceğinin farkında mısın ?


Bu mesaja 2 cevap geldi.
B
11 yıl
Çavuş

Hocam sitenizi merak ettim. Kayıt olmak istediğimde kullanıcı adında karakter ve rakam kullanmam gerektiğini söylüyor. Yani AhmetAli16 gibi ? Bu özelliği kaldırsanız daha hoş olur.


Bu mesaja 1 cevap geldi.
H
11 yıl
Onbaşı
Konu Sahibi

quote:

Orijinalden alıntı: BiLims

Hocam sitenizi merak ettim. Kayıt olmak istediğimde kullanıcı adında karakter ve rakam kullanmam gerektiğini söylüyor. Yani AhmetAli16 gibi ? Bu özelliği kaldırsanız daha hoş olur.

İlginiz için teşekkürler



F
11 yıl
Yüzbaşı

quote:

Orijinalden alıntı: Salvat1on

quote:

Orijinalden alıntı: hopboomyerlifacebook

Daha iyi anlaşılabilmesi için sitemiz www.hopboom.com yerlifacebook projesidir.

o bu değilde sırf o yerli facebook ibaresinden dolayı davalık olabileceğinin farkında mısın ?

Katılıyorum. Yeni sosyal ağ demeli bence ismine. facebook ibaresi geçmesi hem kullanıcılar tarafından hoş karşılanmaz(şahsen yerli facebook yazısından sonra ben o siteye bi daha girmem. facebook varken gerek duymam napayım..) hemde arkadaşın dediği gibi dava açılır hakkınızda tazminat ödemeniz gerekebilir bu konuda dikkatli olmalısınız


Bu mesaja 1 cevap geldi.
H
11 yıl
Onbaşı
Konu Sahibi

quote:

Orijinalden alıntı: Mr.Finch

quote:

Orijinalden alıntı: Salvat1on

quote:

Orijinalden alıntı: hopboomyerlifacebook

Daha iyi anlaşılabilmesi için sitemiz www.hopboom.com yerlifacebook projesidir.

o bu değilde sırf o yerli facebook ibaresinden dolayı davalık olabileceğinin farkında mısın ?

Katılıyorum. Yeni sosyal ağ demeli bence ismine. facebook ibaresi geçmesi hem kullanıcılar tarafından hoş karşılanmaz(şahsen yerli facebook yazısından sonra ben o siteye bi daha girmem. facebook varken gerek duymam napayım..) hemde arkadaşın dediği gibi dava açılır hakkınızda tazminat ödemeniz gerekebilir bu konuda dikkatli olmalısınız

Arkadaşlar yerlifacebook tarifi duvarın davranışını yazılımcıların anlaması için. Yoksa yerli sosyal ağ projesi olarak atfediyoruz. Biz facebook olma iddasın da değiliz. Bu proje, amacı olan bi proje.

Konuda belirttiğim gibi bot yazıldı çalıştırdığımda tüm gönderiler içerisinden rasgele gönderi çekip duvarda yayınlıyor. Karışık gönderi oluşuyor. Ancak sorun şu ki sorgu sürekli çok eski gönderileri duvara taşıyor. Bunun için yardım rica ediyorum. Son gönderilerden 20 şer adet olanların için den rasgele getirmesini istiyorum.

Bi fikir verirseniz çok sevinirim.



A
11 yıl
Yüzbaşı

Bukadar büyük bir fikriyat ortaya atılmış madem şu işi bilen birisine birilerine adam akıllı yaptırsanız iyi olacak


yapmanız gereken şey şu

mysql_query("update se_actions set action_date='$time' where action_object_owner='user' order by rand() limit $user ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='group' order by rand() limit $group ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='forum' order by rand() limit $forum ");


update yaparken random olarak alıyor verileri ancak bir şart koşmadan çekiyor. bu yüzden de id değeri ilk olanları çekiyor


mysql_query("update se_actions set action_date='$time' where action_object_owner='user' order by rand() DESC limit $user ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='group' order by rand() DESC limit $group ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='forum' order by rand() DESC limit $forum ");

DESC son dan başlamak anlamına geliyor. ayrıca limit olayını da belirtmemisiniz limit belirte bilirsiniz

$limit = "20";


mysql_query("update se_actions set action_date='$time' where action_object_owner='user' order by rand() DESC limit $limit ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='group' order by rand() DESC limit $limit ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='forum' order by rand() DESC limit $limit ");




Kolay Gelsin


Bu mesaja 2 cevap geldi.

Bu mesajda bahsedilenler: @hopboomyerlifacebook
H
11 yıl
Onbaşı
Konu Sahibi

quote:

Orijinalden alıntı: aksoydesign

Bukadar büyük bir fikriyat ortaya atılmış madem şu işi bilen birisine birilerine adam akıllı yaptırsanız iyi olacak


yapmanız gereken şey şu

mysql_query("update se_actions set action_date='$time' where action_object_owner='user' order by rand() limit $user ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='group' order by rand() limit $group ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='forum' order by rand() limit $forum ");


update yaparken random olarak alıyor verileri ancak bir şart koşmadan çekiyor. bu yüzden de id değeri ilk olanları çekiyor


mysql_query("update se_actions set action_date='$time' where action_object_owner='user' order by rand() DESC limit $user ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='group' order by rand() DESC limit $group ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='forum' order by rand() DESC limit $forum ");

DESC son dan başlamak anlamına geliyor. ayrıca limit olayını da belirtmemisiniz limit belirte bilirsiniz

$limit = "20";


mysql_query("update se_actions set action_date='$time' where action_object_owner='user' order by rand() DESC limit $limit ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='group' order by rand() DESC limit $limit ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='forum' order by rand() DESC limit $limit ");




Kolay Gelsin




Çok teşekkürler yardımlarınız için



H
11 yıl
Onbaşı
Konu Sahibi

quote:

Orijinalden alıntı: aksoydesign

Bukadar büyük bir fikriyat ortaya atılmış madem şu işi bilen birisine birilerine adam akıllı yaptırsanız iyi olacak


yapmanız gereken şey şu

mysql_query("update se_actions set action_date='$time' where action_object_owner='user' order by rand() limit $user ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='group' order by rand() limit $group ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='forum' order by rand() limit $forum ");


update yaparken random olarak alıyor verileri ancak bir şart koşmadan çekiyor. bu yüzden de id değeri ilk olanları çekiyor


mysql_query("update se_actions set action_date='$time' where action_object_owner='user' order by rand() DESC limit $user ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='group' order by rand() DESC limit $group ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='forum' order by rand() DESC limit $forum ");

DESC son dan başlamak anlamına geliyor. ayrıca limit olayını da belirtmemisiniz limit belirte bilirsiniz

$limit = "20";


mysql_query("update se_actions set action_date='$time' where action_object_owner='user' order by rand() DESC limit $limit ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='group' order by rand() DESC limit $limit ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='forum' order by rand() DESC limit $limit ");




Kolay Gelsin




Sizin verdiğiniz komutları denedim. Buradaki $limit = "20"; tanımlaması şu tetiklemeyi yaptı: user paylaşımından 20 adet, group paylaşımından 20 adet, forum paylaşımından 20 adet. Ben bunu istemedim aslında.

$user, $gorup, $forum değişkenlerine ben dışarıdan yazılı ufak bir program ile kaç adet olacağını ataya biliyorum. Örneğin user 5 adet group 10 adet ve forum 2 adet olsun diyebiliyorum.

Sizin düzenlemenizi yaptığımda son eklenenden itibaren yapmaya başladı. desc komutu bunu yaptı. ancak $limit ataması istediğimi yapmadı.

Benim istediğim random komutu için sadece son 50 kullanıcı gönderimi, son 50 group gönderimi, son 50 forum gönderimi içinde random yani rasgele getirmesi.


Sistemde kullanıcı gönderimi, sayfa gönderimi, forum gönderimi, itiraf, fıkra, oyun, müzik vb 300 binden fazla gönderi mevcut. Ben hepsi içinde değil yukarıda belirtiğim gibi son 50 gönderiler içinde rasgele çekilmesini istiyorum.

malesef $limit ataması gönderi adedini beliyor. Gönderi adedine ben dışarıdan hakimim ve değiştirebiliyorum.

Yardım ederseniz çok sevinirim şimdiden teşekkürler.


Bu mesaja 1 cevap geldi.
A
11 yıl
Yüzbaşı

mysql_query("update se_actions set action_date='$time' where action_object_owner='user' order by rand() DESC limit $user ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='group' order by rand() DESC limit $group ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='forum' order by rand() DESC limit $forum ");

limiti zaten belirleyebiliyorsan $limit koymama gerek yok. istediğin şey tam olaraknedir anlamış değilim.

limiti 50 yap son 50 kaydı rastgele listele. bu yukarıdaki kod bu işlevi görüyor zaten.












< Bu mesaj bu kişi tarafından değiştirildi aksoydesign -- 20 Mayıs 2014; 3:39:16 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @hopboomyerlifacebook
H
11 yıl
Onbaşı
Konu Sahibi

quote:

Orijinalden alıntı: aksoydesign

mysql_query("update se_actions set action_date='$time' where action_object_owner='user' order by rand() DESC limit $user ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='group' order by rand() DESC limit $group ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='forum' order by rand() DESC limit $forum ");

limiti zaten belirleyebiliyorsan $limit koymama gerek yok. istediğin şey tam olaraknedir anlamış değilim.

limiti 50 yap son 50 kaydı rastgele listele. bu yukarıdaki kod bu işlevi görüyor zaten.









evet limiti dışarıdan ayrı program yardımı ile belirleye biliyorum. Benim istediğim şöyle. Diyelim user tablosunda şu ana kadar 50 bin gönderi oluştu. son 50 gönderi içerisinden rasgele 5 yazıyı yazdırmak istiyorum. 5 yazıyı dışarıdan program ile seçebiliyorum. Rasgele seçimini user gönderileri içerisinden ve son 50 gönderiden yapıp 5 gönderiyi getirip duvara yazmalı.

Aynı durum forum ve sayfa adını verdiğim group içinden yapmalı.

dışarıdan limiti beliyebildiğim için buna müdahale etmemeli. Ben canımın istediği gibi bu programla bazen 2 gönderi user forumdan 4 group tan da 6 gönderi gönder şeklinde limitleyebiliyoru. ama tüm gönderiler içinden rasgele getiriyor. Ben son 50 gönderileri içerisinden çekmek istiyorum.


Bu mesaja 2 cevap geldi.
H
11 yıl
Onbaşı
Konu Sahibi

H
11 yıl
Onbaşı
Konu Sahibi

Tüm durumları denedim $limit tamamında arama yapıyor.



B
11 yıl
Çavuş

Php konusunda bilgim yok, ama şöyle bi öneri sunabilirim. Bu gönderilerin hepsini bir satır olarak tuttuğunu varsayarsak bu satırların primary key'inde identity tanımlıdır. Orda ID'si en yüksek olan 50 taneyi filtrelersin daha sonra da Rand() fonksiyonu ile bunlardan 6 tanesini seçtirebilirsin.http://www.tutorialspoint.com/sql/sql-rand-function.htm mysql'de böyle bir fonksiyon var mı bilmiyorum ama bu random ihtiyacı her platformda olan bir ihtiyaç olduğundan bir çözümü de vardır.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @hopboomyerlifacebook
H
11 yıl
Onbaşı
Konu Sahibi

quote:

Orijinalden alıntı: BiLims

Php konusunda bilgim yok, ama şöyle bi öneri sunabilirim. Bu gönderilerin hepsini bir satır olarak tuttuğunu varsayarsak bu satırların primary key'inde identity tanımlıdır. Orda ID'si en yüksek olan 50 taneyi filtrelersin daha sonra da Rand() fonksiyonu ile bunlardan 6 tanesini seçtirebilirsin.http://www.tutorialspoint.com/sql/sql-rand-function.htm mysql'de böyle bir fonksiyon var mı bilmiyorum ama bu random ihtiyacı her platformda olan bir ihtiyaç olduğundan bir çözümü de vardır.

Çok teşekkürler deniyorum umarım başarırım.


Bu mesaja 1 cevap geldi.
O
11 yıl
Çavuş

goole amcaya sor obilen birini tanıyor olabilir ;) " Sorgu sıralamasını ters çevirmek asc and desc " yaz google'ye "asc" baçtan sona küçükden büyüge. "desc" sondan başa büyükten küçüge sıralar. sıralamayı kendi içinde tersçevirmen bunu bikaç kere yapman gerekebilir ekrana bastırmadan önce



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.