آموزش ساخت یک سی ام اس (سیستم خبری) ساده

amir01

Well-Known Member
با سلام.
با توجه به اینکه تو این چند وقت متوجه شدم خیلی ها دوست دارن که یک سیستم خبری داشته باشن، یا خودشون بنویسن، یا دوست دارن نوشتن یک سی ام اس رو یاد بگیرن، این آموزش رو که آموزش نوشتن یه سیستم خبری خیلی خیلی ساده با امکانات زیر رو آماده کردم که در اختیار دوستان بذارم. به امید اینکه نهایت استفاده رو ببرید.
امکانات :
مدیریت اخبار
ثبت خبر جدید
ویرایش خبرهای موجود
حذف خبرها
شمارنده بازدیدها برای هر خبر
لینک مستقیم برای خبرها

بسم الله الرحمن الرحیم...
خب شروع میکنیم.
1- اول که یک دیتابیس درست میکنیم و یک جدول که ساختارش به صورت زیر هست:
کد:
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT ,
`title` TEXT NOT NULL ,
`content` TEXT NOT NULL ,
`date` VARCHAR( 20 ) NOT NULL ,
`visits` INT NOT NULL ,
PRIMARY KEY ( `id` )
) TYPE = MYISAM;

2- حالا یک فایل به اسم config.php ایجاد میکنیم و اطلاعات دیتابیس رو تو می نویسیم به این صورت:
admin/config.php
کد:
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'news';

$link = mysql_connect ($dbhost, $dbuser, $dbpass);
mysql_select_db ($dbname, $link);
?>

3- حالا یه صفحه برای لوگین مدیریت میسازیم. من ساده ترینش رو نوشتم. شما میتونید بعدا برای افزایش امنیت این کد رو به اون صورتی که دوست دارید تغییر بدید. در ضمن بگم که فایهای مدیریت در پوشه ای به اسم admin باید قرار بگیرن.
admin/index.php
کد:
<?php 
session_start();
if ( isset($_POST['userName']) && isset($_POST['passWord']) )
{
	if ( ($_POST['userName'] == "test") && ($_POST['passWord'] == "test") )
	{
		$_SESSION['userName'] = $_POST['userName'];
		header ("Location: addNews.php");
	}
}
?>
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta name="Author" content="Amir Jafari <[email protected]>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="style.css" rel="stylesheet">
<title> News Management : Admin Login </title>
</head>
<body>
<form action="" method="POST">
<div align="center">
	<table border="0" width="300" cellpadding="0" dir="rtl" class="newsbody">
		<tr>
			<td align="right" id="newstitle" colspan="2"><b>» ورود به بخش مدیریت</b></td>
		</tr>
		<tr>
			<td>
			<table border="0" dir="rtl" cellpadding="0" id="main" width="100%">
				<tr>
					<td align="left" dir="rtl">نام کاربری:</td>
					<td align="right" dir="rtl"><input type="text" name="userName" size="20" class="box"></td>
				</tr>
				<tr>
					<td align="left" dir="rtl">رمزعبور:</td>
					<td align="right" dir="rtl"><input type="password" name="passWord" size="20" class="box"></td>
				</tr>
				<tr>
					<td align="left" dir="rtl"></td>
					<td align="right" dir="rtl"><input type="submit" value=" ورود " name="submit" class="btn"></td>
				</tr>
			</table>
			</td>
		</tr>
		<tr>
			<td id="footer">Programming by <a href="mailto:[email protected]">Amir Jafari</a>.</td>
		</tr>
	</table>
</div>
</form>
</body>
</html>

توضیحات : همونطور که میبیند در ابتدای صفحه کدی نوشتیم مبنی بر اینکه اگر فرم ورود به مدیریت ارسال شده بود، سرور برامون یک جلسه ایجاد کنه.

