• 13-10-2015, 02:43:14
    #1
    Merhaba arkadaşlar, PHP öğrenme adına pratik işlerle uğraşmaktayım. Küçük bir haber bot uygulaması yaptım.

    1. Sorum ; Sadece bir site için bot hazırladım. input alanına link girip submit yaptığımda verileri çekiyor. Buraya farklı site girildiğin de ise haliyle hatalar çıkıyor. Farklı link girişini veya kontrolünü nasıl sağlayabilirim.

    2. Sorum ; Php hata kodları verdiği zaman, Örneğin : "Warning: file_get_contents(): Filename cannot be empty in /home/fatihtas/public_html/haberbot/bot.php on line 20" Burada 20. satırda file_get_contents içeriğinin boş olduğunu söylüyor ben bu hata kodunu düzenleyerek ekrana daha biçimli şekilde yazdırmak istiyorum. Sorun boş gönderilmesi değil onu input alanına =="" boş ise diyerek de if,elseif gibi fonksiyonlarla da yapabilirim. Sadece bu hata kodları değiştirilebiliyor mu ? Değiştiriliyorsa nasıl onu öğrenmek istiyorum.
  • 13-10-2015, 02:55:44
    #2
    http://php.net/manual/en/function.set-error-handler.php bu işini görebilir.
  • 13-10-2015, 03:49:19
    #3
    Cycl0ne adlı üyeden alıntı: mesajı görüntüle
    Çok teşekkür ederim. Bilgisayar başına geçtiğim de uygulamaya çalışacağım. 1 soruma da çözüm bulabilir miyiz acaba ?
  • 13-10-2015, 06:18:09
    #4
    Opium adlı üyeden alıntı: mesajı görüntüle
    Çok teşekkür ederim. Bilgisayar başına geçtiğim de uygulamaya çalışacağım. 1 soruma da çözüm bulabilir miyiz acaba ?
    Formdan gelen veriyi, içerisinde geçerli site adresi geçiyor mu geçmiyor mu diye sorgulatabilirsiniz.

    if(strpos($_POST["adres"],"http://botadresi.com")) {
      // işlemler
    }
    else {
      echo "Geçersiz adres!";
    }
  • 13-10-2015, 12:25:07
    #5
    Responsive adlı üyeden alıntı: mesajı görüntüle
    Formdan gelen veriyi, içerisinde geçerli site adresi geçiyor mu geçmiyor mu diye sorgulatabilirsiniz.

    if(strpos($_POST["adres"],"http://botadresi.com")) {
      // işlemler
    }
    else {
      echo "Geçersiz adres!";
    }
    Hocam cevabınız için çok teşekkür ederim. Söylediğinizi yapmaya çalıştım ama olmadı dilerseniz aşağıda ki kodları inceleyebilirsiniz.

    index.php içeriği


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <title>Haber Botu</title>
    <meta name="description" content="************* Haber botu örnek uygulaması..">
    <meta name="keywords" content="haber botu, magazin botu, film botu">
    <meta name="author" content="Fatih TAŞKIN">
    <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
    </head>
    <body>
    <?php
    //* www.fatihtaskin.com.tr *//
    echo ('<br><div align="center">
    <table border="1" width="800" cellspacing="0" cellpadding="0" bordercolor="#000000">
    <tr>
    <td width="76">Link</td>
    <td>
    <form method="POST" action="bot.php">
    <input type="text" name="url" size="142">
    </td>
    </tr>
    <tr>
    <td width="76">&nbsp;</td>
    <td><input type="submit" value="Gönder"></form></td>
    </tr>
    </table>
    </div>
    <br>
    <div align="center">
    <table border="1" width="800" cellspacing="0" cellpadding="0" bordercolor="#bbbbbb">
    <tr>
    <td width="76">Örnek</td>
    <td>
    <input type="text" name="orneklik" size="142" tabindex="1" value="http://www.*************/robin-van-persie-memphis-depay-la-tartisti-7771169-haberi/"><br>
    <input type="text" name="orneklik" size="142" tabindex="1" value="http://www.*************/emre-belozoglu-f-bahce-den-ayrildiktan-sonra-7771266-haberi/"></td>
    </tr>
    <tr><td colspan="2">
    <p align="center"><font color="#34b890"><b>Bu bot sadece 
    ************* adresinde çalışır. Uygulama tamamen örnek, ders 
    niteliği taşımaktadır. Haberler kayıt altında tutulmamakla birlikte 
    hiçbir yerde de paylaşılmamaktadır.</b></font></td></tr>
    </table>
    </div>
    ');
    ?>
    </body>
    </html>
    bot.php içeriği

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
    	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    	<title>Haber Botu - Sonuç</title>
    	<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
    </head>
    <body>
    <?php
    //* www.fatihtaskin.com.tr *//
      $referer = $_SERVER['HTTP_REFERER'];
      if ($referer == "")  
    {  
    echo "Lütfen link alanını boş bırakmayın.";  
    } 
    else  
    {
    //* HABER BOTU *//
    $formdangelen = $_POST["url"];
    
    if(strpos($formdangelen,"http://*************")) { 
      // işlemler 
    } 
    else { 
     
    $site		= file_get_contents(''.$formdangelen.'');
    // BAŞLIK
    preg_match_all('@<h1 itemprop="headline" id="haber_baslik" class=" ">(.*?)</h1>@si',$site,$baslik_al);
    
    // ÖZET
    preg_match_all('@<h2 itemprop="description" class="ustblkgenislet2 spot ">(.*?)</h2>@si',$site,$ozet_al);
    
    // RESİM
    preg_match_all('@<meta itemprop="image" content="(.*?)" />@si',$site,$resim_al);
    
    // İÇERİK
    preg_match_all('@<div itemprop="articleBody" class="haber_metni mb20">(.*?)</div>@si',$site,$icerik_al);
    
    $baslik		= $baslik_al[1][0];
    $ozet		= $ozet_al[1][0];
    $resim		= $resim_al[1][0];
    $icerik		= $icerik_al[1][0];
    
      echo "Geçersiz adres!"; 
    } 
    
    echo '<div align="center">
    <table border="1" width="800" cellspacing="0" cellpadding="0" bordercolor="#bbbbbb">
    <tr>
    <td>'.$baslik.'</td>
    </tr>
    <tr>
    <td>'.$ozet.'</td>
    </tr>
    <tr>
    <td><center><img border="0" src="'.$resim.'" width="640" height="360"></center></td>
    </tr>
    <tr>
    <td>'.$icerik.'<br><a href="index.php">
    <button type="submit" class="btn">Geri Dön</button></a></td>
    </tr>
    </table>
    </div>'; 
    }  
    //echo "<pre>";
    //print_r($icerik_al);
    //echo "</pre>";
    
    ?>
    </body>
    </html>
    Örnek sayfada burası
  • 13-10-2015, 16:51:25
    #6
    bot.php'yi şöyle düzenleyin;

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> 
        <title>Haber Botu - Sonuç</title> 
        <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> 
    </head> 
    <body> 
    <?php 
    //* www.fatihtaskin.com.tr *// 
      $referer = $_SERVER['HTTP_REFERER']; 
      if ($referer == "")   
    {   
    echo "Lütfen link alanını boş bırakmayın.";   
    }  
    else   
    { 
    //* HABER BOTU *// 
    $formdangelen = $_POST["url"]; 
    $botadresi = "http://*************"; // Haber çekilecek adres
    
    if(strpos($formdangelen,$botadresi)) {  
      $site        = file_get_contents(''.$formdangelen.''); 
    // BAŞLIK 
    preg_match_all('@<h1 itemprop="headline" id="haber_baslik" class=" ">(.*?)</h1>@si',$site,$baslik_al); 
    
    // ÖZET 
    preg_match_all('@<h2 itemprop="description" class="ustblkgenislet2 spot ">(.*?)</h2>@si',$site,$ozet_al); 
    
    // RESİM 
    preg_match_all('@<meta itemprop="image" content="(.*?)" />@si',$site,$resim_al); 
    
    // İÇERİK 
    preg_match_all('@<div itemprop="articleBody" class="haber_metni mb20">(.*?)</div>@si',$site,$icerik_al); 
    
    $baslik        = $baslik_al[1][0]; 
    $ozet        = $ozet_al[1][0]; 
    $resim        = $resim_al[1][0]; 
    $icerik        = $icerik_al[1][0];    
    
    echo '<div align="center"> 
    <table border="1" width="800" cellspacing="0" cellpadding="0" bordercolor="#bbbbbb"> 
    <tr> 
    <td>'.$baslik.'</td> 
    </tr> 
    <tr> 
    <td>'.$ozet.'</td> 
    </tr> 
    <tr> 
    <td><center><img border="0" src="'.$resim.'" width="640" height="360"></center></td> 
    </tr> 
    <tr> 
    <td>'.$icerik.'<br><a href="index.php"> 
    <button type="submit" class="btn">Geri Dön</button></a></td> 
    </tr> 
    </table> 
    </div>';  
    }    
    else {
    	echo 'Geçersiz adres!';
    } 
    
    }   
    //echo "<pre>"; 
    //print_r($icerik_al); 
    //echo "</pre>"; 
    
    ?> 
    </body> 
    </html>
    $botadresi değişkenine kontrol edilecek adres gelecek.
  • 13-10-2015, 23:35:55
    #7
    Responsive adlı üyeden alıntı: mesajı görüntüle
    bot.php'yi şöyle düzenleyin;

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> 
        <title>Haber Botu - Sonuç</title> 
        <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> 
    </head> 
    <body> 
    <?php 
    //* www.fatihtaskin.com.tr *// 
      $referer = $_SERVER['HTTP_REFERER']; 
      if ($referer == "")   
    {   
    echo "Lütfen link alanını boş bırakmayın.";   
    }  
    else   
    { 
    //* HABER BOTU *// 
    $formdangelen = $_POST["url"]; 
    $botadresi = "http://*************"; // Haber çekilecek adres
    
    if(strpos($formdangelen,$botadresi)) {  
      $site        = file_get_contents(''.$formdangelen.''); 
    // BAŞLIK 
    preg_match_all('@<h1 itemprop="headline" id="haber_baslik" class=" ">(.*?)</h1>@si',$site,$baslik_al); 
    
    // ÖZET 
    preg_match_all('@<h2 itemprop="description" class="ustblkgenislet2 spot ">(.*?)</h2>@si',$site,$ozet_al); 
    
    // RESİM 
    preg_match_all('@<meta itemprop="image" content="(.*?)" />@si',$site,$resim_al); 
    
    // İÇERİK 
    preg_match_all('@<div itemprop="articleBody" class="haber_metni mb20">(.*?)</div>@si',$site,$icerik_al); 
    
    $baslik        = $baslik_al[1][0]; 
    $ozet        = $ozet_al[1][0]; 
    $resim        = $resim_al[1][0]; 
    $icerik        = $icerik_al[1][0];    
    
    echo '<div align="center"> 
    <table border="1" width="800" cellspacing="0" cellpadding="0" bordercolor="#bbbbbb"> 
    <tr> 
    <td>'.$baslik.'</td> 
    </tr> 
    <tr> 
    <td>'.$ozet.'</td> 
    </tr> 
    <tr> 
    <td><center><img border="0" src="'.$resim.'" width="640" height="360"></center></td> 
    </tr> 
    <tr> 
    <td>'.$icerik.'<br><a href="index.php"> 
    <button type="submit" class="btn">Geri Dön</button></a></td> 
    </tr> 
    </table> 
    </div>';  
    }    
    else {
    	echo 'Geçersiz adres!';
    } 
    
    }   
    //echo "<pre>"; 
    //print_r($icerik_al); 
    //echo "</pre>"; 
    
    ?> 
    </body> 
    </html>
    $botadresi değişkenine kontrol edilecek adres gelecek.
    Hocam bu şekilde ne girersem gireyim "Geçersiz Adres" Yazıyor.
  • 14-10-2015, 00:29:24
    #8
    Opium adlı üyeden alıntı: mesajı görüntüle
    Hocam bu şekilde ne girersem gireyim "Geçersiz Adres" Yazıyor.
    $botadresi = "http://*************";

    satırını düzenlediniz mi ?
  • 14-10-2015, 01:03:52
    #9
    Responsive adlı üyeden alıntı: mesajı görüntüle
    $botadresi = "http://*************";

    satırını düzenlediniz mi ?
    Evet düzenledim.

    Sizin verdiğiniz fikir üzerinden araştırarak sorunumu çözdüm çok teşekkür ederim.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">  
    <head>  
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />  
        <title>Haber Botu - Sonuç</title>  
        <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">  
    </head>  
    <body>  
    <?php  
    //* www.fatihtaskin.com.tr *//  
      $referer = $_SERVER['HTTP_REFERER'];  
      if ($referer == "")    
    {    
    echo "Lütfen link alanını boş bırakmayın.";    
    }   
    else    
    {  
    //* HABER BOTU *//  
    $formdangelen = $_POST["url"];  
    $kimbu = strpos($formdangelen,"http://www.*************");
    if ($kimbu === false){
    echo "Lütfen uygun bir adres girin.";}else{   
    $site        = file_get_contents(''.$formdangelen.'');  
    // BAŞLIK  
    preg_match_all('@<h1 itemprop="headline" id="haber_baslik" class=" ">(.*?)</h1>@si',$site,$baslik_al);  
    
    // ÖZET  
    preg_match_all('@<h2 itemprop="description" class="ustblkgenislet2 spot ">(.*?)</h2>@si',$site,$ozet_al);  
    
    // RESİM  
    preg_match_all('@<meta itemprop="image" content="(.*?)" />@si',$site,$resim_al);  
    
    // İÇERİK  
    preg_match_all('@<div itemprop="articleBody" class="haber_metni mb20">(.*?)</div>@si',$site,$icerik_al);  
    
    $baslik        = $baslik_al[1][0];  
    $ozet        = $ozet_al[1][0];  
    $resim        = $resim_al[1][0];  
    $icerik        = $icerik_al[1][0];     
    	
    echo '<div align="center">  
    <table border="1" width="800" cellspacing="0" cellpadding="0" bordercolor="#bbbbbb">  
    <tr>  
    <td>'.$baslik.'</td>  
    </tr>  
    <tr>  
    <td>'.$ozet.'</td>  
    </tr>  
    <tr>  
    <td><center><img border="0" src="'.$resim.'" width="640" height="360"></center></td>  
    </tr>  
    <tr>  
    <td>'.$icerik.'<br><a href="index.php">  
    <button type="submit" class="btn">Geri Dön</button></a></td>  
    </tr>  
    </table>  
    </div>';   
    }
    //echo "<pre>";  
    //print_r($icerik_al);  
    //echo "</pre>";  
    }
    ?>  
    </body>  
    </html>