<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>یک طراح وب &#187; پی اچ پی</title>
	<atom:link href="http://aliha.ir/tag/%d9%be%db%8c-%d8%a7%da%86-%d9%be%db%8c/feed/" rel="self" type="application/rss+xml" />
	<link>http://aliha.ir</link>
	<description>لحظاتی با سی اس اس، جی کوئری و پی اچ پی.</description>
	<lastBuildDate>Sun, 16 Oct 2011 09:19:03 +0000</lastBuildDate>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>ای‌جکس بازی » به‌یاد هایپرترمینال</title>
		<link>http://aliha.ir/2010/12/29/hyperterminal-jquery-ajax-and-php/</link>
		<comments>http://aliha.ir/2010/12/29/hyperterminal-jquery-ajax-and-php/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 00:00:33 +0000</pubDate>
		<dc:creator>علیها</dc:creator>
				<category><![CDATA[ای جکس]]></category>
		<category><![CDATA[جی کوئری]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[chat]]></category>
		<category><![CDATA[hyperterminal]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[مای اس کیو ال]]></category>
		<category><![CDATA[هایپرترمینال]]></category>
		<category><![CDATA[پی اچ پی]]></category>
		<category><![CDATA[چت]]></category>

		<guid isPermaLink="false">http://aliha.ir/?p=1597</guid>
		<description><![CDATA[لابد هایپر ترمینال ِ ویندوز یادتان هست، که با آن می‌شد به یک کامپیوتر دیگر از راه دور وصل شد و ارتباط برقرار کرد و اطلاعاتی را رد و بدل. به نوعی می‌شد به‌کمک آن چت هم کرد. یک کادر متن بزرگ که هم‌زمان با تایپ کردن ما، شخص مقابل هم نوشتن واژه‌ها توسط ما ...]]></description>
			<content:encoded><![CDATA[<p>لابد هایپر ترمینال ِ ویندوز یادتان هست، که با آن می‌شد به یک کامپیوتر دیگر از راه دور وصل شد و ارتباط برقرار کرد و اطلاعاتی را رد و بدل. به نوعی می‌شد به‌کمک آن چت هم کرد. یک کادر متن بزرگ که هم‌زمان با تایپ کردن ما، شخص مقابل هم نوشتن واژه‌ها توسط ما را می‌دید و برعکس.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-1605" title="jquery hyperterminal" src="http://aliha.ir/wp-content/uploads/jquery-hyperterminal.jpg" alt="" width="500" height="300" /></p>
<p>من دقیقاً با همین قسمت آخر ماجرا کار دارم. این که یک صفحه‌ای داشته باشم و از طریق آن با یک یا چند نفر دیگر به‌صورت زنده گفت‌وگو کنم و ضمناً تایپ‌کردن من را ببینند و من هم تایپ‌کردن آن‌ها را. آماده‌اید؟</p>
<p>مواد لازم <a href="http://aliha.ir/tag/%d9%be%db%8c-%d8%a7%da%86-%d9%be%db%8c/" target="_blank">پی اچ پی</a> هست و <a href="http://aliha.ir/tag/%d9%85%d8%a7%db%8c-%d8%a7%d8%b3-%da%a9%db%8c%d9%88-%d8%a7%d9%84/" target="_blank">مای اس کیو ال</a> و کتاب‌خانه‌ی <a href="http://aliha.ir/tag/%d8%ac%db%8c-%da%a9%d9%88%d8%a6%d8%b1%db%8c/" target="_blank">جی کوئری</a>.</p>
<p>ابتدا یک صفحه با نام index.php می‌سازم، کتاب‌خانه‌ی جی‌کوئری را واردش می‌کنم و یک فرم هم که حاوی یک کادرمتن هست در آن قرار می‌دهم:</p>
<pre class="brush: xml;">
&lt;form action=&quot;&quot; id=&quot;htForm&quot;&gt;
     &lt;textarea name=&quot;chatbox&quot; class=&quot;chatbox&quot; id=&quot;chatbox&quot;&gt;&lt;/textarea&gt;
&lt;/form&gt;
</pre>
<h2>دیتابیس</h2>
<p>در ادامه یک دیتابیس باید بسازم برای ذخیره‌کردن متن گفت‌وگو. دستورات زیر را اس‌کیوال می‌کنم تا جدول و فیلد‌های موردنیازم ایجاد شوند:</p>
<pre class="brush: sql;">
CREATE TABLE IF NOT EXISTS `tbl_chat` (
`id` int(11) NOT NULL auto_increment,
`chat` LONGTEXT CHARACTER SET utf8  NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=1 ;

INSERT INTO `tbl_chat` (`chat`) VALUES ('type here...');
</pre>
<h2>پی‌اچ‌پی</h2>
<p>حالا یک فایل با نام config.php می‌سازم و با آن به دیتابیسی که ساختم، وصل می‌شوم:</p>
<pre class="brush: php;">
&lt;?php
// Mysql Config; enter your host name, database name, database username and password.
define('DB_HOST', 'localhost');
define('DB_NAME', 'database_name');
define('DB_USER', 'database_username');
define('DB_PASSWORD', 'database_password');

// Connecting to database...
$connection = @mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die('Database Error!');
@mysql_select_db(DB_NAME,$connection);
?&gt;
</pre>
<p>یک فایل دیگر می‌سازم برای ارسال متن به دیتابیس. نام این فایل send.php هست:</p>
<pre class="brush: php;">
&lt;?php
@include('config.php');

$chat = $_POST['chatbox'];
$query = &quot;UPDATE tbl_chat SET chat = '$chat' WHERE id = 1&quot;;
$do = @mysql_query($query);
?&gt;
</pre>
<p>و فایلی دیگر با نام recive.php برای گرفتن متن از دیتابیس:</p>
<pre class="brush: php;">
&lt;?php
@include('config.php');

$query = &quot;SELECT * FROM tbl_chat WHERE id = 1&quot;;
$do = @mysql_query($query);
$row = @mysql_fetch_array($do);
echo ($row[chat]);
?&gt;
</pre>
<h2>جی‌کوئری</h2>
<p>حالا دیگر کارم با پی‌اچ‌پی تمام شده است؛ می‌روم سراغ جی‌کوئری.</p>
<p>با توابع <code>load()</code> و <code>ajax()</code> قبلاً کارهایی کرده‌ایم (<a href="http://aliha.ir/2010/10/04/ajax-loading-content-with-jquery/">این‌جا</a> و <a href="http://aliha.ir/2010/04/15/ajax-record-delete-from-database-with-jquery/" target="_blank">این‌جا</a>). این‌بار هم به این دو تابع پرکاربرد نیاز داریم و اصل کارمان را همین دو تابع انجام می‌دهند.</p>
<p>ابتدا باید متنی که در کادر متن نوشته می‌شود را با تابع <code>ajax()</code> بفرستم برای فایل send.php و این فایل هم متن را می‌گیرد و می‌فرستد به دیتابیس. و البته باید به‌خاطر داشته باشید که می‌خواهم هم‌زمان که در حال تایپ‌کردن هستم، شخص مقابل تایپ‌کردن ِ من را مشاهده کند. پس باید تابع <code>ajax()</code> را در یک رویدادی مثل <code>keyup()</code> قرار بدهم تا با هربار فشردن و رهاکردن یک دکمه‌ی کی‌برد، متن‌ها به دیتابیس ارسال شوند. به‌این‌صورت هر حرف جدیدی که تایپ می‌کنم، ذخیره می‌شود و به این ترتیب، تایپ کردن ِ من به‌صورت زنده مشاهده می‌شود.</p>
<pre class="brush: jscript;">
$(document).ready(function() {
     $('#chatbox').keyup(function () {

     var chatbox = $('#chatbox');
     var data = 'chatbox=' + chatbox.val();

     $.ajax({
          url: 'send.php',
          type: 'POST',
          data: data,
          cache: false,
          success: function(){}
     });
     return false;
     });
});
</pre>
<p>تا به اینجای کار، فقط متن گفت‌وگو ذخیره می‌شود و هنوز چیزی از دیتابیس لود نشده است تا شخص مقابل مشاهده نماید. همان‌طور که پیش‌تر هم اشاره کردم، از تابع <code>load()</code> برای لود کردن متن از دیتابیس استفاده می‌کنم و خب باید متن گفت‌وگو درهمان کادرمتن لود شود، پس به این صورت عمل می‌کنم:</p>
<pre class="brush: jscript;">
$(document).ready(function() {
	$('#chatbox').load('receive.php');
});
</pre>
<p>فایل recive.php را به تابع لود دادم و از این طریق متن گفت‌وگو لود شده و در کادرمتن <code>#chatbox</code> نمایش داده می‌شود.</p>
<p>اما مسئله این است که به این شکل فقط یک‌بار متن‌ها از دیتابیس لود می‌شوند و متن‌های جدید دیگر مشاهده نخواهند شد. راه حل ساده‌ست، من تابع لود را می‌سپارم به دست یک حلقه تا دائماً اجرا شود و متن‌های جدیدتر نیز لود و دیده شوند. بازه‌ی زمانی حلقه را روی ۱۰۰ میلی‌ثانیه می‌گذارم تا هر تغییر کوچکی که در متن‌های گفت‌وگو ایجاد شود خیلی سریع به شخص مقابل نمایش داده شود:</p>
<pre class="brush: jscript;">
$(function(){
var timer = setInterval(receive_chat, 100);
});
function receive_chat() {
 $(document).ready(function() {
	$('#chatbox').load('receive.php');
 });
}
</pre>
<p>کار دیگر تمام است و می‌توانم نتیجه را در صفحه‌ی index.php ببینم.</p>
<p>مشکلی که وجود دارد این است که در چنین روش‌هایی با سرور ریکوئست بالایی روبه‌رو هستیم. این یعنی برای اجرا در پروژه‌های بزرگ، به سرورهای قوی نیاز داریم. تصور کنید که در هر ۱۰۰ میلی‌ثانیه یک ریکوئست فرستاده می‌شود و فایل recive.php اجرا می‌شود. جدا از این، با هربار فشردن یک دکمه از کی‌برد، باز یک ریکوئست ارسال می‌شود و فایل send.php اجرا می‌شود.</p>
<p>منابع:<br />
<a href="http://api.jquery.com/jQuery.ajax/" target="_blank">jQuery ajax()</a><br />
<a href="http://api.jquery.com/load/" target="_blank"> jQuery load()</a></p>
<p>به دلیل برخی محدودیت‌ها نمی‌توانم نسخه‌ی دمو از این نمونه قرار بدهم اما می‌توانید آن را همین پایین کامل دریافت کنید:</p>
<p style="text-align: center;"><a class="no-border" href="http://aliha.ir/download/jquery/jQuery-HyperTerminal.zip"><img class="alignnone no-border size-full wp-image-1213" title="Download" src="http://aliha.ir/wp-content/uploads/download-zips.jpg" alt="" width="298" height="174" /></a></p>
<ul class="related_post">
<li><a href="http://aliha.ir/2010/04/15/ajax-record-delete-from-database-with-jquery/" title="ای‌جکس‌بازی » حذف رکورد از بانک‌اطلاعاتی با جی‌کوئری">ای‌جکس‌بازی » حذف رکورد از بانک‌اطلاعاتی با جی‌کوئری</a></li>
<li><a href="http://aliha.ir/2009/05/30/5-free-ajax-contact-form/" title="معرفی 5 فرم تماس ِ رایگان ِ ای جکس">معرفی ۵ فرم تماس ِ رایگان ِ ای جکس</a></li>
<li><a href="http://aliha.ir/2010/10/31/video-tutorial-get-started-with-codeigniter/" title="آموزش ویدئویی » شروع کار با CodeIgniter">آموزش ویدئویی » شروع کار با CodeIgniter</a></li>
<li><a href="http://aliha.ir/2010/10/04/ajax-loading-content-with-jquery/" title="ای‌جکس‌بازی » بارگذاری محتوای صفحات با جی‌کوئری">ای‌جکس‌بازی » بارگذاری محتوای صفحات با جی‌کوئری</a></li>
<li><a href="http://aliha.ir/2009/01/30/how-to-use-lightbox-jquery-plugin/" title="پلاگین Lightbox ِ جی کوئری برای افکت دادن به نمایش تصاویر">پلاگین Lightbox ِ جی کوئری برای افکت دادن به نمایش تصاویر</a></li>
</ul>
<div style="direction: rtl;">
<a href="http://aliha.ir/2010/12/29/hyperterminal-jquery-ajax-and-php/#comments">30 دیدگاه</a> | 
فرستادن به: <a title="Bookmark in del.icio.us" href="http://del.icio.us/post?url=http://aliha.ir/2010/12/29/hyperterminal-jquery-ajax-and-php/&title=ای‌جکس بازی » به‌یاد هایپرترمینال">del.icio.us</a>
<hr />
<p align="center"><a href="http://www.irsaweb.com/"><img src="http://aliha.ir/images/irsaweb-small.png" alt="ایرساوب" /></a></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://aliha.ir/2010/12/29/hyperterminal-jquery-ajax-and-php/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>تشخیص پلتفرم‌های مختلف با پی اچ پی</title>
		<link>http://aliha.ir/2010/11/26/mobile-detection-with-php/</link>
		<comments>http://aliha.ir/2010/11/26/mobile-detection-with-php/#comments</comments>
		<pubDate>Fri, 26 Nov 2010 17:39:37 +0000</pubDate>
		<dc:creator>علیها</dc:creator>
				<category><![CDATA[پی اچ پی]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mobile detection]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php class]]></category>
		<category><![CDATA[platform]]></category>
		<category><![CDATA[تشخیص موبایل]]></category>
		<category><![CDATA[موبایل]]></category>

		<guid isPermaLink="false">http://aliha.ir/?p=1587</guid>
		<description><![CDATA[برای شناسایی پلتفرم‌ها و دستگاه‌های مختلف مانند موبایل که کاربران با آن‌ها وارد صفحات وب می‌شوند، راه‌های مختلفی وجود دارد که هرکدام از روشی خاص استفاده می‌کنند. در مجموع مراحلی که باید انجام شود این است که ابتدا دستگاه موردنظر شناسایی شود و سپس به صفحه‌ای دیگر منتقل شود یا یک همچین ژانگولربازی‌ای. چیز‌هایی که ...]]></description>
			<content:encoded><![CDATA[<p>برای شناسایی پلتفرم‌ها و دستگاه‌های مختلف مانند موبایل که کاربران با آن‌ها وارد صفحات وب می‌شوند، راه‌های مختلفی وجود دارد که هرکدام از روشی خاص استفاده می‌کنند. در مجموع مراحلی که باید انجام شود این است که ابتدا دستگاه موردنظر شناسایی شود و سپس به صفحه‌ای دیگر منتقل شود یا یک همچین ژانگولربازی‌ای.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-1588" title="mobile detect" src="http://aliha.ir/wp-content/uploads/mobile-detection.jpg" alt="mobile detect" width="500" height="325" /></p>
<p>چیز‌هایی که لازم داریم پی اچ پی هست و <a href="http://www.phpclasses.org/package/5455-PHP-Detect-the-type-of-mobile-device-accessing-a-site.html" target="_blank">این کلاس mobile dectect</a> که توسط <a href="http://www.victorstanciu.ro/" target="_blank">ایشان</a> نوشته شده.</p>
<p>یک پروژه ایجاد می‌کنم و در آن صفحه‌ای دارم با نام <code>index.php</code> که می‌خواهم اگر کسی با موبایل وارد این صفحه شد، با یک پیغام مواجه شود. کد زیر را در فایل <code>index.php</code> می‌نویسم:</p>
<pre class="brush: php;">
    include('Mobile_Detect.php');

    if ($detect-&gt;isMobile()) {
        echo 'you are on mobile!';
    }else{
        // the content here...
    }
</pre>
<p>ابتدا کلاس مربوطه را در ایندکس اینکلود کردم (خط اول) و سپس یک شرط ساده دادم که اگر کاربر محترم با موبایل وارد صفحه شد، پیغام فلان را بده و اگر با موبایل نبود هم محتوای صفحه را نشان بده.</p>
<p>ماجرا به همین سادگی‌ست! از این کلاس می‌توانید برای طراحی نسخه‌ی موبایل برای سایت یا وبلاگ خود استفاده نمایید؛ این کلاس می‌تواند پلتفرم‌های زیادی را تشخیص بدهد. در زیر، لیست دستورات شناسایی تعدادی از این پلتفرم‌ها را آورده‌ام.</p>
<p>همه‌ی پلتفرم‌های موبایل:</p>
<pre class="brush: php;">
if ($detect-&gt;isMobile()) {}
</pre>
<p>Iphone:</p>
<pre class="brush: php;">
if ($detect-&gt;isIphone()) {}
</pre>
<p>Ipod:</p>
<pre class="brush: php;">
if ($detect-&gt;isIpod()) {}
</pre>
<p>Android:</p>
<pre class="brush: php;">
if ($detect-&gt;isAndroid()) {}
</pre>
<p>Blackberry:</p>
<pre class="brush: php;">
if ($detect-&gt;isBlackberry()) {}
</pre>
<p>Opera mini:</p>
<pre class="brush: php;">
if ($detect-&gt;isOpera()) {}
</pre>
<p>Windows Mobile:</p>
<pre class="brush: php;">
if ($detect-&gt;isWindows()) {}
</pre>
<p>Palm:</p>
<pre class="brush: php;">
if ($detect-&gt;isPalm()) {}
</pre>
<p>برای تشخیص پلتفرم‌هایی مانند پی‌اس‌پی، پی‌دی‌ای، پاکت پی‌سی، اسمارت فون و چیزهایی از این قبیل:</p>
<pre class="brush: php;">
if ($detect-&gt;isGeneric()) {}
</pre>
<h2>دریافت کلاس mobile detect</h2>
<p style="text-align: center;"><a class="no-border" href="http://aliha.ir/download/php/mobile-detect.zip"><img class="alignnone no-border size-full wp-image-1213" title="download-zips" src="http://aliha.ir/wp-content/uploads/download-zips.jpg" alt="" width="298" height="174" /></a></p>
<ul class="related_post">
<li><a href="http://aliha.ir/2010/12/29/hyperterminal-jquery-ajax-and-php/" title="ای‌جکس بازی » به‌یاد هایپرترمینال">ای‌جکس بازی » به‌یاد هایپرترمینال</a></li>
<li><a href="http://aliha.ir/2010/10/31/video-tutorial-get-started-with-codeigniter/" title="آموزش ویدئویی » شروع کار با CodeIgniter">آموزش ویدئویی » شروع کار با CodeIgniter</a></li>
<li><a href="http://aliha.ir/2010/08/13/imified/" title="رُبات‌های تحت وب درخدمت شما هستند!">رُبات‌های تحت وب درخدمت شما هستند!</a></li>
<li><a href="http://aliha.ir/2010/04/15/ajax-record-delete-from-database-with-jquery/" title="ای‌جکس‌بازی » حذف رکورد از بانک‌اطلاعاتی با جی‌کوئری">ای‌جکس‌بازی » حذف رکورد از بانک‌اطلاعاتی با جی‌کوئری</a></li>
<li><a href="http://aliha.ir/2010/02/21/css-file-protection/" title="بیایید کمی سربه‌سر دزدهای پوسته بگذاریم – یک کُد کوچولو!">بیایید کمی سربه‌سر دزدهای پوسته بگذاریم – یک کُد کوچولو!</a></li>
</ul>
<div style="direction: rtl;">
<a href="http://aliha.ir/2010/11/26/mobile-detection-with-php/#comments">20 دیدگاه</a> | 
فرستادن به: <a title="Bookmark in del.icio.us" href="http://del.icio.us/post?url=http://aliha.ir/2010/11/26/mobile-detection-with-php/&title=تشخیص پلتفرم‌های مختلف با پی اچ پی">del.icio.us</a>
<hr />
<p align="center"><a href="http://www.irsaweb.com/"><img src="http://aliha.ir/images/irsaweb-small.png" alt="ایرساوب" /></a></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://aliha.ir/2010/11/26/mobile-detection-with-php/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>آموزش ویدئویی » شروع کار با CodeIgniter</title>
		<link>http://aliha.ir/2010/10/31/video-tutorial-get-started-with-codeigniter/</link>
		<comments>http://aliha.ir/2010/10/31/video-tutorial-get-started-with-codeigniter/#comments</comments>
		<pubDate>Sun, 31 Oct 2010 07:40:04 +0000</pubDate>
		<dc:creator>علیها</dc:creator>
				<category><![CDATA[پی اچ پی]]></category>
		<category><![CDATA[ci]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[video tutorial]]></category>
		<category><![CDATA[آموزش]]></category>
		<category><![CDATA[آموزش ویدئویی]]></category>
		<category><![CDATA[دیتابیس]]></category>
		<category><![CDATA[فریم ورک]]></category>
		<category><![CDATA[مای اس کیو ال]]></category>
		<category><![CDATA[کدایگنیتر]]></category>

		<guid isPermaLink="false">http://aliha.ir/?p=1550</guid>
		<description><![CDATA[در این ویدئوی حدوداً ۱۰ دقیقه‌ای شما را با یکی از فریم‌ورک‌های پی‌اچ‌پی به نام CodeIgniter آشنا می‌کنم که استفاده از آن بسیار ساده و در عین حال یک فریم‌ورک قدرت‌مند می‌باشد. چند مثال ساده را با هم مرور می‌کنیم و یاد می‌گیریم که چطور از دیتابیس‌ها در CodeIgniter استفاده کنیم. برای ورود به سایت ...]]></description>
			<content:encoded><![CDATA[<p>در این ویدئوی حدوداً ۱۰ دقیقه‌ای شما را با یکی از فریم‌ورک‌های <a href="http://aliha.ir/category/پی-اچ-پی/">پی‌اچ‌پی</a> به نام <a href="http://codeigniter.com/" target="_blank">CodeIgniter</a> آشنا می‌کنم که استفاده از آن بسیار ساده و در عین حال یک فریم‌ورک قدرت‌مند می‌باشد. چند مثال ساده را با هم مرور می‌کنیم و یاد می‌گیریم که چطور از دیتابیس‌ها در CodeIgniter استفاده کنیم.</p>
<p style="text-align: center;"><iframe src="http://player.vimeo.com/video/16359744" width="558" height="314" frameborder="0"></iframe></p>
<p>برای ورود به سایت CodeIgniter <a href="http://codeigniter.com/" target="_blank">اینجا</a> کلیک کنید.<br />
می‌توانید این ویدئو را با حجم ۲۵ مگابایت و کیفیت HD 720p <a href="http://aliha.ir/video/Getting-started-with-CodeIgniter.mp4">دریافت نمایید</a>.
<ul class="related_post">
<li><a href="http://aliha.ir/2010/04/15/ajax-record-delete-from-database-with-jquery/" title="ای‌جکس‌بازی » حذف رکورد از بانک‌اطلاعاتی با جی‌کوئری">ای‌جکس‌بازی » حذف رکورد از بانک‌اطلاعاتی با جی‌کوئری</a></li>
<li><a href="http://aliha.ir/2010/12/29/hyperterminal-jquery-ajax-and-php/" title="ای‌جکس بازی » به‌یاد هایپرترمینال">ای‌جکس بازی » به‌یاد هایپرترمینال</a></li>
<li><a href="http://aliha.ir/2010/11/26/mobile-detection-with-php/" title="تشخیص پلتفرم‌های مختلف با پی اچ پی">تشخیص پلتفرم‌های مختلف با پی اچ پی</a></li>
<li><a href="http://aliha.ir/2010/08/13/imified/" title="رُبات‌های تحت وب درخدمت شما هستند!">رُبات‌های تحت وب درخدمت شما هستند!</a></li>
<li><a href="http://aliha.ir/2010/02/21/css-file-protection/" title="بیایید کمی سربه‌سر دزدهای پوسته بگذاریم – یک کُد کوچولو!">بیایید کمی سربه‌سر دزدهای پوسته بگذاریم – یک کُد کوچولو!</a></li>
</ul>
<div style="direction: rtl;">
<a href="http://aliha.ir/2010/10/31/video-tutorial-get-started-with-codeigniter/#comments">52 دیدگاه</a> | 
فرستادن به: <a title="Bookmark in del.icio.us" href="http://del.icio.us/post?url=http://aliha.ir/2010/10/31/video-tutorial-get-started-with-codeigniter/&title=آموزش ویدئویی » شروع کار با CodeIgniter">del.icio.us</a>
<hr />
<p align="center"><a href="http://www.irsaweb.com/"><img src="http://aliha.ir/images/irsaweb-small.png" alt="ایرساوب" /></a></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://aliha.ir/2010/10/31/video-tutorial-get-started-with-codeigniter/feed/</wfw:commentRss>
		<slash:comments>52</slash:comments>
<enclosure url="http://aliha.ir/video/Getting-started-with-CodeIgniter.mp4" length="26564990" type="video/mp4" />
		</item>
		<item>
		<title>رُبات‌های تحت وب درخدمت شما هستند!</title>
		<link>http://aliha.ir/2010/08/13/imified/</link>
		<comments>http://aliha.ir/2010/08/13/imified/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 13:38:26 +0000</pubDate>
		<dc:creator>علیها</dc:creator>
				<category><![CDATA[معرفی سایت]]></category>
		<category><![CDATA[bot]]></category>
		<category><![CDATA[gtalk]]></category>
		<category><![CDATA[imified]]></category>
		<category><![CDATA[messenger]]></category>
		<category><![CDATA[msn]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[sms]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[اس ام اس]]></category>
		<category><![CDATA[ایمیل]]></category>
		<category><![CDATA[توییتر]]></category>
		<category><![CDATA[ربات]]></category>
		<category><![CDATA[ربوت]]></category>
		<category><![CDATA[فرندفید]]></category>
		<category><![CDATA[مسنجر]]></category>
		<category><![CDATA[پی اچ پی]]></category>

		<guid isPermaLink="false">http://aliha.ir/?p=1470</guid>
		<description><![CDATA[صاحاب: آب حوض رو عوض کن رُبات: آب حوض عوض شد صاحاب: پنج کیلو سیب‌زمینی بگیر رُبات: گرفتم صاحاب: ناهار بپز رُبات: پُختم صاحاب: پیراهنام رو اتو کن رُبات: اتو کردم &#8230; خب مسئله اینجاست که احتمالا فکر می‌کنید دارم شوخی می‌کنم با شما، اما در ادامه متوجه می‌شوید که به وقوع پیوستن ِ چنین ...]]></description>
			<content:encoded><![CDATA[<blockquote><p>صاحاب: آب حوض رو عوض کن<br />
رُبات: آب حوض عوض شد<br />
صاحاب: پنج کیلو سیب‌زمینی بگیر<br />
رُبات: گرفتم<br />
صاحاب: ناهار بپز<br />
رُبات: پُختم<br />
صاحاب: پیراهنام رو اتو کن<br />
رُبات: اتو کردم<br />
&#8230;</p></blockquote>
<p>خب مسئله اینجاست که احتمالا فکر می‌کنید دارم شوخی می‌کنم با شما، اما در ادامه متوجه می‌شوید که به وقوع پیوستن ِ چنین رویایی برای‌مان، همچین هم دور از ذهن نیست!</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-1471" title="imified" src="http://aliha.ir/wp-content/uploads/imified.jpg" alt="" width="500" height="325" /></p>
<p>مدت‌ها پیش قصد داشتم در رابطه با سرویس <a href="http://imified.com/" target="_blank">imified</a> بنویسم که تا همین حالا وقت نشده بود. imified برای‌مان کار بزرگی انجام می‌دهد و این امکان را فراهم می‌کند که بتوانیم رُبات‌هایی با وظایف دل‌خواه بسازیم و از طریق مختلف به این رُبات‌ها دستور بدهیم. درواقع اصل ماجرا و کار بزرگی که imified می‌کند همین است. ما می‌توانیم از طریق مسنجرهایی مثل <a href="http://www.google.com/talk/" target="_blank">جی‌تاک</a>، <a href="http://messenger.yahoo.com" target="_blank">یاهو</a> یا <a href="http://messenger.msn.com" target="_blank">ام‌اس‌ان</a> و یا با <a href="http://twitter.com/" target="_blank">توییتر</a> و یا حتی با اس‌ام‌اس، به رُبات‌مان دستور بدهیم. به‌نظر من که خیلی جالب است.</p>
<p>بخش برنامه‌نویسی رُبات، پای خودمان است. البته خبر خوش این هست که با هر زبان سمت سروری می‌شود برای رُبات‌مان برنامه بنویسیم. <a href="http://php.net/" target="_blank">پی‌اچ‌پی</a>، <a href="http://perl.org/" target="_blank">پرل</a>، <a href="http://python.org/" target="_blank">پایتون</a> و &#8230; .</p>
<h2>شروع کار با imified</h2>
<p>قبل از هرچیز باید در imified عضو بشوید (از <a href="http://www.imified.com/account/signup/" target="_blank">اینجا</a>). بعد از عضویت وارد <a href="http://www.imified.com/account" target="_blank">اکانت</a> خود شوید. در سمت راست صفحه، دکمه‌ی <a href="http://www.imified.com/account/bot/new" target="_blank">Create a new bot</a> را بزنید.</p>
<p><strong>Bot Name:</strong> در این قسمت یک نام برای رُبات‌تان انتخاب کنید.<br />
<strong> Screen Name:</strong> نامی که در این قسمت وارد می‌کنید نامی است که برای ارتباط با رُبات از طریق مسنجرها، به آن اضافه می‌کنید. یعنی یک همچین چیزی: mybot@bot.im و این را در مسنجر خود اد می‌کنید تا بتوانید با این رُبات ارتباط برقرار کنید.<br />
<strong> Bot URL:</strong> در این قسمت، باید آدرس فایلی که برنامه‌ی رُبات‌تان در آن نوشته شده است را بدهید. برای مثال اگر با پی‌اچ‌پی برنامه نوشته‌اید و نام فایل برنامه <code>mybot.php</code> هست، باید یک همچین آدرسی وارد کنید: <code>http://yourdomain.com/bots/mybot.php</code>. و گفتن هم ندارد که ما برنامه‌مان را باید روی سروری آپلود کنیم که پی‌اچ‌پی روی‌ش اجرا شود (باتوجه به مثال بالا پی‌اچ‌پی را عرض کردم. با هر زبانی که برنامه را نوشته‌ایم، سرورمان باید بتواند آن زبان را اجرا کند).</p>
<p>بعد از پُر کردن این سه فیلد، روی Create new bot کلیک کنید تا رُبات ساخته شود. این کل ماجرا بود. حالا با هم یک رُبات کوچک درست می‌کنیم؛</p>
<h2>ساخت رُبات Hello World با پی‌اچ‌پی</h2>
<p>اول مانند بالا یک رُبات جدید ایجاد کنید و بعد یک فایل با نام helloworld.php بسازید و کد زیر را در آن قرار دهید و بعد روی یک سروری که پی‌اچ‌پی را اجرا می‌کند آپلودش کنید (و آدرس این فایل را هم که قبلا در Bot URL رُبات‌تان وارد کرده‌اید):</p>
<pre class="brush: php;">
&lt;?php
switch ($_REQUEST['step']) {
case 1:
echo &quot;Hi, what's your name?&quot;;
break;
case 2:
echo &quot;Hi &quot; . $_REQUEST['value1'] . &quot;, where do you live?&quot;;
break;
case 3:
echo &quot;Well, welcome to this hello world bot, &quot; . $_REQUEST['value1'] . &quot;&lt;br&gt;from &quot; . $_REQUEST['value2'] . &quot;.&lt;reset&gt;&quot;;
break;
}
?&gt;
</pre>
<p>در ابتدا شما یک پی‌ام در مسنجر به رُبات می‌دهید. مثلا سلام می‌کنید و رُبات در جواب، جمله‌ی &#8221; Hi, what&#8217;s your name?&#8221; را می‌فرستد (خط ۴). حالا شما اسم‌تان را به رُبات می‌گویید و او هم با تابع <code>$_REQUEST</code> نام شما را می‌گیرد و این جمله را می‌فرستد: &#8220;Hi [your name], where do you live?&#8221; (خط ۷). باز هم شما در جواب نام جایی که در آن زندگی می‌کنید را می‌دهید و باز رُبات با تابع <code>$_REQUEST</code> اسم مکان زندگی‌تان را می‌گیرد و این جمله را می‌فرستد: &#8220;Well, welcome to this hello world bot, [your name] from [your city].&#8221; (خط ۱۰). یک تابع هم خود imified دارد که در انتهای خط ۱۱ می‌بینید. &lt;reset&gt;. این تابع باعث می‌شود تا رُبات ریست شود و کارش را دوباره از اول شروع کند.<br />
یک بخش <a href="http://www.imified.com/developers/tools" target="_blank">Debugger</a> هم در imified وجود دارد برای خطایابی برنامه‌ای که برای رُبات‌مان نوشتیم و خیلی به‌درد بخور است.</p>
<p>با این رُبات‌ها خیلی کارها می‌شود کرد. کافی است کمی ایده و خلاقیت داشته باشید و بتوانید این ایده را پیاده کنید و رُبات‌هایی با کارایی‌های جالب بسازید. مثلا از طریق API مترجم گوگل، یک رُبات مترجم بسازید. خود من همان چندوقت پیش که با imified آشنا شده بودم یک رُبات ساختم که می‌شود با آن توییت کرد، ایمیل فرستاد و به فرندفید مطلب ارسال کرد. کافی است این را در یک مسنجری اد کنید aliha@bot.im و به‌ش سلام کنید و بعد از اینکه پرسید چه کاری می‌خواهید انجام دهید، تایپ کنید twitt یا email یا friendfeed.</p>
<p>خب دیگر کافی‌ست؛ بروید رُبات بسازید ببینیم چه‌کار می‌کنید :)
<ul class="related_post">
<li><a href="http://aliha.ir/2009/08/20/a-simple-application-with-twitters-api/" title="یک اپلیکیشن ساده و کاربردی با کمک API ِ توییتر بنویسید">یک اپلیکیشن ساده و کاربردی با کمک API ِ توییتر بنویسید</a></li>
<li><a href="http://aliha.ir/2010/12/29/hyperterminal-jquery-ajax-and-php/" title="ای‌جکس بازی » به‌یاد هایپرترمینال">ای‌جکس بازی » به‌یاد هایپرترمینال</a></li>
<li><a href="http://aliha.ir/2010/11/26/mobile-detection-with-php/" title="تشخیص پلتفرم‌های مختلف با پی اچ پی">تشخیص پلتفرم‌های مختلف با پی اچ پی</a></li>
<li><a href="http://aliha.ir/2010/10/31/video-tutorial-get-started-with-codeigniter/" title="آموزش ویدئویی » شروع کار با CodeIgniter">آموزش ویدئویی » شروع کار با CodeIgniter</a></li>
<li><a href="http://aliha.ir/2010/04/15/ajax-record-delete-from-database-with-jquery/" title="ای‌جکس‌بازی » حذف رکورد از بانک‌اطلاعاتی با جی‌کوئری">ای‌جکس‌بازی » حذف رکورد از بانک‌اطلاعاتی با جی‌کوئری</a></li>
</ul>
<div style="direction: rtl;">
<a href="http://aliha.ir/2010/08/13/imified/#comments">36 دیدگاه</a> | 
فرستادن به: <a title="Bookmark in del.icio.us" href="http://del.icio.us/post?url=http://aliha.ir/2010/08/13/imified/&title=رُبات‌های تحت وب درخدمت شما هستند!">del.icio.us</a>
<hr />
<p align="center"><a href="http://www.irsaweb.com/"><img src="http://aliha.ir/images/irsaweb-small.png" alt="ایرساوب" /></a></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://aliha.ir/2010/08/13/imified/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>ای‌جکس‌بازی » حذف رکورد از بانک‌اطلاعاتی با جی‌کوئری</title>
		<link>http://aliha.ir/2010/04/15/ajax-record-delete-from-database-with-jquery/</link>
		<comments>http://aliha.ir/2010/04/15/ajax-record-delete-from-database-with-jquery/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 17:31:36 +0000</pubDate>
		<dc:creator>علیها</dc:creator>
				<category><![CDATA[ای جکس]]></category>
		<category><![CDATA[جی کوئری]]></category>
		<category><![CDATA[پی اچ پی]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[delete record]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[record]]></category>
		<category><![CDATA[بانک اطلاعاتی]]></category>
		<category><![CDATA[حذف رکورد]]></category>
		<category><![CDATA[دیتابیس]]></category>
		<category><![CDATA[مای اس کیو ال]]></category>

		<guid isPermaLink="false">http://aliha.ir/?p=1446</guid>
		<description><![CDATA[بعضی‌ها فکر می‌کنند که مثلاً جی‌کوئری فقط برای درست‌کردن ِ افکت‌ها و این‌چیزهاست، درصورتی که اصل ِ جی‌کوئری، ماجرای فرستادن درخواست و گرفتن پاسخ از سمت آقای سرور به‌صورت ای‌جکس می‌باشد که الان می‌خواهیم به یک مورد کوچکی از آن اشاره کنیم. این‌که چه‌طور یک رکورد از بانک‌اطلاعاتی‌مان را بدون بارگذاری‌شدن ِ هیچ صفحه‌ای حذف ...]]></description>
			<content:encoded><![CDATA[<p>بعضی‌ها فکر می‌کنند که مثلاً <a href="http://jquery.com/" target="_blank">جی‌کوئری</a> فقط برای درست‌کردن ِ افکت‌ها و این‌چیزهاست، درصورتی که اصل ِ جی‌کوئری، ماجرای فرستادن درخواست و گرفتن پاسخ از سمت آقای سرور به‌صورت ای‌جکس می‌باشد که الان می‌خواهیم به یک مورد کوچکی از آن اشاره کنیم. این‌که چه‌طور یک رکورد از بانک‌اطلاعاتی‌مان را بدون بارگذاری‌شدن ِ هیچ صفحه‌ای حذف کنیم. این‌کار را بر پایه‌ی پی‌اچ‌پی انجام می‌دهیم.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-1447" title="jquery-record-delete" src="http://aliha.ir/wp-content/uploads/jquery-record-delete.jpg" alt="" width="500" height="325" /></p>
<p style="text-align: left;">
<h2>اتصال به بانک‌اطلاعاتی</h2>
<p>برای وصل‌شدن به بانک‌اطلاعاتی، قبل از هرکاری، یک فایل با نام <code>config.php</code> می‌سازیم و آن را با ادیتورمان باز می‌کنیم و کد زیر را در آن می‌نویسیم:</p>
<pre class="brush: php;">
&lt;?php
$db_host = 'localhost';
$db_name = 'your database name';
$db_user = 'your username';
$db_pass = 'your password';
?&gt;
</pre>
<p>کار خاصی نکردیم، فقط چند متغیر به‌نام‌های <code>db_host</code>، <code>db_name</code>، <code>db_user</code> و <code>db_pass</code> تعریف کردیم که مقادیر آن‌ها را به‌ترتیب، نوع هاست (که اصولا همان localhost می‌باشد)، نام بانک‌اطلاعاتی، نام‌کاربری‌ای که با آن به بانک اطلاعاتی دسترسی پیدا می‌کنیم و در آخر هم رمزعبور را دادیم.</p>
<p>حالا دیگر هرجایی که خواستیم به بانک‌اطلاعاتی وصل بشویم، کافی است این فایل را فراخوانی کنیم.</p>
<h2>حذف رکورد</h2>
<p>ابتدا باید یک صفحه‌ای برای نمایش رکوردها داشته باشیم. پس یک فایل با نام <code>index.php</code> می‌سازیم و کدهای زیر را در آن می‌نویسیم:</p>
<pre class="brush: php;">
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;حذف رکورد از بانک‌اطلاعاتی با جی‌کوئری&lt;/title&gt;
&lt;script src=&quot;js/jquery.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/delete.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;?php
include(&quot;config.php&quot;);

$connect = @mysql_connect($db_host, $db_user, $db_pass) or die('Database Connection Error!');
@mysql_select_db($db_name);

$query = &quot;SELECT * FROM my_tbl ORDER BY id DESC&quot;;
$result = @mysql_query($query) or die(mysql_error());
while($row = @mysql_fetch_array($result))
{
?&gt;
&lt;div class=&quot;record&quot;&gt;
&lt;div class=&quot;content&quot;&gt;&lt;?php echo($row[content]); ?&gt;&lt;/div&gt;
&lt;div class=&quot;date&quot;&gt;&lt;?php echo($row[content_date]); ?&gt;&lt;/div&gt;
&lt;div class=&quot;tools&quot;&gt;&lt;a class=&quot;delete&quot; id=&quot;&lt;?php echo($row[id]); ?&gt;&quot; href=&quot;#&quot;&gt;حذف&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;?php
}
mysql_close($connect);
?&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>در خط نهم، فایل کانفیگ که حاوی مشخصات بانک‌اطلاعاتی‌مان بود را فراخوانی کردیم. در خط یازدهم و دوازدهم، به بانک‌اطلاعاتی وصل شدیم. در خط‌های چهاردهم و پانزدهم هم تیبل ِ موردنظرمان را انتخاب کردیم و از خط شانزدهم تا بیست‌وسوم هم یک حلقه برای نمایش رکوردهایی که در تیبل ِ انتخاب‌شده‌مان قرار دارد ایجاد کردیم.<br />
در خط بیست‌وششم، اتصال به بانک‌اطلاعاتی را بستیم که البته این دستور فقط جنبه‌ی امنیتی دارد و کاری به عمل‌کرد ِ کدمان ندارد.</p>
<p>حالا دیگر فقط دو مرحله پیش ِ رو داریم. اولی نوشتن اسکریپت ِ حذف رکورد با پی‌اچ‌پی و دومی نوشتن کد جی‌کوئری‌ای که درخواست ِ ما (همان حذف رکورد) را بفرستد به اسکریپتی که در مرحله‌ی اول نوشتیم و آن را اجرا کند.</p>
<p>پس اول یک فایل با نام <code>delete.php</code> می‌سازیم و کدهای زیر را در آن می‌نویسیم:</p>
<pre class="brush: php;">
&lt;?php
include(&quot;config.php&quot;);

$connect = @mysql_connect($db_host, $db_user, $db_pass) or die('Connection Error');
@mysql_select_db($db_name);

$id = $_GET['id'];

$query = &quot;DELETE FROM my_tbl WHERE id = '$id'&quot;;
mysql_query($query);

mysql_close($connect);
?&gt;
</pre>
<p>باز هم در ابتدا فایل کانفیگ را فراخوانی کردیم و بعد از آن هم به بانک‌اطلاعاتی وصل شدیم. در خط هفتم یک متغیر با نام id تعریف کردیم که جلوتر در مورد ماهیتش توضیح می‌دهم. در خط نهم و دهم هم کد مربوط به حذف رکورد را نوشتیم و در پایان اتصال به بانک‌اطلاعاتی را بستیم.</p>
<p>حالا می‌رویم سراغ کد جی‌کوئری‌مان. یک فایل با نام <code>delete.js</code> می‌سازیم و آن را با ادیتورمان باز می‌کنیم. کدهای زیر را در آن می‌نویسیم:</p>
<pre class="brush: jscript;">
$(function() {
$(&quot;.delete&quot;).click(function(){
var element = $(this);
var del_id = element.attr(&quot;id&quot;);
var info = 'id=' + del_id;
 if(confirm(&quot;مطمئنید که قصد حذف این رکورد را دارید؟ این غیرقابل‌بازگشت خواهد بود!&quot;))
		  {
 $.ajax({
   type: &quot;GET&quot;,
   url: &quot;delete.php&quot;,
   data: info,
   success: function(){
   }
 });
	$(this).parents(&quot;.record&quot;).css({ backgroundColor: &quot;red&quot; }, &quot;fast&quot;)
	.animate({ opacity: &quot;hide&quot; }, &quot;slow&quot;);
 }

return false;
});
});
</pre>
<p>اگر دقت کرده باشید، در صفحه‌ای که رکوردهای‌مان نمایش داده می‌شوند یک دکمه‌ای قرار دادیم که کلاس ِ آن delete هست. به همین خاطر در کد بالا، قبل از هرچیز می‌گوییم که وقتی روی دکمه‌ی حذف کلیک شد، آن‌وقت اتفاقاتی که در ادامه می‌گویم، بی‌اُفتند.</p>
<p>اولین‌کاری که باید بکنیم این هست که شناسه‌ی رکوردی که دکمه‌ی حذف ِ آن را زده‌ایم، مشخص شود. برای این‌کار، در صفحه‌ای که رکوردها نمایش داده می‌شوند، در آی‌دی ِ هر رکورد، شناسه‌ی آن را برمی‌گرداندیم. حالا دیگر کارمان راحت شد و در کد بالا می‌بینید که شناسه‌ی رکورد را خیلی راحت در می‌آوریم (خط‌های ۳ تا ۵). یادتان هست که در فایل <code>delete.php</code>، متغیر ِ <code>$id</code> را ایجاد کرده بودیم؟ مقدار آن برابر با شناسه‌ی رکورد که در کد بالا مشخصش می‌کنیم می‌شود. حالا باید یک پیغام به کاربر بدهیم که اگر آن را تایید کند، آن‌وقت عملیات ِ حذف ِ رکورد انجام بشود.</p>
<p>اصل ماجرا این‌جاست. ما از تابع <a href="http://api.jquery.com/jQuery.ajax/" target="_blank"><code>$.ajax()</code></a> برای ارسال اطلاعات به اسکریپتی که برای حذف رکورد نوشته بودیم استفاده می‌کنیم. مقدار ِ متد ِ url، را برابر با آدرس فایل <code>delete.php</code> قرار می‌دهیم. این تابع یک متدی دارد به‌نام success. کار اصلی این متد این است که وقتی عملیات با موفقیت انجام شد، یک رویدادی انجام گیرد. مثلاً یک پیغام نمایش داده شود و بگوید که رکورد حذف شد یا یک همچین‌چیزی.<br />
یک افکتی هم در آخر درست می‌کنیم که وقتی رکورد حذف شد، از دید‌مان پنهان شود که در خط‌های پانزده و شانزده، کد ِ مربوط به افکت را می‌بینید. ابتدا رنگ‌زمینه‌ی رکورد را قرمز و بعد از آن، مخفی‌اش می‌کنیم. همین!</p>
<p><a href="http://aliha.ir/jquery/source/jdelete/" target="_blank">این‌جا</a> دمو را ببینید و این نمونه را دریافت کنید:</p>
<p style="text-align: center;"><a class="no-border" href="http://aliha.ir/download/jquery/jDelete.zip"><img class="alignnone no-border size-full wp-image-1213" title="download-zips" src="http://aliha.ir/wp-content/uploads/download-zips.jpg" alt="" width="298" height="174" /></a></p>
<ul class="related_post">
<li><a href="http://aliha.ir/2010/12/29/hyperterminal-jquery-ajax-and-php/" title="ای‌جکس بازی » به‌یاد هایپرترمینال">ای‌جکس بازی » به‌یاد هایپرترمینال</a></li>
<li><a href="http://aliha.ir/2010/10/31/video-tutorial-get-started-with-codeigniter/" title="آموزش ویدئویی » شروع کار با CodeIgniter">آموزش ویدئویی » شروع کار با CodeIgniter</a></li>
<li><a href="http://aliha.ir/2009/05/30/5-free-ajax-contact-form/" title="معرفی 5 فرم تماس ِ رایگان ِ ای جکس">معرفی ۵ فرم تماس ِ رایگان ِ ای جکس</a></li>
<li><a href="http://aliha.ir/2010/10/04/ajax-loading-content-with-jquery/" title="ای‌جکس‌بازی » بارگذاری محتوای صفحات با جی‌کوئری">ای‌جکس‌بازی » بارگذاری محتوای صفحات با جی‌کوئری</a></li>
<li><a href="http://aliha.ir/2009/01/30/how-to-use-lightbox-jquery-plugin/" title="پلاگین Lightbox ِ جی کوئری برای افکت دادن به نمایش تصاویر">پلاگین Lightbox ِ جی کوئری برای افکت دادن به نمایش تصاویر</a></li>
</ul>
<div style="direction: rtl;">
<a href="http://aliha.ir/2010/04/15/ajax-record-delete-from-database-with-jquery/#comments">38 دیدگاه</a> | 
فرستادن به: <a title="Bookmark in del.icio.us" href="http://del.icio.us/post?url=http://aliha.ir/2010/04/15/ajax-record-delete-from-database-with-jquery/&title=ای‌جکس‌بازی » حذف رکورد از بانک‌اطلاعاتی با جی‌کوئری">del.icio.us</a>
<hr />
<p align="center"><a href="http://www.irsaweb.com/"><img src="http://aliha.ir/images/irsaweb-small.png" alt="ایرساوب" /></a></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://aliha.ir/2010/04/15/ajax-record-delete-from-database-with-jquery/feed/</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>بیایید کمی سربه‌سر دزدهای پوسته بگذاریم – یک کُد کوچولو!</title>
		<link>http://aliha.ir/2010/02/21/css-file-protection/</link>
		<comments>http://aliha.ir/2010/02/21/css-file-protection/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 16:14:55 +0000</pubDate>
		<dc:creator>علیها</dc:creator>
				<category><![CDATA[سی اس اس]]></category>
		<category><![CDATA[پی اچ پی]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css protection]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[اچ تی اکسس]]></category>
		<category><![CDATA[دزد پوسته]]></category>
		<category><![CDATA[محافظت از استایل]]></category>

		<guid isPermaLink="false">http://aliha.ir/?p=1351</guid>
		<description><![CDATA[ساعت‌ها وقت می‌گذاریم برای نوشتن دستورات ِ سی‌اس‌اس ِ پوسته‌مان. مسلماً دوست نداریم یک نفر بیاید در عرض چند ثانیه کدهای‌مان را کش برود. حالا ما می‌خواهیم یک کاری بکنیم که وقتی آقای دزد، پرونده‌ی سی‌اس‌اس را در مرورگرش باز کرد، به‌جای کدها، مثلاً یک شکلک عین بُز لبخند بزند برایش :) برای این‌کار از ...]]></description>
			<content:encoded><![CDATA[<p>ساعت‌ها وقت می‌گذاریم برای نوشتن دستورات ِ سی‌اس‌اس ِ پوسته‌مان. مسلماً دوست نداریم یک نفر بیاید در عرض چند ثانیه کدهای‌مان را کش برود. حالا ما می‌خواهیم یک کاری بکنیم که وقتی آقای دزد، پرونده‌ی سی‌اس‌اس را در مرورگرش باز کرد، به‌جای کدها، مثلاً یک شکلک عین بُز لبخند بزند برایش :)</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-1353" title="css-protection" src="http://aliha.ir/wp-content/uploads/css-protection.jpg" alt="" width="500" height="300" /></p>
<p>برای این‌کار از پی‌اچ‌پی و اچ‌تی‌اکسس استفاده می‌کنیم.</p>
<p style="text-align: left;"><img class="size-full wp-image-1354 no-border" title="list-of-files-css-protection" src="http://aliha.ir/wp-content/uploads/list-of-files-css-protection.png" alt="" width="119" height="75" /></p>
<p>فرض می‌کنیم یک صفحه‌ای داریم به‌نام index.php؛ کدهای اچ‌تی‌ام‌ال زیر را هم در آن داریم:</p>
<pre class="brush: xml;">
&lt;html&gt;
&lt;head&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;style.css&quot; /&gt;
&lt;/head&gt;
&lt;body&gt;
سلام جهان!
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>حالا کد پی‌اچ‌پی زیر را به بالای index.php اضافه می‌کنیم، یعنی قبل از شروع شدن &lt;html&gt; باید قرار بگیرد:</p>
<pre class="brush: php;">
&lt;?php
session_start();
$_SESSION[&quot;csskey&quot;] = &quot;user&quot;;
?&gt;
</pre>
<p>با این‌کار برای کاربر در هنگام ورود یک سشن با نام csskey که برابر با user است، ست کردیم.</p>
<p>سپس یک فایل با نام style.php می سازیم و تکه‌کد پی‌اچ‌پی زیر را در ابتدای آن قرار می‌دهیم و بعد از آن، دستورات سی‌اس‌اس‌مان را اضافه می‌کنیم:</p>
<pre class="brush: php;">
&lt;?php
session_start();
header(&quot;Content-type: text/css&quot;);
if ($_SESSION[&quot;csskey&quot;] != &quot;user&quot;) {die(&quot;:-)&quot;);}

$_SESSION[&quot;csskey&quot;] = &quot;somethingelse&quot;;
?&gt;

body {background-color: #000; color: #fff; direction: rtl;}
</pre>
<p>فکر کنم متوجه شده باشید که چه اتفاقی قرار است بی‌اُفتد. Content-type را از نوع text/css می‌گذاریم تا مرورگر آن را به‌عنوان یک فایل سی‌اس‌اس تفسیر کند.<br />
سپس می‌گوییم اگر csskey برابر با user نبود، دستورات سی‌اس‌اس را بارگذاری نکن و در خروجی «:-)» را چاپ کن.<br />
اما اگر csskey برابر با user بود، آن‌وقت دوباره csskey را برابر با somethingelse می‌کنیم و در خروجی دستورات سی‌اس‌اس را برمی‌گردانیم.</p>
<p>و در آخر فقط کافی است دو خط زیر را به فایل .htaccess اضافه کنیم:</p>
<pre class="brush: php;">
RewriteEngine on
RewriteRule style.css style.php
</pre>
<p>درواقع ما عملاً هیچ فایلی به‌نام style.css نداریم و با کمک اچ‌تی‌اکسس style.php را تبدیل به style.css می‌کنیم.</p>
<p>شاید تنها ایرادی که این روش داشته باشد این است که برای هربار بارگذاری شدن سایت، باید تعدادی دستور پی‌اچ‌پی اجرا و کامپایل شود و این برای سایت‌هایی که بازدید بالا دارند اصلاً خوب نیست چرا که فشار زیادی به سرور وارد می‌شود و مورد دیگر اینکه حتی با استفاده از این روش نیز دستورات سی‌اس‌اس‌مان همچنان با فایرباگ قابل روئیت می‌باشند!</p>
<p>این روش را <a href="http://www.n1studios.net/" target="_blank">ایشان</a> ارائه کرده‌اند.
<ul class="related_post">
<li><a href="http://aliha.ir/2010/12/29/hyperterminal-jquery-ajax-and-php/" title="ای‌جکس بازی » به‌یاد هایپرترمینال">ای‌جکس بازی » به‌یاد هایپرترمینال</a></li>
<li><a href="http://aliha.ir/2010/11/26/mobile-detection-with-php/" title="تشخیص پلتفرم‌های مختلف با پی اچ پی">تشخیص پلتفرم‌های مختلف با پی اچ پی</a></li>
<li><a href="http://aliha.ir/2010/10/31/video-tutorial-get-started-with-codeigniter/" title="آموزش ویدئویی » شروع کار با CodeIgniter">آموزش ویدئویی » شروع کار با CodeIgniter</a></li>
<li><a href="http://aliha.ir/2010/08/13/imified/" title="رُبات‌های تحت وب درخدمت شما هستند!">رُبات‌های تحت وب درخدمت شما هستند!</a></li>
<li><a href="http://aliha.ir/2010/04/15/ajax-record-delete-from-database-with-jquery/" title="ای‌جکس‌بازی » حذف رکورد از بانک‌اطلاعاتی با جی‌کوئری">ای‌جکس‌بازی » حذف رکورد از بانک‌اطلاعاتی با جی‌کوئری</a></li>
</ul>
<div style="direction: rtl;">
<a href="http://aliha.ir/2010/02/21/css-file-protection/#comments">56 دیدگاه</a> | 
فرستادن به: <a title="Bookmark in del.icio.us" href="http://del.icio.us/post?url=http://aliha.ir/2010/02/21/css-file-protection/&title=بیایید کمی سربه‌سر دزدهای پوسته بگذاریم – یک کُد کوچولو!">del.icio.us</a>
<hr />
<p align="center"><a href="http://www.irsaweb.com/"><img src="http://aliha.ir/images/irsaweb-small.png" alt="ایرساوب" /></a></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://aliha.ir/2010/02/21/css-file-protection/feed/</wfw:commentRss>
		<slash:comments>56</slash:comments>
		</item>
		<item>
		<title>کمی API ِ فرندفید، کمی PHP، یک اپلیکیشن ِ کوچولو موچولو!</title>
		<link>http://aliha.ir/2009/09/30/a-simple-friendfeed-application-with-api-and-php/</link>
		<comments>http://aliha.ir/2009/09/30/a-simple-friendfeed-application-with-api-and-php/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 16:11:45 +0000</pubDate>
		<dc:creator>علیها</dc:creator>
				<category><![CDATA[ای پی آی]]></category>
		<category><![CDATA[فرندفید]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[friendfeed.php]]></category>
		<category><![CDATA[remote]]></category>
		<category><![CDATA[اپلیکیشن]]></category>
		<category><![CDATA[ریموت]]></category>
		<category><![CDATA[پی اچ پی]]></category>

		<guid isPermaLink="false">http://aliha.ir/?p=1229</guid>
		<description><![CDATA[فرندفید هم مانند خیلی از سرویس‌های وب‌۲، مثلا توییتر، API ِ نسبتا کاملی دارد که می‌توان با به‌کارگیری آن، بسیاری از پراسه‌ها مانند ایجاد ِ انتری یا لایک زدن و&#8230;، را از راه دور انجام داد. احتمالا fftogo را دیده‌اید. این سایت با کمک ِ همان ای‌پی‌آی ِ فرندفید کار می‌کند. حالا ما هم می‌خواهیم ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://friendfeed.com/" target="_blank">فرندفید</a> هم مانند خیلی از سرویس‌های وب‌۲، مثلا <a href="http://twitter.com/" target="_blank">توییتر</a>، <a href="http://friendfeed.com/api/" target="_blank">API</a> ِ نسبتا کاملی دارد که می‌توان با به‌کارگیری آن، بسیاری از پراسه‌ها مانند ایجاد ِ انتری یا لایک زدن و&#8230;، را از راه دور انجام داد. احتمالا <a href="http://fftogo.com/" target="_blank">fftogo</a> را دیده‌اید. این سایت با کمک ِ همان <a href="http://friendfeed.com/api/" target="_blank">ای‌پی‌آی ِ فرندفید</a> کار می‌کند.</p>
<p>حالا ما هم می‌خواهیم یک اپلیکیشن ِ ساده برای ارسال ِ پست به فرندفید با <a href="http://php.net/" target="_blank">پی‌اچ‌پی</a> درست کنیم.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-1230" title="ff-app" src="http://aliha.ir/wp-content/uploads/ff-app.gif" alt="ff-app" width="500" height="325" /></p>
<h2>پیش‌نیاز</h2>
<ul>
<li>یک سرور ِ آپاچی که روی آن پی‌اچ‌پی نصب شده باشد.</li>
<li><a href="http://code.google.com/p/friendfeed-api/" target="_blank">کلاس ِ ای‌پی‌آی ِ فرندفید</a> برای پی‌اچ‌پی که خود ِ فرندفید آن را ارائه کرده است و می توانید از <a href="http://friendfeed-api.googlecode.com/files/friendfeed-api-v1.tar.gz" target="_blank">این‌جا</a> دریافت کنید (اگر نشد، از <a href="http://aliha.ir/download/api/friendfeed-api-php.zip" target="_blank">این‌جا</a> بگیرید).</li>
<li>اندکی آشنایی با پی‌اچ‌پی!</li>
</ul>
<h2>شروع</h2>
<p>یک فایل با نام index.php بسازید. و کدهای زیر را در آن قرار دهید:</p>
<pre class="brush: php;">
&lt;?php
require_once(&quot;friendfeed.php&quot;);
$uploaded = false;
$entry = null;
if ($_POST[&quot;title&quot;]) {
    $uploaded = true;
    $friendfeed = new FriendFeed($_POST[&quot;nickname&quot;], $_POST[&quot;remotekey&quot;]);
    $entry = $friendfeed-&gt;publish_link($_POST[&quot;title&quot;], $_POST[&quot;comment&quot;]);
}
?&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;/&gt;
&lt;title&gt;FriendFeed&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id=&quot;notes&quot;&gt;
&lt;?php if ($uploaded) { ?&gt;
&lt;?php if (!$entry) { ?&gt;
&lt;div class=&quot;error&quot;&gt;اوه! ما نمی‌توانیم پست ِ شما را ارسال کنیم! مطمئنید که نام‌کاربری یا کلید ریموت را درست وارد کرده‌اید؟&lt;/div&gt;
&lt;?php } else { ?&gt;
&lt;div class=&quot;success&quot;&gt;&lt;b&gt;منتشر شد!&lt;/b&gt; » &lt;a href=&quot;http://friendfeed.com/e/&lt;?= $entry-&gt;id ?&gt;&quot;&gt;پست ِ خود را در فرندفید ببینید...&lt;/a&gt;&lt;/div&gt;
&lt;?php } ?&gt;
&lt;?php } ?&gt;
&lt;/div&gt;
&lt;form action=&quot;&lt;?= $_SERVER['PHP_SELF'] ?&gt;&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot;&gt;
&lt;label class=&quot;float&quot; for=&quot;nickname&quot;&gt;نام‌کاربری یا ایمیل ِ فرندفیدی:&lt;/label&gt;
&lt;input id=&quot;nickname&quot; type=&quot;text&quot; size=&quot;15&quot; name=&quot;nickname&quot;/&gt;&lt;br /&gt;
&lt;label class=&quot;float&quot; for=&quot;remotekey&quot;&gt;کلید ریموت [&lt;a href=&quot;http://friendfeed.com/remotekey&quot; target=&quot;_blank&quot;&gt;پیدا‌کردن کلید&lt;/a&gt;]:&lt;/label&gt;
&lt;input id=&quot;remotekey&quot; type=&quot;password&quot; size=&quot;15&quot; name=&quot;remotekey&quot;/&gt;&lt;br /&gt;
&lt;label class=&quot;nofloat&quot; for=&quot;title-entry&quot;&gt;عنوان ِ پست:&lt;/label&gt;&lt;br /&gt;
&lt;input id=&quot;title-entry&quot; type=&quot;text&quot; name=&quot;title&quot;/&gt;&lt;br /&gt;
&lt;label class=&quot;nofloat&quot; for=&quot;comment&quot;&gt;دیدگاه ِ پست:&lt;/label&gt;&lt;br /&gt;
&lt;input id=&quot;comment&quot; type=&quot;text&quot; name=&quot;comment&quot;/&gt;&lt;br /&gt;
&lt;input id=&quot;submit&quot; type=&quot;submit&quot; value=&quot;انتشار در فرندفید&quot;/&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>فایل ِ friendfeed.php را هم که دریافت کردید، در همان مسیر ِ فایل ِ index.php قرار دهید.</p>
<h2>اجرا</h2>
<p>حالا index.php را اجرا کنید و نتیجه را ببینید.<br />
نام‌کاربری یا ایمیل ِ خود در فرندفید به هم‌راه <a href="http://friendfeed.com/remotekey" target="_blank">کلید ریموت</a> ِ خود را وارد کنید. عنوان ِ پست را بنویسید و در آخر می توانید یک دیدگاه نیز هم‌راه ِ پست ارسال کنید (می‌توانید آن را خالی هم بگذارید). روی انتشار در فرندفید کلیک کنید و تمام :)</p>
<p>نمونه‌ی این اپلیکیشن را <a href="http://www.aliha.ir/app/ff/" target="_blank">این‌جا</a> ببینید. می‌توانید آن را کامل و به همراه استایل دریافت کنید:</p>
<p style="text-align: center;"><a href="http://aliha.ir/download/api/ff-app.zip" target="_blank"><img class="alignnone size-full wp-image-1213 no-border" title="download-zips" src="http://aliha.ir/wp-content/uploads/download-zips.jpg" alt="download-zips" width="298" height="174" /></a></p>
<ul class="related_post">
<li><a href="http://aliha.ir/2009/08/20/a-simple-application-with-twitters-api/" title="یک اپلیکیشن ساده و کاربردی با کمک API ِ توییتر بنویسید">یک اپلیکیشن ساده و کاربردی با کمک API ِ توییتر بنویسید</a></li>
<li><a href="http://aliha.ir/2010/08/13/imified/" title="رُبات‌های تحت وب درخدمت شما هستند!">رُبات‌های تحت وب درخدمت شما هستند!</a></li>
<li><a href="http://aliha.ir/2010/12/29/hyperterminal-jquery-ajax-and-php/" title="ای‌جکس بازی » به‌یاد هایپرترمینال">ای‌جکس بازی » به‌یاد هایپرترمینال</a></li>
<li><a href="http://aliha.ir/2010/11/26/mobile-detection-with-php/" title="تشخیص پلتفرم‌های مختلف با پی اچ پی">تشخیص پلتفرم‌های مختلف با پی اچ پی</a></li>
<li><a href="http://aliha.ir/2010/10/31/video-tutorial-get-started-with-codeigniter/" title="آموزش ویدئویی » شروع کار با CodeIgniter">آموزش ویدئویی » شروع کار با CodeIgniter</a></li>
</ul>
<div style="direction: rtl;">
<a href="http://aliha.ir/2009/09/30/a-simple-friendfeed-application-with-api-and-php/#comments">6 دیدگاه</a> | 
فرستادن به: <a title="Bookmark in del.icio.us" href="http://del.icio.us/post?url=http://aliha.ir/2009/09/30/a-simple-friendfeed-application-with-api-and-php/&title=کمی API ِ فرندفید، کمی PHP، یک اپلیکیشن ِ کوچولو موچولو!">del.icio.us</a>
<hr />
<p align="center"><a href="http://www.irsaweb.com/"><img src="http://aliha.ir/images/irsaweb-small.png" alt="ایرساوب" /></a></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://aliha.ir/2009/09/30/a-simple-friendfeed-application-with-api-and-php/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>یک اپلیکیشن ساده و کاربردی با کمک API ِ توییتر بنویسید</title>
		<link>http://aliha.ir/2009/08/20/a-simple-application-with-twitters-api/</link>
		<comments>http://aliha.ir/2009/08/20/a-simple-application-with-twitters-api/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 14:30:41 +0000</pubDate>
		<dc:creator>علیها</dc:creator>
				<category><![CDATA[ای پی آی]]></category>
		<category><![CDATA[توییتر]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[cURL]]></category>
		<category><![CDATA[pear]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[services twitter]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[validate]]></category>
		<category><![CDATA[اپلیکیشن]]></category>
		<category><![CDATA[پی اچ پی]]></category>
		<category><![CDATA[گلابی]]></category>

		<guid isPermaLink="false">http://aliha.ir/?p=1205</guid>
		<description><![CDATA[با توییتر آشنا هستید. در ۱۴۰ کاراکتر، آنچه در اکنون دارد رخ می دهد را می نویسید که به اصطلاح می گوییم داریم توییت می کنیم&#8230; API هم احتمالا می دانید چیست. به زبان ساده، چیزی است که بین نرم افزارها ارتباط ایجاد می کند (Application Programming Interface). حالا بگذریم از این ها. گاهی اوقات ...]]></description>
			<content:encoded><![CDATA[<p>با <a href="http://twitter.com/" target="_blank">توییتر</a> آشنا هستید. در ۱۴۰ کاراکتر، آنچه در اکنون دارد رخ می دهد را می نویسید که به اصطلاح می گوییم داریم توییت می کنیم&#8230;</p>
<p><a href="http://fa.wikipedia.org/wiki/%D8%B1%D8%A7%D8%A8%D8%B7_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C_%D9%86%D8%B1%D9%85%E2%80%8C%D8%A7%D9%81%D8%B2%D8%A7%D8%B1" target="_blank">API</a> هم احتمالا می دانید چیست. به زبان ساده، چیزی است که بین نرم افزارها ارتباط ایجاد می کند (Application Programming Interface).</p>
<p>حالا بگذریم از این ها. گاهی اوقات ممکن است به هر دلیلی نتوانید از خود سایت توییتر، توییت بکنید. مواردی مثل فـ.یـ.لـ.تـ.ر شدن از مهم ترین آن هاست. یا حتی ممکن است کلاینت های مورد علاقه تان بعضی وقت ها کار نکنند و یا اصلن شاید دلتان می خواهد یک اپلیکیشن ِ شخصی و با سلیقه و نیاز ِ خودتان داشته باشید.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-1206" title="twitter-app" src="http://aliha.ir/wp-content/uploads/twitter-app.jpg" alt="twitter-app" width="500" height="325" /></p>
<p>خب، <a href="http://apiwiki.twitter.com/" target="_blank">API ِ توییتر</a> که حی و حاضر هست، پی اچ پی هم مثل شیر دارد نگاه مان می کند و سایت ِ <a href="http://pear.php.net/" target="_blank">گلابی</a>(!) هم یک <a href="http://pear.php.net/package/Services_Twitter" target="_blank">افزونه پی اچ پی</a> ِ کامل بر اساس API ِ توییتر، برای توییتر ارائه کرده است. می ماند مخلوط کردن ِ این ها با هم که الان قصد همین کار را داریم. چه می کند اوپن سورس :)</p>
<p>از طریق این اپلیکیشنی که می نویسیم، می توانیم با آن توییت کنیم، بدون اینکه مستقیما با سایت توییتر کاری داشته باشیم.</p>
<h2>قبل از شروع</h2>
<ul>
<li>یک. فرض ِ من بر این است که شما با پی اچ پی تا حدودی آشنا هستید.</li>
<li>دو. مهم ترین پیش نیازتان، دراختیار داشتن یک سرور آپاچی هست.</li>
<li>سه. نسخه ی پی اچ پی ِ نصب شده بر روی سرورتان باید افزونه ی cURL را پشتیبانی کند. برای چگونگی ِ فعال کردن cURL، <a href="http://www.php.net/manual/en/curl.installation.php" target="_blank">اینجا</a> بروید.</li>
<li>چهار. افزونه ی Services Twitter را هم باید نصب کرده باشید (در ادامه، توضیحات لازم در رابطه با نصب Services Twitter را خواهم داد). این افزونه را از سایت گلابی <a href="http://pear.php.net/package/Services_Twitter/download" target="_blank">دریافت کنید</a>. در این مقاله، من از نسخه ی ۰٫۲٫۱ (بتا) استفاده کرده ام.</li>
<li>پنج. گفتن ندارد این که حتما باید یک حساب هم در توییتر داشته باشید :)</li>
</ul>
<p>خب، اگر در رابطه با این ۵ مورد مشکلی ندارید، می توانیم برویم سراغ مرحله ی بعدی.</p>
<h2>نصب Services Twitter</h2>
<p><img class="size-full wp-image-1210 alignleft" title="twitter-files-and-folders-directory" src="http://aliha.ir/wp-content/uploads/twitter-files-and-folders-directory.png" alt="twitter-files-and-folders-directory" width="177" height="311" />پکیج ِ Services Twitter را که دریافت کردید، ابتدا پوشه ی Services را در مسیر اصلی اپلیکیشن کپی کنید.<br />
فایل twitter.php را به twitter-class.php تغییرنام دهید و در مسیر اصلی اپلیکیشن کپی کنید.<br />
وجود یا عدم ِ وجود ِ پوشه ی tests هم مهم نیست. در آن، نمونه های مختلف برای امکانات دیگر وجود دارد که می توانید از آن ها برای توسعه ی این اپلیکیشن استفاده کنید. یعنی چیزی بیشتر از فقط ارسال توییت!</p>
<p>به جز این ها، به پکیج <a href="http://pear.php.net/package/Validate/" target="_blank">Validate</a> هم نیاز داریم. از <a href="http://pear.php.net/package/Validate/download" target="_blank">اینجا</a> دریافت کنید. پوشه ی docs و فایل validate.php را در مسیر اصلی اپلیکیشن قرار دهید. با مابقی ِ محتویات ِ پکیج ِ Validate هم کاری نداریم.</p>
<p>در آخر باید ساختار ِ فایل ها و پوشه ها چیزی شبیه به تصویر ِ کناری شود.</p>
<p><strong>فراموش نشود:</strong> آدرس هایی که در فایل های twitter-class.php، common.php و sample_multiple.php فراخوانی شده اند، به بررسی و ویرایش نیاز دارند.</p>
<h2>طراحی محیط اپلیکیشن</h2>
<p>حالا باید در مسیر اصلی اپلیکیشن، یک فایل با نام index.php بسازید و با ادیتورتان بازش کنید و کدهای زیر را در آن قرار دهید:</p>
<pre class="brush: php;">
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;توییت توییت...&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;link rel=&quot;stylesheet&quot; href=&quot;style.css&quot; type=&quot;text/css&quot; media=&quot;all&quot; /&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id=&quot;content&quot;&gt;
&lt;h1&gt;&lt;a href=&quot;/index.php&quot;&gt;&lt;img src=&quot;logo.png&quot; border=&quot;0&quot; alt=&quot;توییت توییت...&quot; title=&quot;&quot; /&gt;&lt;/a&gt;&lt;/h1&gt;

    &lt;?php
    if (!isset($_POST['submit'])) {
    ?&gt;
&lt;form method=&quot;post&quot; action=&quot;&lt;?php echo htmlentities($_SERVER['PHP_SELF']); ?&gt;&quot;&gt;
&lt;label&gt;یوز:&lt;/label&gt; &lt;br/&gt;
&lt;input class=&quot;user&quot; type=&quot;text&quot; name=&quot;user&quot; /&gt;&lt;br/&gt;
&lt;label&gt;پسورد:&lt;/label&gt; &lt;br/&gt;
&lt;input class=&quot;pass&quot; type=&quot;password&quot; name=&quot;pass&quot; /&gt;&lt;br/&gt;
&lt;label&gt;چی کار می کنی؟&lt;/label&gt; &lt;br/&gt;
&lt;textarea class=&quot;message&quot; name=&quot;status&quot; cols=&quot;15&quot;&gt;&lt;/textarea&gt;&lt;br/&gt;
&lt;center&gt;&lt;input class=&quot;submit&quot; type=&quot;submit&quot; name=&quot;submit&quot; value=&quot;توییت&quot; /&gt;&lt;/center&gt;
&lt;/form&gt;
    &lt;?php
    } else {
      // include class
      include_once 'twitter-class.php';
      try {
        // read form input
        $user = $_POST['user'];
        $pass = $_POST['pass'];
        $status = $_POST['status'];

        // initialize service object
        $service = new Services_Twitter($user, $pass);
        // update status
        $service-&gt;statuses-&gt;update($status);
        // perform logout
        $service-&gt;account-&gt;end_session();
        echo 'توییت شد!';
      } catch (Exception $e) {
        die('اوپس: ' . $e-&gt;getMessage());
      }
    }
    ?&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;p style=&quot;direction: ltr; text-align: left;&quot;&gt;created by &lt;a href=&quot;http://aliha.ir/&quot; target=&quot;_blank&quot;&gt;Aliha&lt;/a&gt; | &lt;a href=&quot;http://twitter.com/alihaa&quot; target=&quot;_blank&quot;&gt;follow me on twitter&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>در همان مسیر اصلی، یک فایل style.css هم بسازید و دستورات سی اس اس زیر را در آن قرار دهید:</p>
<pre class="brush: css;">
body {
background: #e8fbff url(bg.jpg) no-repeat left top;
color: #666;
}
a {
color: #0CC;
}
#content {
direction: rtl;
font: 12px Tahoma;
margin: 0 auto;
width: 294px;
}
h1 {
font: bold 23px Arial;
color: #0CF;
}
form input.user, form input.pass {
width: 190px;
background-color: #fafafa;
border: 1px solid #ebebeb;
margin: 3px 0 8px 0;
font: 12px Tahoma;
color: #666;
direction: ltr;
}
form input.user:focus, form input.pass:focus {
background-color: #fcffff;
border: 1px solid #41efff;
color: #666;
}
form textarea.message {
width: 250px;
height: 100px;
background-color: #fafafa;
border: 1px solid #ebebeb;
margin: 5px 0 8px 0;
font: 12px Tahoma;
color: #666;
}
form textarea.message:focus {
background-color: #fcffff;
border: 1px solid #41efff;
color: #666;
}
form input.submit {
background-color: #07d7f6;
font: 12px Tahoma;
width: 80px;
height: 25px;
color: #fff;
cursor: pointer;
border: none;
}
form input.submit:hover {
background-color: #43e6fe;
}
form input.submit:focus {
background-color: #ff6d25;
}
label {
color: #666;
}
</pre>
<p>حالا آدرس ِ اپلیکیشن را در مرورگر وارد می کنیم تا نتیجه را ببینیم.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-1207" title="twitter-app-index" src="http://aliha.ir/wp-content/uploads/twitter-app-index.jpg" alt="twitter-app-index" width="476" height="379" /></p>
<p>نام کاربری توییتری و رمزعبور را وارد می کنیم و توییت ِ موردنظر را هم می نویسیم و روی توییت کلیک می کنیم:</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-1208" title="twitter-app-success" src="http://aliha.ir/wp-content/uploads/twitter-app-success.jpg" alt="twitter-app-success" width="482" height="260" /></p>
<p>توییت ارسال شده است! حالا می رویم ببینیم اپلیکیشن مان واقعا کار می کند و راست می گوید یا سرکار گذاشته است ما را :)</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-1209" title="twitter-twitt-scrshot" src="http://aliha.ir/wp-content/uploads/twitter-twitt-scrshot.jpg" alt="twitter-twitt-scrshot" width="612" height="276" /></p>
<p>این طور که معلوم است، مثل اینکه کار می کند. خب کارمان دیگر تمام شده است.</p>
<p>می توانید این اپلیکیشن را آماده و بی نقص دریافت کنید، یعنی مراحل ِ بالا دیگر فِرت :)<br />
نمونه ی آن را هم <a href="http://www.aliha.ir/app/twitter/" target="_blank">اینجا</a> می توانید ببینید.</p>
<p style="text-align: center;"><a href="http://aliha.ir/download/api/twitter-application.zip"><img class="no-border" title="Download" src="http://aliha.ir/wp-content/uploads/download-zips.jpg" alt="download-zips" width="298" height="174" /></a></p>
<ul class="related_post">
<li><a href="http://aliha.ir/2009/09/30/a-simple-friendfeed-application-with-api-and-php/" title="کمی API ِ فرندفید، کمی PHP، یک اپلیکیشن ِ کوچولو موچولو!">کمی API ِ فرندفید، کمی PHP، یک اپلیکیشن ِ کوچولو موچولو!</a></li>
<li><a href="http://aliha.ir/2010/08/13/imified/" title="رُبات‌های تحت وب درخدمت شما هستند!">رُبات‌های تحت وب درخدمت شما هستند!</a></li>
<li><a href="http://aliha.ir/2010/12/29/hyperterminal-jquery-ajax-and-php/" title="ای‌جکس بازی » به‌یاد هایپرترمینال">ای‌جکس بازی » به‌یاد هایپرترمینال</a></li>
<li><a href="http://aliha.ir/2010/11/26/mobile-detection-with-php/" title="تشخیص پلتفرم‌های مختلف با پی اچ پی">تشخیص پلتفرم‌های مختلف با پی اچ پی</a></li>
<li><a href="http://aliha.ir/2010/10/31/video-tutorial-get-started-with-codeigniter/" title="آموزش ویدئویی » شروع کار با CodeIgniter">آموزش ویدئویی » شروع کار با CodeIgniter</a></li>
</ul>
<div style="direction: rtl;">
<a href="http://aliha.ir/2009/08/20/a-simple-application-with-twitters-api/#comments">43 دیدگاه</a> | 
فرستادن به: <a title="Bookmark in del.icio.us" href="http://del.icio.us/post?url=http://aliha.ir/2009/08/20/a-simple-application-with-twitters-api/&title=یک اپلیکیشن ساده و کاربردی با کمک API ِ توییتر بنویسید">del.icio.us</a>
<hr />
<p align="center"><a href="http://www.irsaweb.com/"><img src="http://aliha.ir/images/irsaweb-small.png" alt="ایرساوب" /></a></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://aliha.ir/2009/08/20/a-simple-application-with-twitters-api/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>معرفی ۵ فرم تماس ِ رایگان ِ ای جکس</title>
		<link>http://aliha.ir/2009/05/30/5-free-ajax-contact-form/</link>
		<comments>http://aliha.ir/2009/05/30/5-free-ajax-contact-form/#comments</comments>
		<pubDate>Sat, 30 May 2009 14:45:29 +0000</pubDate>
		<dc:creator>علیها</dc:creator>
				<category><![CDATA[ای جکس]]></category>
		<category><![CDATA[جی کوئری]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[captcha-like]]></category>
		<category><![CDATA[contact]]></category>
		<category><![CDATA[contact form]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[lightform]]></category>
		<category><![CDATA[niceform]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpmailer]]></category>
		<category><![CDATA[wforms]]></category>
		<category><![CDATA[xajax]]></category>
		<category><![CDATA[فرم تماس]]></category>
		<category><![CDATA[پی اچ پی]]></category>

		<guid isPermaLink="false">http://aliha.ir/?p=1100</guid>
		<description><![CDATA[اگر صاحب یک وبلاگ یا وبسایت باشید، مسلما یکی از نیازهای اساسی تان داشتن ِ یک فرم تماس ِ ایده آل است که کارایی لازم را دارا باشد. فرم های تماس می توانند خیلی ساده و ابتدایی و یا خیلی حرفه ای و دارای امکانات باشند که بسته به نیاز خود، از آن ها استفاده ...]]></description>
			<content:encoded><![CDATA[<p>اگر صاحب یک وبلاگ یا وبسایت باشید، مسلما یکی از نیازهای اساسی تان داشتن ِ یک فرم تماس ِ ایده آل است که کارایی لازم را دارا باشد.<br />
فرم های تماس می توانند خیلی ساده و ابتدایی و یا خیلی حرفه ای و دارای امکانات باشند که بسته به نیاز خود، از آن ها استفاده می کنیم.</p>
<p>در این پست به معرفی ۵ فرم تماس رایگان برای استفاده در سایت ها و وبلاگ ها می پردازم که همگی به صورت <a href="http://aliha.ir/category/%d8%a7%db%8c%d8%ac%da%a9%d8%b3/" target="_blank">ای جکس</a> و حرفه ای می باشند.</p>
<h2>۱- <a href="http://enhance.qd-creative.co.uk/2008/06/20/ajax-contact-form/" target="_blank">فرم تماس با استفاده از پی اچ پی و جی کوئری</a> &#8211; <a href="http://enhance.qd-creative.co.uk/examples/ajax-contact-form.html" target="_blank">نمایش نمونه</a></h2>
<p style="text-align: center;"><a href="http://enhance.qd-creative.co.uk/2008/06/20/ajax-contact-form/" target="_blank"><img class="alignnone size-full wp-image-1101" title="contact-form-with-php-ajax" src="http://aliha.ir/wp-content/uploads/contact-form-with-php-ajax.jpg" alt="contact-form-with-php-ajax" width="350" height="82" /></a></p>
<p>یک فرم تماس متناسب که با استفاده از PHP و JQuery نوشته شده است. هنگام ارسال، فیلدها را چک می کند و در صورت وجود مشکل، پیغام خطای مربوط به آن را نمایش می دهد.</p>
<h2>۲- <a href="http://www.finalwebsites.com/tutorials/php_ajax_contact_form.php" target="_blank">فرم تماس با استفاده از xAjax و PHPMailer</a> &#8211; <a href="http://www.finalwebsites.com/demos/xajax_contact_form_using_phpmailer.php" target="_blank">نمایش نمونه</a></h2>
<p style="text-align: center;"><a href="http://www.finalwebsites.com/tutorials/php_ajax_contact_form.php" target="_blank"><img class="alignnone size-full wp-image-1103" title="contact-form-with-phpmailer-xajax" src="http://aliha.ir/wp-content/uploads/contact-form-with-phpmailer-xajax.jpg" alt="contact-form-with-phpmailer-xajax" width="350" height="89" /></a></p>
<p>فرم تماسی خوب و امن. برای چک کردن فیلدها و نمایش پیغام خطا از جاوا اسکریپت استفاده می کند.<br />
از توابع <a href="http://www.xajaxproject.org/" target="_blank">xAjax</a> در آن استفاده شده و برای ارسال ایمیل از <a href="http://sourceforge.net/projects/phpmailer/" target="_blank">PHPMailer</a> ِ معروف بهره گرفته است.</p>
<h2>۳- <a href="http://midmodesign.com/news/coding/jquery-ajax-contact-form-with-honeypot/" target="_blank">فرم تماس جی کوئری</a> &#8211; <a href="http://midmodesign.com/downloads/ajaxcontactformv1/" target="_blank">نمایش نمونه</a></h2>
<p style="text-align: center;"><a href="http://midmodesign.com/news/coding/jquery-ajax-contact-form-with-honeypot/" target="_blank"><img class="alignnone size-full wp-image-1104" title="contact-form-jquery" src="http://aliha.ir/wp-content/uploads/contact-form-jquery.jpg" alt="contact-form-jquery" width="350" height="87" /></a></p>
<p>این فرم تماس به طور کامل از جی کوئری استفاده می کند و برای چک کردن فیلدها هم از <a href="http://www.malsup.com/jquery/form/" target="_blank">Jquery form plugin</a> استفاده می کند.</p>
<h2>۴- <a href="http://alexsancho.name/archives/2005/11/formulario-de-contacto-20/" target="_blank">فرم تماس مدرن</a> &#8211; <a href="http://alexsancho.name/archives/examples/ajax/forms/contact/" target="_blank">نمایش نمونه</a></h2>
<p style="text-align: center;"><a href="http://alexsancho.name/archives/2005/11/formulario-de-contacto-20/" target="_blank"><img class="alignnone size-full wp-image-1105" title="contact-form-chic" src="http://aliha.ir/wp-content/uploads/contact-form-chic.jpg" alt="contact-form-chic" width="350" height="105" /></a></p>
<p>در این فرم تماس از <a href="http://script.aculo.us/" target="_blank">script.aculo.us</a> و <a href="http://www.formassembly.com/wForms/" target="_blank">WForms</a> استفاده شده است.<br />
یکی از ویژگی های منحصر به فرد آن این است که ابتدا به سروری که بر روی آن نصب شده است، متصل می شود و پس از بررسی ِ صحت اطلاعات تماس، اجازه ی ارسال ایمیل را می دهد.<br />
همچنین می توان برای تعداد کاراکترهای به کار رفته در متن تماس، محدودیت ایجاد کرد و تعداد کاراکترها را هم نمایش می دهد.</p>
<h2>۵- <a href="http://web-kreation.com/index.php/articles/lightform-free-ajaxphp-contact-form/" target="_blank">فرم تماس LightForm</a> &#8211; <a href="http://web-kreation.com/demos/LightForm/" target="_blank">نمایش نمونه</a></h2>
<p style="text-align: center;"><a href="http://web-kreation.com/index.php/articles/lightform-free-ajaxphp-contact-form/" target="_blank"><img class="alignnone size-full wp-image-1106" title="contact-form-lightform" src="http://aliha.ir/wp-content/uploads/contact-form-lightform.jpg" alt="contact-form-lightform" width="350" height="105" /></a></p>
<p>لایتفرم، یک فرم تماس جذاب است. از <a href="http://moo.floor.ch/?p=18" target="_blank">FormCheck2</a> برای چک کردن صحت فیلدها و از <a href="http://www.badboy.ro/articles/2005-07-23/niceforms_preview/" target="_blank">NiceForms</a> برای استایل دهی به اجزای فرم استفاده کرده است.<br />
یک captcha-like هم دارد برای جلوگیری از اسپم شدن که حاصل جمع ۲ عدد را از کاربر می پرسد. سیستم ارسال ایمیل آن با پی اچ پی نوشته شده است و همچنین آی پی، یوزر ایجنت و صفحه ی ارجاع دهنده ی کاربر را به همراه ایمیل می فرستد.
<ul class="related_post">
<li><a href="http://aliha.ir/2010/12/29/hyperterminal-jquery-ajax-and-php/" title="ای‌جکس بازی » به‌یاد هایپرترمینال">ای‌جکس بازی » به‌یاد هایپرترمینال</a></li>
<li><a href="http://aliha.ir/2010/04/15/ajax-record-delete-from-database-with-jquery/" title="ای‌جکس‌بازی » حذف رکورد از بانک‌اطلاعاتی با جی‌کوئری">ای‌جکس‌بازی » حذف رکورد از بانک‌اطلاعاتی با جی‌کوئری</a></li>
<li><a href="http://aliha.ir/2010/10/04/ajax-loading-content-with-jquery/" title="ای‌جکس‌بازی » بارگذاری محتوای صفحات با جی‌کوئری">ای‌جکس‌بازی » بارگذاری محتوای صفحات با جی‌کوئری</a></li>
<li><a href="http://aliha.ir/2009/01/30/how-to-use-lightbox-jquery-plugin/" title="پلاگین Lightbox ِ جی کوئری برای افکت دادن به نمایش تصاویر">پلاگین Lightbox ِ جی کوئری برای افکت دادن به نمایش تصاویر</a></li>
<li><a href="http://aliha.ir/2010/11/26/mobile-detection-with-php/" title="تشخیص پلتفرم‌های مختلف با پی اچ پی">تشخیص پلتفرم‌های مختلف با پی اچ پی</a></li>
</ul>
<div style="direction: rtl;">
<a href="http://aliha.ir/2009/05/30/5-free-ajax-contact-form/#comments">16 دیدگاه</a> | 
فرستادن به: <a title="Bookmark in del.icio.us" href="http://del.icio.us/post?url=http://aliha.ir/2009/05/30/5-free-ajax-contact-form/&title=معرفی ۵ فرم تماس ِ رایگان ِ ای جکس">del.icio.us</a>
<hr />
<p align="center"><a href="http://www.irsaweb.com/"><img src="http://aliha.ir/images/irsaweb-small.png" alt="ایرساوب" /></a></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://aliha.ir/2009/05/30/5-free-ajax-contact-form/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
	</channel>
</rss>