4- حالا صفحه افزودن/ ویرایش خبرها رو درست میکنیم.
admin/addNews.php
کد:
<?php
session_start();
if ( isset($_SESSION['userName']) ) {
if ( (isset($_GET['act'])) && ($_GET['act'] == "logOut") )
{
	unset ($_SESSION['userName']);
	header ("Location: index.php");
}
?>
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta name="Author" content="Amir Jafari <[email protected]>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="style.css" rel="stylesheet">
<title> News Management : Add News </title>
</head>
<body>
<?php
if ( isset($_POST['Act']) && ($_POST['Act'] == "AddNews") )
{
	include "config.php";
	$AddNews = mysql_query ("INSERT INTO `news` VALUES ('', '".$_POST['newsTitle']."', '".$_POST['newsContent']."', '".mktime()."', '0')");
	if ( $AddNews )
	{
		$Prompt = '<font color="green"><b>خبر جدید با موفقیت ثبت شد.</b></font>';
	}
	else
	{
		$Prompt = '<font color="red"><b>متاسفانه مشکلی در ثبت خبر جدید وجود دارد.</b></font>';
	}
}
elseif ( isset($_POST['Act']) && ($_POST['Act'] == "EditNews") )
{
	include "config.php";
	$EditNews = mysql_query ("UPDATE `news` SET `title` = '".$_POST['newsTitle']."', `content` = '".$_POST['newsContent']."' WHERE `id` = '".$_POST['id']."' LIMIT 1");
	if ( $EditNews )
	{
		$Prompt = '<font color="green"><b>تغییرات با موفقیت اعمال شدند.</b></font>';
	}
	else
	{
		$Prompt = '<font color="red"><b>متاسفانه مشکلی در ثبت تغییرات وجود دارد.</b></font>';
	}
}
else
{
	$Prompt = false;
}
if ( isset($_GET['edtID']) && ($_GET['edtID'] !== "") )
{
	include "config.php";
	$Query = mysql_query("SELECT * FROM `news` WHERE `id` = '".intval($_GET['edtID'])."' LIMIT 1");
	$row_rsEdit = mysql_fetch_array($Query);
}
?>
<div align="center">
	<table border="0" width="600" id="main" cellpadding="0">
		<tr>
			<td id="nav">
			<ul id="navlist">
				<li><a href="addNews.php">افزودن خبر</a></li>
				<li><a href="mgrNews.php">آرشیو خبرها</a></li>
				<li><a href="?act=logOut">خروج</a></li>
			</ul>
			</td>
		</tr>
		<tr>
			<td id="main">
			<form action="" method="POST">
			<input type="hidden" name="Act" value="<?php echo (isset($row_rsEdit)) ? "EditNews" : "AddNews"; ?>">
			<?php echo (isset($row_rsEdit)) ? '<input type="hidden" name="id" value="'.$row_rsEdit['id'].'">' : ''; ?>
			<div align="center">
			<table border="0" width="460" dir="rtl" cellpadding="0">
				<tr>
					<td align="center" colspan="2"><?php echo $Prompt; ?></td>
				</tr>
				<tr>
					<td align="left" width="83" height="24">عنوان خبر :</td>
					<td align="right" height="24"><input type="text" name="newsTitle" value="<?php echo $row_rsEdit['title']; ?>" size="30" class="box"></td>
				</tr>
				<tr>
					<td align="left" width="83" valign="top">متن خبر :</td>
					<td><textarea rows="12" name="newsContent" cols="70"><?php echo $row_rsEdit['content']; ?></textarea></td>
				</tr>
				<tr>
					<td width="83">&nbsp;</td>
					<td align="left"><input type="submit" value="ثبت خبر" name="submit" class="btn"></td>
				</tr>
			</table>
			</div>
			</form>
			</td>
		</tr>
		<tr>
			<td id="footer">Programming by <a href="mailto:[email protected]">Amir Jafari</a>.</td>
		</tr>
	</table>
</div>
</body>
</html>
<?php } else { header ("Location: index.php"); } ?>

