Bir süredir bu iş ile ilgili ugraşıyorum forumdada bir kaç konu açmıştım..
php ile web bot botego vb gibi birşey yapmak istiyorum..
özellikleri
soru tabosundaki karşılıgına gelen cvp tablosundaki cvb ı yazdırıcak..
sohbet şeklinde alt alt a çıkıcak (burda takıldım)
boş msj yazıldıgında cvp vericek
aynı soru 2 kere yada dah fazla kere soruldugunda 2 inci cvp devreye giricek..
bu konularda önerilerinizi ve yardımlarınızı bekliyorum arkadaşlar
<?
require 'ayar.php';
$query = '' . 'SELECT * FROM yaz WHERE soru=\'' . $soru . '\'';
$result = mysql_query ($query);
$data = mysql_fetch_array ($result);
$cevap = $data['cevap'];
echo"$cevap";
?>
böyle bir kod parçacıgı ile şuan sorulan soruya yanıt verdirebiliyorum fakat bunu chat şeklinde alt alt a çıkaramıyorum
Web Bot Geliştirme
14
●1.900
- 04-04-2010, 11:49:21Kimlik doğrulama veya yönetimden onay bekliyor.
<?php require ('ayar.php'); $result = mysql_query ("SELECT * FROM yaz WHERE soru='$soru'"); echo ' <table>'; while ($data = mysql_fetch_assoc($result)); { echo '<tr><td>'; echo $data['cevap']; echo '</td></tr>'; } echo ' </table>'; ?> - 05-04-2010, 01:15:46tarcan bot da kullanılan php kodlar
<?php
header('Content-Type: text/html; charset=utf-8');
session_start();
$tr = array('Ç','Ğ','İ','Ö','Ş','Ü','I','U');
$kod = array('ç','ğ','i','ö','ş','ü','ı','u');
$yazi = trim(htmlspecialchars(strtolower(str_replace($tr, $kod, $_POST['yazim'])))) ;
if (!empty($yazi)){
include('bag.php');
//---numara kontolü
if (is_numeric($yazi)){$durum = 'numarik'; }
//--boş olup olmadığını kotnrol ettik
elseif (empty($yazi)){$durum = 'bosmsj';}
//--2 harfli kontrolü
elseif (strlen($yazi)
and ($yazi!=':d') and ($yazi!='
') and ($yazi!='
') and ($yazi!='
') and ($yazi!=':|')){$durum = 'yetersiz';}
//--papağan kontrolü
elseif ($_SESSION['cevap']==$yazi){$durum = 'tekrar';}
//--matematiksel
elseif(eregi('([*]|[+]|[-]|[/])',$yazi)) {$durum = 'matematiksel';}
//--destan kontrol
elseif(strlen($yazi)>100) {$durum = 'destan';}
//--daha önceden tekrarlamış mı ?
elseif (strlen($yazi)>6){
for ($i = 1; $i <= $_SESSION['topmsj']; $i++){
if ($yazi==$_SESSION['msj'.$i]){$durum = 'aynilaf';}
}
}
//--bunlar değilse
switch($durum){
case 'numarik';
$rastgele = rand(1,2);
switch ($rastgele){
case "1":
$cevap = 'Hmm ' . $yazi . ' ile ' . $yazi . ' toplanınca = ' . ($yazi+$yazi) . ' oluyor';
break;
case "2":
$cevap = $yazi . ' kere ' . $yazi . ' = ' . $yazi*$yazi;
break;
}
break;
case 'yetersiz':
$cevap = 'saniyorum 2 harften fazla birsey yazabilirsin';
break;
case 'bosmsj':
$cevap = 'bence birseyler yazabilecek kadar zekan vardir ?';
break;
case 'matematiksel':
eval('$cevap = '.$yazi.';');
break;
case 'destan';
$cevap = 'oha destanmı yazıyorsun ? Cümle yaz dedik bokunu çıkarttın';
break;
case 'aynilaf':
$rastgele = rand(1,4);
if ($rastgele=='1'){$cevap = 'aynı şeyleri yazıyorsun';}
elseif ($rastgele=='2'){$cevap = 'farklı konu konuşmak senin zekan için sorun galba';}
elseif ($rastgele=='3'){$cevap = 'bunu konuşmamışmıydık ?';}
elseif ($rastgele=='4'){$cevap = 'muhabbeti değiştirelim hep tekrar ediyorsun';}
break;
case 'tekrar':
if (empty($_SESSION['tekrar'])){
$_SESSION['tekrar']=1;
$cevap = 'yazdigimi neden tekrarliyorsun?';
}
elseif ($_SESSION['tekrar']=="1"){
$_SESSION['tekrar']=2;
$cevap = 'konus benle papaganlik yapma';
}
elseif ($_SESSION['tekrar']=="2"){
$_SESSION['tekrar']=3;
$cevap = 'benim yazdiklarimi tekrarlamazsan sevinirim';
}
elseif ($_SESSION['tekrar']=="3"){
$_SESSION['tekrar']=4;
$cevap = 'bak son deva soyluyorum tekrarlama';
}
elseif ($_SESSION['tekrar']>"3"){
$cevap = 'Sen tam bi malsin, tekrarlamasana...';
}
break;
default:
//--database sorgulama
$sorgu=mysql_query('SELECT id,anahtar FROM veriler where oncelik=1') or die('sorguda problem var');
while ($oku=mysql_fetch_assoc($sorgu))
{
$anahtar=$oku['anahtar'];
if (strstr($yazi,$anahtar)){
$anahtarlar=$oku['id']."-".$anahtarlar;
$cevapvar=1;}
}
//-2. öncelikte aratıyoruz
if ($cevapvar!=1){
$sorgu2=mysql_query('SELECT id,anahtar FROM veriler where oncelik=2') or die('sorguda problem var');
while ($oku2=mysql_fetch_assoc($sorgu2))
{
$anahtar2=$oku2['anahtar'];
if (strstr($yazi,$anahtar2)){
$anahtarlar2=$oku2['id']."-".$anahtarlar2;
$cevapvar=2;}
}
}
//--3. öncelikte arıyoruz
if ($cevapvar!=1 and $cevapvar!=2){
$sorgu3=mysql_query('SELECT id,anahtar FROM veriler where oncelik=3') or die('sorguda problem var');
while ($oku3=mysql_fetch_assoc($sorgu3))
{
$anahtar3=$oku3['anahtar'];
if (strstr($yazi,$anahtar3)){
$anahtarlar3=$oku3['id']."-".$anahtarlar4;
$cevapvar=3;}
}
}
//--4. öncelikte arıyoruz
if ($cevapvar!=1 and $cevapvar!=2 and $cevapvar!=3){
$sorgu4=mysql_query('SELECT id,anahtar FROM veriler where oncelik=4') or die('sorguda problem var');
while ($oku4=mysql_fetch_assoc($sorgu4))
{
$anahtar4=$oku4['anahtar'];
if (strstr($yazi,$anahtar4)){
$anahtarlar4=$oku4['id']."-".$anahtarlar4;
$cevapvar=4;}
}
}
//--5. öncelikte arıyoruz
if ($cevapvar!=1 and $cevapvar!=2 and $cevapvar!=3 and $cevapvar!=4){
$sorgu5=mysql_query('SELECT id,anahtar FROM veriler where oncelik=5') or die('sorguda problem var');
while ($oku5=mysql_fetch_assoc($sorgu5))
{
$anahtar5=$oku5['anahtar'];
if (strstr($yazi,$anahtar5)){
$anahtarlar5=$oku5['id']."-".$anahtarlar5;
$cevapvar=5;}
}
}
//--eğer cevaplar varsa
if (!empty($cevapvar)) {
switch ($cevapvar){
case '1':
$ayir = spliti("-",$anahtarlar) ;
$aydi = rand(0,(count($ayir)-2));
$cevapsor=mysql_query("SELECT id,anahtar,cevap FROM veriler where onay=0 and id=".$ayir[$aydi]."") or die('cekemedik1');
$cevapoku=mysql_fetch_array($cevapsor) or die('cevap vermiyorum');
$cevap = $cevapoku['cevap'];
break;
case '2':
$ayir = spliti("-",$anahtarlar2) ;
$aydi = rand(0,(count($ayir)-2));
$cevapsor=mysql_query("SELECT id,anahtar,cevap FROM veriler where onay=0 and id=".$ayir[$aydi]."") or die('cekemedik2');
$cevapoku=mysql_fetch_array($cevapsor) or die('cevap vermiyorum');
$cevap = $cevapoku['cevap'];
break;
case '3':
$ayir = spliti("-",$anahtarlar3) ;
$aydi = rand(0,(count($ayir)-2));
$cevapsor=mysql_query("SELECT id,anahtar,cevap FROM veriler where onay=0 and id=".$ayir[$aydi]."") or die('cekemedik3');
$cevapoku=mysql_fetch_array($cevapsor) or die('cevap vermiyorum');
$cevap = $cevapoku['cevap'];
break;
case '4':
$ayir = spliti("-",$anahtarlar4) ;
$aydi = rand(0,(count($ayir)-2));
$cevapsor=mysql_query("SELECT id,anahtar,cevap FROM veriler where onay=0 and id=".$ayir[$aydi]."") or die('cekemedik4');
$cevapoku=mysql_fetch_array($cevapsor) or die('cevap vermiyorum');
$cevap = $cevapoku['cevap'];
break;
case '5':
$ayir = spliti("-",$anahtarlar5) ;
$aydi = rand(0,(count($ayir)-2));
$cevapsor=mysql_query("SELECT id,anahtar,cevap FROM veriler where onay=0 and id=".$ayir[$aydi]."") or die('cekemedik5');
$cevapoku=mysql_fetch_array($cevapsor) or die('cevap vermiyorum');
$cevap = $cevapoku['cevap'];
break;
}
}
//-- database den bulamazsak
else{
$sorgu=mysql_query("SELECT id,anahtar FROM veriler where onay=0 and oncelik between 1 and 4") or die('sorguda problem var');
while ($oku=mysql_fetch_assoc($sorgu))
{
$toplam[] = $oku['anahtar'];
}
$input = $yazi;
$shortest = -1;
foreach ($toplam as $word) {
$lev = levenshtein($input, $word);
if ($lev == 0) {
$closest = $word;
$shortest = 0;
break;
}
if ($lev <= $shortest || $shortest < 0) {
$closest = $word;
$shortest = $lev;
}
}
if ($shortest == 0) {
$cevap = 'Bu kelimeyi anlayamadım : ' . $closest;
} else {
$cevap = $yazi . ' nın ne demek olduğunu anlamadım, bunumu demek istedin: <u>' . $closest . '</u> değilse kelimeyi <a href="?/katki/">ekleyin</a>';
}
}
break;
}
$_SESSION['cevap']=$cevap;
//--mesajları sessiona atıyoruz
if (empty($_SESSION['topmsj'])){
$_SESSION['topmsj']=1;}
else{$_SESSION['topmsj']=($_SESSION['topmsj']+1);}
$sesson='msj'.$_SESSION['topmsj'];
$_SESSION[$sesson]=$yazi;
$sescvp='cvp'.$_SESSION['topmsj'];
$_SESSION[$sescvp]=$cevap;
$reklam = rand(1,4);
$satir = '<br>--------<br> Sen : ' . $yazi . '<br> Tarcan : ' . $cevap;
?>
<div id="cubuk" name="cubuk" align="left" style="padding:10px;position:inherit; overflow: auto;width: 95%; height: 280px;background-color:#fff;">
<?php for ($i = 1; $i <= $_SESSION['topmsj']; $i++){
echo '<b>Sen </b>:' . $_SESSION['msj'.$i] . '<br><b>Tarcan</b> : <font style="color:#7b0a0a">' . $_SESSION['cvp'.$i] . '</font><br>---------<br>';
} ?>
</div>
<?php }else {echo 'hadi bakim başka kapıya';}
?>
<script type="text/javascript">
var mydiv = document.getElementById("cubuk");
mydiv.scrollTop = mydiv.scrollHeight + mydiv.scrollHeight;
</script>
pek php bilgim olmadığı için çalıştıramadım ama - 05-04-2010, 02:48:55Üyeliği durduruldusayfa değişmeden ortada değişmesini istiyorsan ajax kullanmalısın. ve sürekli refresh ettirmelisin. bu kolay birşey olmuycaktır ve burada ücretsiz yazılabilcek birşey değildir. Yinede zamanı olan bir babayiğit çıkarsa orasını bilemem.. İnş Bulursun ama kolay gelsin
- 09-04-2010, 02:52:34CoLLeR adlı üyeden alıntı: mesajı görüntüleKastettiğim BuyduWebscripti adlı üyeden alıntı: mesajı görüntüle
- 09-04-2010, 08:40:58if-else yapısıyla, sql select ile bot kodlanmaz. işin içinden çıkamazsın. merhaba demenin bile bin bir türlü yolu var. hatta adam kelimeyi yanlış yazmış bile olabilir.
php levenshtein algoritmasını kullanman şart. araştır biraz. yapamazsan yardım ederim...
and ($yazi!=':d') and ($yazi!='
') and ($yazi!='
') and ($yazi!=':|')){$durum = 'yetersiz';}