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.
Hata Kodlarını Değiştirme
8
●366
- 13-10-2015, 02:55:44http://php.net/manual/en/function.set-error-handler.php bu işini görebilir.
- 13-10-2015, 03:49:19Çok teşekkür ederim. Bilgisayar başına geçtiğim de uygulamaya çalışacağım. 1 soruma da çözüm bulabilir miyiz acaba ?Cycl0ne adlı üyeden alıntı: mesajı görüntüle
- 13-10-2015, 06:18:09Formdan gelen veriyi, içerisinde geçerli site adresi geçiyor mu geçmiyor mu diye sorgulatabilirsiniz.Opium adlı üyeden alıntı: mesajı görüntüle
if(strpos($_POST["adres"],"http://botadresi.com")) { // işlemler } else { echo "Geçersiz adres!"; } - 13-10-2015, 12:25:07Hocam 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.Responsive adlı üyeden alıntı: mesajı görüntüle
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"> </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:25bot.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:55Hocam bu şekilde ne girersem gireyim "Geçersiz Adres" Yazıyor.Responsive adlı üyeden alıntı: mesajı görüntüle
- 14-10-2015, 00:29:24$botadresi = "http://*************";Opium adlı üyeden alıntı: mesajı görüntüle
satırını düzenlediniz mi ? - 14-10-2015, 01:03:52Evet düzenledim.Responsive adlı üyeden alıntı: mesajı görüntüle
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>