توضیحات : خب اول این صفحه گفتیم که چک کنه اگه جلسه ی مدیریت وجود داشت، صفحه افزودن خبر رو نشون بده و در خط آخر هم یه else گذاشتیم یعنی اگه جلسه ای پیدا نکرد کاربر رو به صفحه index.php (همون صفحه لوگین) هدایت کنه.
بعدش که یه سری کد اچ تی ام ال برای عنوان صفحه و سی اس اس و اینا هستش که کاری باهاش نداریم. بعدش از یه ساختار شرطی استفاده کردیم که چک میکنه می بینه اگه متغیر Act که از طریق متد POST ارسال شده ارزش AddNews رو داشت، خبر رو تو دیتابیس ذخیره کنه و اگه ارزش EditNews رو داشت، اطلاعات جدیدی که توسط مدیر برای ویرایش خبر داده شده رو تو دیتابیس جایگزین کنه.
این دو مرحله هم به این صورته که یه کوئری برای افزودن خبر :
کد:
mysql_query ("INSERT INTO `news` VALUES ('', '".$_POST['newsTitle']."', '".$_POST['newsContent']."', '".mktime()."', '0')");
و اون یکی برای بروز کردن دیتابیس :
کد:
mysql_query ("UPDATE `news` SET `title` = '".$_POST['newsTitle']."', `content` = '".$_POST['newsContent']."' WHERE `id` = '".$_POST['id']."' LIMIT 1");
البته شما میتونید این دوتا صفحه رو جدا کنید مثلا یه صفحه به اسم editNews.php درست کنید که کارش فقط ویرایش مطلب باشه. این کار سلیقه ایه.
بعد از این کوئری ها هم که دوباره یه دستور شرطی برای خبر دادن به کاربر گذاشتیم که فکر کنم نیازی به توضیحات نداشته باشه.

5- صفحه مدیریت خبرها
admin/mgrNews.php
کد:
<?php
session_start();
if ( isset($_SESSION['userName']) ) {
if ( (isset($_GET['act'])) && ($_GET['act'] == "logOut") )
{
	unset ($_SESSION['userName']);
	header ("Location: index.php");
}
?>
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta name="Author" content="Amir Jafari <[email protected]>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="style.css" rel="stylesheet">
<title> News Management : News Archives </title>
</head>
<body>
<?php
include "config.php";
if ( isset($_GET['delID']) && !empty($_GET['delID']) )
{
	$DelNews = mysql_query ("DELETE FROM `news` WHERE `id` = '".intval($_GET['delID'])."' LIMIT 1");
	if ( $DelNews )
	{
		$Prompt = '<font color="green"><b>خبر انتخابی با موفقیت حذف شد.</b></font>';
	}
	else
	{
		$Prompt = '<font color="red"><b>متاسفانه مشکلی در حذف خبر وجود دارد.</b></font>';
	}
}
else
{
	$Prompt = false;
}
?>
<div align="center">
	<table border="0" width="600" id="main" cellpadding="0">
		<tr>
			<td id="nav">
			<ul id="navlist">
				<li><a href="addNews.php">افزودن خبر</a></li>
				<li><a href="mgrNews.php">آرشیو خبرها</a></li>
				<li><a href="?act=logOut">خروج</a></li>
			</ul>
			</td>
		</tr>
		<tr>
			<td id="main">
			<form action="" method="POST">
			<input type="hidden" name="Act" value="AddNews">
			<div align="center">
			<table border="0" width="460" dir="rtl" cellpadding="0" id="main" style="margin-top: 10px;">
				<tr>
					<td align="center" colspan="4"><?php echo $Prompt; ?></td>
				</tr>
				<tr>
					<td id="listHeader">عنوان</td>
					<td id="listHeader">تاریخ</td>
					<td id="listHeader">ویرایش</td>
					<td id="listHeader">حذف</td>
				</tr>
				<?php
				$Query = mysql_query ("SELECT * FROM `news` ORDER BY `id` DESC");
				while ( $row_rsNews = mysql_fetch_array($Query) ) { ?>
				<tr id="listItem">
					<td align="right"><?php echo $row_rsNews['title']; ?></td>
					<td align="center"><?php echo date("Y/n/d", $row_rsNews['date']) ?></td>
					<td align="center"><a href="addNews.php?edtID=<?php echo $row_rsNews['id']; ?>">[Edit]</a></td>
					<td align="center"><a href="?delID=<?php echo $row_rsNews['id']; ?>">[x]</a></td>
				</tr>
				<?php } ?>
			</table>
			</div>
			</form>
			</td>
		</tr>
		<tr>
			<td id="footer">Programming by <a href="mailto:[email protected]">Amir Jafari</a>.</td>
		</tr>
	</table>
</div>
</body>
</html>
<?php } else { header ("Location: index.php"); } ?>

