ahmadflasher
New Member
با سلام خدمت شما دوستان عزیز در این تاپیک قصد دارم سورسی رو براتون بذارم که خیلی جالبه.
اسم این برنامه رو میشه یه جورایی تریبون آزاد گذاشت .و در واقع شما می تونید اونو در گوشه سایت خود بذارید.
و افراد بیان تو سایتتون و نظر یا هر چیز نوشتنی رو بنویسند و همه افرار می توننن او نو ببینن.
تمامی توضیحات لازم رو در سورس آوردم.شما دوستان می تونید اونو طبق سلیقه خودتون توسعه هم بدید. مثلاً میتونید شکلکهای یاهو رو هم به اون اضافه کنید و....
خوب اول از همه باید دیتا بیس(جدول) مونو طراحی کنیم.من به طور آزمایشی یک رکورد رو تو اون ذخیره کردم .به صورت زیر:
نوبت به نوشتن کد اصلی میرسه . اول ازهمه باید یک فرم با اچ تی ام ال طراحی کنیم و بعد پویا سازی را با پی اچ پی کامل کنیم. به صورت زیرتمامی توضیحات لازم در متن سورس به صورت کاملا واضح داده شده است) سپس فایل را با یک نام ذخیره و اجرا نمایید
اسم این برنامه رو میشه یه جورایی تریبون آزاد گذاشت .و در واقع شما می تونید اونو در گوشه سایت خود بذارید.
و افراد بیان تو سایتتون و نظر یا هر چیز نوشتنی رو بنویسند و همه افرار می توننن او نو ببینن.
تمامی توضیحات لازم رو در سورس آوردم.شما دوستان می تونید اونو طبق سلیقه خودتون توسعه هم بدید. مثلاً میتونید شکلکهای یاهو رو هم به اون اضافه کنید و....
خوب اول از همه باید دیتا بیس(جدول) مونو طراحی کنیم.من به طور آزمایشی یک رکورد رو تو اون ذخیره کردم .به صورت زیر:
کد:
CREATE TABLE `free_talking` (
`name` varchar(25) NOT NULL,
`email` varchar(50) NOT NULL,
`comment` varchar(250) NOT NULL,
`DATE` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `free_talking` (`name`, `email`, `comment`, `DATE`) VALUES
('ahmadflasher', '[email protected]', 'salam dostan aziz. in yek azmayesh mibash.\r\nBa tashakor', '2007-11-25');
کد:
<?php
##############################################################
// Copy Right Free_talking By Ahmad Najafpour 2007 All reserved
// This is persent to you (Users=my freinds) in majidonline.com
// My temporary website's:www.devilboys.ir , www.ahmaflasher.tk
// See my Flash clips www.devilboys.ir/www/clip.php
// Contact me by: [email protected]
// Using this source And enjoy it
##############################################################
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>تریبون آزاد</title>
<style type="text/css">
<!--
body,td,th {
font-family: tahoma;
font-size: 11px;
}
body {
background-color: #B5C3DE;
}
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
a:active {
text-decoration: none;
}
-->
</style>
<!--------------------------------------جاوا اسکریپت ------------------------------>
<!----------تابع برای نمایش تعداد کاراکتر باقی مانده برای تایپ پیغام ---------------->
<SCRIPT language=JavaScript>
function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit)
field.value = field.value.substring(0, maxlimit);
else
countfield.value = maxlimit - field.value.length;
}
</SCRIPT>
<!------------------------------ پایان جاوا اسکریپت ------------------->
</head>
<body>
<p>
<!------------------------------فرم اچ تی ام ال------------------->
</p>
<table width="208" height="200" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#FF0000">
<tr>
<td width="204" height="167" align="center" valign="middle" bgcolor="#CECFFF">
<form action="<?php $PHP_SELF ?>" method="post" name="free_talk" id="free_talk">
<table width="204" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000">
<tr>
<td width="200" bgcolor="#CCCCFF"><div align="center">
<label>:نام<br>
<input name="name" type="text" id="name">
</label>
</div></td>
</tr>
<tr>
<td bgcolor="#CECFFF"><div align="center">
<label>:ایمیل <br>
<input name="mail" type="text" id="mail">
</label>
</div></td>
</tr>
<tr>
<td bgcolor="#CECFFF"><div align="center">
<div align="center">:پیغام<br>
<textarea name="comment" id="comment" onkeydown=textCounter(this.form.comment,this.form.descriptionleft,250); onkeyup=textCounter(this.form.comment,this.form.descriptionleft,250);></textarea>
<table width="200" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div align="center">
<INPUT style='BORDER-RIGHT: 0px; background-color:#CC99FF BORDER-TOP:0px;BORDER-LEFT:0px; BORDER-BOTTOM:0px; FONT-SIZE: 10px; COLOR: #000; FONT-FAMILY:tahoma' maxLength=3 name=descriptionleft readOnly size=3 tabIndex=250 value=250>
<font face=tahoma style='font-size:9pt'>:</font><font face=tahoma style='font-size:9pt'>کاراکتر باقی مانده</font></div></td>
</tr>
</table>
<label>
<input type="reset" name="Submit2" value="پاکن" style="font-family:tahoma; font-size:12px">
</label>
<input type="submit" style="font-family:tahoma; font-size:12px" name="Submit" value=" ارسال">
</div>
</div></td>
</tr>
</table>
</form></td>
</tr>
<tr>
<td bgcolor="#CECFFF">
<div align="right">
<!-- ####################################### END OF HTML ###################################### -->
<?php
############################################### START PHP SCRIPT #################################
//--------------------------------------- اتصال به بانک اطلاعاتی ------------------------------
$db=mysql_connect("localhost","root") or die("مشکل در اتصال به بانک اطلاعاتی");
mysql_select_db("yor data base name") or die("مشکل در اتصال به بانک اطلاعاتی");
//--------------------------------------------------------------------------------------------
//=============================== اگر دکمه ارسال کلیک شد عملیات زیر انجام شود ==================
if(isset($_POST['Submit'])){
$name=$_POST['name'];
$mail=$_POST['mail'];
$comment=htmlspecialchars($_POST['comment']);
//================================ نمایش پیغام خطا در صورت خالی بون فیلد ها ====================
if(empty($name)){
print("لطفا نام خود را بنویسید");
exit();
}
if(empty($comment)){
print("لطفا پیغام خود را بنویسید");
exit();
}
// تاریخ کنونی
$date=date("Y-m-d");
//================================== فیلترینگ کلمات زشت و ناپسند ====================
//-- باید دقت کنید که خط تیره بین کلمات را حذف نکنید . کلمات زشت میتوانند بیش از سه کلمه باشند شما به جای آنها کلمات زشت و یا هر چیزی را که می خواهید فیلتر شود را بنویسید.دقت شود دقیقا همین کلماتی که در متغیر نوشته شده اند فیلتر خواهند شد. حتی فاصله ها هم سنحیده می شود پس شما از هر باید با کلمات بازی کنید. مثلا کلمه "PHP" میتوا ند نوشته شود "P H P" در این صورت خطایابی مشکل می شود.
//---در اینجا به جای کلمه زشت ستاره ذخیره میشود. شما میتوانید به جای این کار یک پیغام خطا به کاربر بدهید مثلاً اینکه نوشتن کلمات زشت بپرهیزید!!!!!
//-------------------------------------------------------------------------------
$badwords="کلمه زشت1-کلمه زشت دو-کلمه زشت سه";
$bws=explode("-",$badwords);
$end=count($bws);
for($x=0; $x<=$end; $x++){
$comment=str_replace($bws[$x],"***",$comment);
}
//====================================== ثبت اطلاعات به بانک اطلاعاتی=========================
if(!mysql_query("INSERT INTO free_talking (name,email,comment,DATE) VALUES ('$name','$mail','$comment','$date')")){
echo("متاسفانه مطلب شما ذخیره نشد . لطفا دوباره تلاش کنید");
}
else{
echo "<SCRIPT>alert('پیغام شما با موفقیت ثبت شد $name')</SCRIPT>";
}
//==========================================================================================
}
//################################### نمایش پیغامها ############################
//-----------------------------------بازیابی لجدو و رکوردها به --------------------------
// در اینجا ما یاداشت ها بر اساس آخرین تاریخ می بینیم . شما می توانید با اندکی دستکاری آن را به صورت آخرین زمان ببیند . البته برای این کار بابد یک فیلد برای نگهداری زمان ایجاد نمایید.یا می توانید بانک اطلاعاتی خود را به صورت نزولی مرتب نمایید که من این کارو پیشنهاد می کنم.
//----------------------------------------------------------------------------------------
$query="select * from free_talking order by DATE desc";
$result=mysql_query($query);
// تعداد پیغامهای ارسالی بازیابی تعداد سطر های جدول
$row=mysql_num_rows($result);
if($row<=0){
echo "هیچ پیعامی تا به حال نوشته نشده است";
}
else{
print ("<center><font color=red>$row :تعداد کل یاداشتها </font><br><hr color='#000000'></center>");
//--------------------------- نمایش پیغام ها به صورت اسکرول ----------------------
// روشهای مختلف برای نمایش یادداشت ها وجود دارد که من روش اسکرول را انتخاب کردم. شما می توانید یه صفحه جدا بسازید و محتویات برنامه ی( نمایش پیغامها) در آن کپی کرده و ذخیره نمایید و در صفحه اصلی آن را به صورت iframe لود نمایید.
//--------------------------------------------------------------------------------
echo "<marquee align='top' scrolldelay='200' direction='up' height='100' width='200'
onMouseOver='this.stop()' onMouseOut='this.start()' >";
//-------------------------------------------------------------------------------
// حقله ای برای خواندن فیلدهای تمامی رکوردها . این حلقه به اندازه تعداد تمامی ارسالی ها که قبلا بازیابی کردیم تکرار می شود. این در ادامه یعنی اگر تعداد رکورها زیاد شوند شاید باعث کندی روند سرعت سایت شما شود . پس شما می توانید به جای $row در شرط حلقه یک عدد بگذارید .که این عدد در واقع نمایش تعداد رکوردها از آخر.مثلا 20 ؛ 20 ارسال آخر را نمایش می دهد!!!!
//-------------------------------------------------------------------------------
for($i=1; $i<=$row; $i++){
// بازیابی فیلدها و قرار دادن در متغیرها
$show=mysql_fetch_object($result);
$sname=$show->name;
$smail=$show->email;
$message=$show->comment;
$sdate=$show->DATE;
///------------------------------- نمایش پایانی --------------------------
echo "<rtl><br><a href='mailto:$smail' title=':ارسال ایمیل به \n $sname'>$sname</a><b>:نام</b>";
echo "<br><b>پیغام:</b><br>$message";
echo "<font color='#990000'><br><br>$sdate :تاریخ نگارش</font>";
echo "<hr></hr>";
//------------------------------------- پایان حلقه ------------------------
//====================================== پایان نمایش =======================
}
echo "</marquee>";
}
// پایان کد نویسی یکشنبه 5 آذر 1386 ساعت 02:00 بامداد - مازندران - شهرستان نکا
##################################### END OF PHP #########################################
?>
</div></td>
</tr>
</table>
<p align="center">Design by<a href="mailto:[email protected]"> Ahmad Najafpour</a></p>
</body>
</html>
یا حق
آخرین ویرایش: