Halo gan, udah hampir 6 harian nih saya ga posting-posting. Kali ini berbeda dari kemarin tentang Untangle kali ini menyimpang sedikit, karena kali ini saya akan memposting ke dunia php yaitu dabr. Seperti pada artikel saya sebelumnya yaitu Membuat Twitter Client dengan script Dabr kali ini saya membahas membuat tweetlonger pada hosting sendiri. Artikel ini sebenarnya saya ambil dari tutorial agan Coziboy@kaskus cuma ada sedikit perbaikan pada tutorialnya.
$status = tweetShortener(user_current_username(),$status);
twitter_refresh($_POST['from'] ? $_POST['from'] : ''); }
function mysqliD() { include "t/cfg.php"; $out = new mysqli("$host","$usr","$pwd","$db"); return $out; } function tweetShortener($name,$status){ $baseurl = BASE_URL; $jmlh_baseurl = strlen($baseurl); $jmlh_smua = 140 - ($jmlh_baseurl + 18); $cutStatus = substr($status, 0,$jmlh_smua); $dirname = generateKey(); if(dupe($dirname) > 0 ){ $dirname = substr ( md5(uniqid(rand(), true)), 0, 5)."a"; } $maha = mysqliD(); if( !ins($dirname, $maha->real_escape_string(trim($status))) ){ file_put_contents("failins.null", $m->error, FILE_APPEND); } //sasa $cutStatus .= "..(cont) http://t.twety.org/".$dirname; return $cutStatus; } function dupe($dir){ $m = mysqliD(); $sql = " SELECT * FROM shortener WHERE tweet_key = '$dir' "; if($m->connect_error){ $m->close(); return -1; } else { if ($r = $m->query($sql)){ $int = $r->num_rows; $r->free_result(); $m->close(); return $int; } else { $m->close(); return -1; } } } function generateKey($len = 6) { define('KEY_CHARS', 'abcdefghijklmnopqrstuvwxyz0123456789'); $k = str_repeat('.', $len); while ($len--) { $k[$len] = substr(KEY_CHARS, mt_rand(0, strlen(KEY_CHARS) - 1), 1); } return $k; } function ins($dir, $status){ $m = mysqliD(); if($m->connect_error){ file_put_contents("fail.null", $m->connect_error, FILE_APPEND); $m->close(); return false; } else { $username = user_current_username(); $source = BASE_URL; $date = twitter_date('H:i d-M-Y'); $sql = "INSERT into shortener (tweet_key, tweet_text, username, date, source) VALUES ('$dir','$status', '$username', '$date', '$source');"; if($m->query($sql)){ $m->close(); return true; } else { file_put_contents("fail.null", $m->error, FILE_APPEND); } } }
<?php $host = "localhost"; $usr = "root"; $pwd = ""; $db = "db_shortener"; $tb = "shortener"; $tc = "http://URLTC.AGAN/"; ?>
ob_start(); include 'cfg.php'; include 'style.css'; mysql_connect($host, $usr, $pwd); mysql_select_db($db); if(empty($_GET['tweet_key'])) { header('Location: '.$tc.''); } $tweet_key = @mysql_real_escape_string($_GET['tweet_key']); $query = "SELECT * FROM $tb WHERE tweet_key = '$tweet_key'"; $hasil = mysql_query($query); if(mysql_num_rows($hasil) == 1) { $data = mysql_fetch_assoc($hasil); $tweet_text = $data['tweet_text']; $tweet_text = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#","\\1<a href=\"\\2\" rel=\"nofollow\">\\2</a>", $tweet_text); $tweet_text = preg_replace('#@([\\d\\w]+)#', '<a href="http://URLTC.AGAN/user/$1">$0</a>', $tweet_text); $tweet_text = preg_replace('/#([\\d\\w]+)/', '<a href="http://URLTC.AGAN/search?query=%23$1">$0</a>', $tweet_text); echo '<!DOCTYPE html> <html> <head> <link rel="shortcut icon" href="favicon.png" type="image/x-icon" /> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width; initial-scale=1.0;" /> <title>' . $data['tweet_text'] . ' / Twety™</title> </head> </html>'; echo '<div><div class="logo"><center><a href="'.$tc.'">Tweet Longer</a></center></div><br/><div class="twitl">'; echo "<span class='status shift'><div class='user'><a href='".$tc."user/".$data['username']."'>@".$data['username']."</a> (".$data['date'].")<br/><br/></div></span>"; echo "<div class='shift'>".$tweet_text."</div> "; echo '<br/><span><div><small>via <a href="'.$data['source'].'" target="_blank">'.$tc.'</a> (<a href="http://t.twety.org/'.$tweet_key.'">http://t.twety.org/'.$tweet_key.'</a>)</small></div></span>'; } if(mysql_num_rows($hasil) != 1) { echo "<a href='".$tc."'><h1 align='center'>Not Found</h1></a></div>"; } ob_end_flush(); ?>
<style type="text/css"> html,body{background-color:#37383a;font:95% sans-serif;margin:0; color:#babec1;} A{color:#39c;text-decoration:none;} IMG{border:0em;} #message{display:block;padding:.5em;} .logo{border:0em;padding-left:.5em;padding-top:.5em;padding-bottom:.5em;margin: 0em; background:url("") repeat-x;} .user{background:#272729 url("") repeat-x 0 0;;margin:-7px -7px 7px -7px;padding:7px;} .status{display:block;word-wrap:break-word;} .shift{min-height:24px;} .profile{padding:7px;margin:7px 7px 7px 7px;border:1px solid #272729;} .pengumuman{ color:#333; padding:7px; margin:7px 7px 7px 7px; background:#fff6bf; border:1px solid #ffd324; } </style>
CREATE TABLE IF NOT EXISTS `shortener` ( `username` varchar(128) NOT NULL, `tweet_key` varchar(32) NOT NULL, `tweet_text` varchar(256) NOT NULL, `source` varchar(32) NOT NULL, `date` varchar(32) NOT NULL, PRIMARY KEY (`tweet_key`) );
# URL rewriting RewriteEngine on #RewriteBase / RewriteRule ^([a-z,0-9,\_]*)$ index.php?tweet_key=$1 [L,QSA]
Nah nah sekarang tinggal testing aje gan, jika sudah jadi maka url seperti ini contoh : http://tkj.de.vc/bswoy9. Jika sudah berhasil di akses maka sukses sudah pembuatan tweetlonger kalian. Semoga Bermanfaat. Sekian.
tanya om ..
tweet nya udah masuk ke database..
cuma pas mau di view 404 page not found om ..
berarti itu ga masuk gan, coba di buat primary key-nya ke tweet_key..
SOLVED ..
ada yg error kode tuh gan ..
di index.php nya .. line 16
seharus nya gini ..
$tweet_text = preg_replace(‘#(^|[n ])([w]+?://[^ “nrt<]*)#','\1\2‘, $tweet_text);
CMIIW
oh ya gan satu lagi problem belum fix ..
kalo ngetwiit g lebih dari 140 knpa masuk database jg ya om ..
tolong pencerahhan nya …
contoh http://duasatu.p.ht/t/b0r4zn
kalo di ane cuma ganti primary_key nya saja gan langsung fix, sepertinya agan ada kesalahan di bagian if (strlen(utf8_decode($status)) > 140) { harusnya di itu sudah di batasi yang akan di shorten. coba di cek twitter_update nya gan..
wah iya om bisa , lupa di tambahin itu nya ..
makasih banyak om
oh iya om kalo yang itu di buat settingan gmn ya om , default nya uato cut ..
maaf ya udah ngerepotin and kabanyakan nanya .. 😀
Oke gan, kalo itu di postingan selanjutnya akan ane jelaskan. Tunggu aja ya.. 😀
wokeh om, pasti aye tunggu om ..
agaaan errrrrrrorrr T_T
disini gak ada lg $status adanya $results ane pake dabr ver 5.xx
diane bisa, kalau ga ada coba di tambahin aja gan fuction-nya
Cantumin sumber copas kali bro….
sorry baru liat kalau udah nyantumin diatas (coziboy) 😀 soalnya ini dulu metode ane yg pk cfg.php dan htaccessnya juga. coziboy nanya ke ane dulu (waktu ane jd developer) maaf ya bro 😀 .
bukti : http://pastebin.com/Zu5T4unh , http://postimg.org/image/8ltuvdknv/ (BWK)
gapapa gan.. ente hilaf mungkin hehe 😀 ane juga tau etika lah gan..