توضیحات : توی این صفحه قراره که ما لیست خبرهایی که تا حالا تو دیتابیس ذخیره شده رو به مدیر نشون بدیم. و این کار رو توسط دستور SELECT انجام میدیم. قسمت اول صفحه رو که عین همون صفحه افزودن خبر هست رو دیگه توضیح نمیدم. پایین ترش گفتیم که با یه if چک کنه که اگه متغیر delID از طریق متد GET به صفحه ارسال شده بود، خبری که مشخصه id اون همون عددی هستش که از متغیر delID رو از دیتابیس حذف کنه.
بعدش هم گفتیم که با دستور SELECT همه اطلاعات ذخیره شده تو دیتابیس رو بیرون بکشه و توسط یه حله while اونا رو تو یه جدول نشون بده.

6- خب تا اینجا بخش مدیریت سیستم تموم شد و حالا تنها چیزی که نیاز داریم، صفحه ای برای نمایش خبرهاست که به صورت زیر مینویسیمش:
index.php
کد:
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta name="Author" content="Amir Jafari <[email protected]>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="admin/style.css" rel="stylesheet">
<title> Index of News! </title>
</head>
<body>
<?php
include "admin/config.php";
if ( isset($_GET['newsID']) )
{
	$SQL = "SELECT * FROM `news` WHERE `id` = '".intval($_GET['newsID'])."' LIMIT 1";
	mysql_query ("UPDATE `news` SET visits=visits+1 WHERE `id` = '".intval($_GET['newsID'])."' LIMIT 1");
}
else
{
	$SQL = "SELECT * FROM `news` ORDER BY `id` DESC";
}
$Query = mysql_query ($SQL);
while ( $row_rsNews = mysql_fetch_array($Query) ) {
?>
<div align="center">
	<table border="0" width="500" cellpadding="0" dir="rtl" class="newsbody">
		<tr>
			<td align="right" id="newstitle"><b><a href="index.php?newsID=<?php echo $row_rsNews['id']; ?>" title="لینک مستقیم">[+]</a> <?php echo $row_rsNews['title']; ?></b></td>
		</tr>
		<tr>
			<td align="right" dir="rtl"><?php echo nl2br($row_rsNews['content']); ?></td>
		</tr>
		<tr>
			<td align="left"><?php echo date("Y/n/d", $row_rsNews['date']) ?> | بازدیدها: <?php echo $row_rsNews['visits']; ?></td>
		</tr>
	</table>
</div>
<?php } ?>
</body>
</html>

توضیحات : همونطور که مشاهده میکنید این صفحه هم مثل همون صفحه mgrNews.php که لیست خبرها رو نشون میداد هستش فقط قالب نمایشش رو تغییر دادیم.
پایان...

دیدید؟ اصلا کار عجیب و غریبی نیست نوشتن یه سی ام اس الکی می ترسن. فقط یکم حوصله میخواد. (البته این نظر منه!)
هر از چندگاهی آموزش اضافه کردن امکانات دیگه به این سیستم رو اینجا میذارم. سر بزنید.
اینجا هم میتونید یه دمو ازش ببینید : http://aloche.ir/pro/NewsCMS
راستی وایسید... یوزرنیم و پسورد ادمین هم test هست که میتونید عوض کنید. البته باید بلد باشید که گند نزنید(!)
اگه سوالی از قسمتی دارید حتما بپرسید... :cool:

کل سیستم رو هم پیوست کردم برای کسایی که کپی پیست بلد نیستن(!) :دی یا یکم .... شون میاد که کپی پست کنن. (;
خب امیدوارم که استفاده برده باشید.
همیشه خوب باشید.
یاحق...
 

پیوست ها

  • NewsCMS.zip
    5.3 کیلوبایت · بازدیدها: 895
آخرین ویرایش:

Grafix

Member
بسیار جالب بود امیر جان،..
استفاده کردیم

یک پیشنهاد داشتم، اگر در ادامه همین تاپیک و یا تاپیک جدا بتونی به مرور زمان امکانات جدیدی به این سیستم اضافه کنی، عالی میشه ..
موفق باشید.
 

amir01

Well-Known Member
راستی بچه ها حواسم نبود لینک مستقیم برای خبرها رو نذاشته بودم.
اونایی که کدها رو کپی پیست کردن که هیچ. ولی اونایی که فایل پیوست شده رو گرفتن کدی که توی متن پست برای قسمت index.php (نمایش خبرها) جدیدا گذاشتم رو به جای کدهایی که تو فایل پیوست شده هست قرار بدن. البته جایگزین نکردید هم مشکلی پیش نمیاد همینجا میگم که لینک مستقیم خبرها به یان صورته :
کد:
index.php?newsID={id e khabar}
ex: index.php?newsID=1

یاحق
 
آخرین ویرایش:

shnoit

Well-Known Member
سلام
خیلی آموزش عالی بود. فقط یه چیزی !؟
اگه بخوایم قسمت ادامه مطلب رو قرار دهیم و با قسمت بر روی لینکی ، متن کامل نشون داده بشه باید کجا رو تغییر داد و به چه صورتی ، لینک هر مطلب چی میشه اون وقت !؟

اگه بخوایم یه ادیتور مناسب به قسمت ارسال و ویرایش اضافه کنیم چه جوریه !؟
 

amir01

Well-Known Member
بچه ها ببخشید.
این فایلی که پیوست کردم با همه تغییرات هست یوزر و پسورد ادمین رو هم توی config.php گذاشتم که اگه خواستید راحت عوضش کنید.
در ضمن به زودی آموزش قسمت های دیگر این سیستم برای کامل شدنش (از قبیل افزودن ادامه مطلب، موضوع بندی خبرها، آرشیو ماهیانه و...) رو اینجا میذارم.(برای شما برنامه ویژه ای داریم!) فعلا سرم یکم شلوغه باید برم آرایشگری :دی
خب پس فعلا بای.
 

پیوست ها

  • NewsCMS.zip
    5.9 کیلوبایت · بازدیدها: 654
آخرین ویرایش:
اینجا

این دو مرحله هم به این صورته که یه کوئری برای افزودن خبر :
و اون یکی برای بروز کردن دیتابیس :

کد هایی که دادین کجا بذارم و چگونه کوئری بسازم ؟
 
ممنون آقا امیر...
عالی بود ...
دوستان رو گرافیکش کار کنید خیلی شیک تر میشه (;
بعد اگه بتونید پسورد رو کد کنید بهتر میشه ...
مثلا" md5
 

shnoit

Well-Known Member
سلام
امیر جان علی بود.
ولی من طبق آموزش تو اسم فایلهای ادمین و همچنین اسم sql رو هم تغییر دادم و بدون ایرادی اطلاعات در دیتابیس ذخیره میشه، منتها در بالای صفحات ادمین همچین اروری نشون میده:
HTML:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at F:\Nader\Xampp\htdocs\CMS\admin\addNews.php:1) in F:\Xampp\htdocs\CMS\admin\addNews.php on line 2

حالا میخواستم بدونم که چه جوری این مشکل رو بر طرف کنم. (اطلاعات در دیتابیس ذخیره هم میشن.)

اگه با مثال توضیح بدی ممنون میشم.
 

amir01

Well-Known Member
اینجا

این دو مرحله هم به این صورته که یه کوئری برای افزودن خبر :
و اون یکی برای بروز کردن دیتابیس :

کد هایی که دادین کجا بذارم و چگونه کوئری بسازم ؟

آهان اینجا رو میگی؟! نه بابا نیازی نیست شما کاری بکنی. سیستم رو توضیح دادم. اگه دقت کنی همین کوئری هایی که دادم رو تو اون صفحه میتونی پیدا کنی. نیازی نیست شما چیزی درست کنی.

ممنون آقا امیر...
عالی بود ...
دوستان رو گرافیکش کار کنید خیلی شیک تر میشه (;
بعد اگه بتونید پسورد رو کد کنید بهتر میشه ...
مثلا" md5

جناب Arch.Designer من تو نوشته ها گفتم که هر کسی بخواد میتونه خودش هر کاری میخواد بکنه. من نمیخوام اینجا بیام مثلا یه جوملا بنویسم که. میخواستم یاد بدم که بچه ها کار دستشون بیاد.
 

SME

Banned
خیلی خوب بود...
مواردی که پیشنهاد میکنم در ادامه آموزش بدید:
1- امکان ساخت ادامه خبر.
2- امکان استفاده از ادیتور پیشرفته (مثلا wysiwyg)
3- امکان ایجاد آمارگیر از سایت.
4- لود آجاکس.
5- گرافیک سایت.
البته من هم یک کمی وقت پیدا کنم حتما فعالیت خودم رو تو این مورد افزایش میدم... ;)
 

amir01

Well-Known Member
مواردی که پیشنهاد میکنم در ادامه آموزش بدید:
1- امکان ساخت ادامه خبر.
2- امکان استفاده از ادیتور پیشرفته (مثلا wysiwyg)
3- امکان ایجاد آمارگیر از سایت.
4- لود آجاکس.
5- گرافیک سایت.

میگم نوشابه، سالاد؟ چیز دیگه ای نمیخواید بچه ها! :دی (شوخی)
فکر کنم هرکی هر چیزی رو تو کاراش نیاز داره رو میخواد اینجا ما بنویسیم براش.
- مثلا استفاده از ادیتور پیشرفته دیگه فکر نمیکنم ربطی به برنامه نویسی یه سی ام اس داشته باشه. معمولا ادیتورها جاوا و اچ تی ام ال هستن که به راحتی به صفحه اضافه میشن.
- لود آژاکس؟ دوستان اینجارو با مغازه برنامه نویسی اشتباه نگیرین!
- همچنین با شرکت طراحی. اصلا بحث رو گرافیک نیست. و هیچ جایی تو این موضوع نداره. هر کسی یه سلیقه ای داره. من الان بیام اینجا آموزش طراحی قالب سایت بدم؟! یکم منصف باشید.
حالا کاری با اینا ندارم من تا جایی که در توانم باشه و بتونم کمک میکنم.
ولی من گفتم بیام شروع نوشتن یه سی ام اس رو آموزش بدم. مثل اینکه اینجا به مقدار اشتباه پیش اومده. هرکی هر چیزی رو که تو پروژه هاش نیاز داره داره درخواست میده که نوشته بشه!!!...
مثلا فکر نمیکنم با آموزشی که دادم اضافه کردن ادامه خبر خیلی کار مشکلی باشه. یکم به خودتون زحمت بدین خب بچه ها دیگه.
یکی میاد یه کاری میکنه دیگه پشیمونش نکنید که.
شما هم یکم همکاری کنید جای دوری نمیره. بعد از اینکه من این آموزش رو گذاشتم یه نفر نیومد بگه مثلا بچه ها فلان چیز رو هم اینجوری میشه اضافه کرد بهش یا این چیزم من نوشتم براش. مثلا گذاشتن ادامه خبر که چیزی نیست. مثلا چی میشد یکی آموزش میداد؟! هر کسی اومده یه پست اضافه کرده که فلان چیزا رو هم به سیستم اضافه کنی خوب میشه. خوب بله خیلی چیزا هست که به سیستم اضافه بشه خوب میشه. نه؟! ولی خب فکر نمیکنید یه نفره این همه رو آموزش بدم یکم...
 
آخرین ویرایش:

SME

Banned
فکر کنم هرکی هر چیزی رو تو کاراش نیاز داره رو میخواد اینجا ما بنویسیم براش.
- مثلا استفاده از ادیتور پیشرفته دیگه فکر نمیکنم ربطی به برنامه نویسی یه سی ام اس داشته باشه. معمولا ادیتورها جاوا و اچ تی ام ال هستن که به راحتی به صفحه اضافه میشن.
- لود آژاکس؟ دوستان اینجارو با مغازه برنامه نویسی اشتباه نگیرین!
- همچنین با شرکت طراحی. اصلا بحث رو گرافیک نیست. و هیچ جایی تو این موضوع نداره. هر کسی یه سلیقه ای داره. من الان بیام اینجا آموزش طراحی قالب سایت بدم؟! یکم منصف باشید.
حالا کاری با اینا ندارم من تا جایی که در توانم باشه و بتونم کمک میکنم.
ولی من گفتم بیام شروع نوشتن یه سی ام اس رو آموزش بدم. مثل اینکه اینجا به مقدار اشتباه پیش اومده. هرکی هر چیزی رو که تو پروژه هاش نیاز داره داره درخواست میده که نوشته بشه!!!...
مثلا فکر نمیکنم با آموزشی که دادم اضافه کردن ادامه خبر خیلی کار مشکلی باشه. یکم به خودتون زحمت بدین خب بچه ها دیگه.
یکی میاد یه کاری میکنه دیگه پشیمونش نکنید که.
فقط نظر بود...
گفتم شاید اینطوری نیازهای بیشتری رفع بشه.
منم کمک میکنم...نگران نباش.
زکات علم نشر اوونه!
 

shnoit

Well-Known Member
سلام
امیر جان علی بود.
ولی من طبق آموزش تو اسم فایلهای ادمین و همچنین اسم sql رو هم تغییر دادم و بدون ایرادی اطلاعات در دیتابیس ذخیره میشه، منتها در بالای صفحات ادمین همچین اروری نشون میده:
HTML:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at F:\Nader\Xampp\htdocs\CMS\admin\addNews.php:1) in F:\Xampp\htdocs\CMS\admin\addNews.php on line 2

حالا میخواستم بدونم که چه جوری این مشکل رو بر طرف کنم.(اطلاعات در دیتابیس ذخیره هم میشن.)

اگه با مثال توضیح بدی ممنون میشم.

آقا میشه یه راهنمایی کنین !؟
یه نفر گفت قبل از
session_start(); یه علامت @ اضافه کنم، یعنی به والش session@ تغییر بدم، خواستم بدونم ایرادی، چیزی نداره !؟ (ولی این طوری ارور بر طرف شده) خواستم بدونم مشکلی چیزی نداره !؟
 

saidshp

Member
سلام
امیر عزیز کار خوبی رو شروع کردی
با اجازت من کمی برنامت رو ارتقا دادم یه سری امکانات اضافه کردم چندتایی فایل اضافه شده بعضی از فایل ها رو هم مکانش رو تغییر دادم

امکانات اضافه شده :
1- امکان ذخیره سشن در دیتابیس.
2-درج خلاصه خبر با اضافه کردن یک فیلد به جدول news
3- امکان نظر سنجی برای هر خبر
4- نمایش تاریخ خبر به شمسی با تابع جلالی

فایل های اضافه شده:
1- show_news.php برای نمایش یک خبر و نظر سنجی
2- common_funcs.php که در دایرکتوری includes هست و دو تابع تاریخ و اضافه کردن رای به هر خبر
3- session.php در دایرکتوری includes هست و برای ذخیره سشن در دیتابیس هست
4-header.php همون هدر قبلی هست که برای تمیز تر شدن جدا کردم

جدولها
1- sessions برای ذخیره سشن
2- votes برای نظر سنجی
 

پیوست ها

  • news.rar
    8.3 کیلوبایت · بازدیدها: 472

جدیدترین ارسال ها

بالا