ارسال پست :: سيستم مديريت محتوا قسمت 6


به نام خداوند بخشنده ي مهربان

سطح مقاله: متوسط-پیشرفته
پیش نیاز: آشنایی با PHP و دستورات SQL SERVER

تقريبا داريم كنترل پنل كاربر را مي نويسيم. ببخشيد اين قسمت يكم دير شد. امروز مي خواهم براي صفحاتمون يك روش جديد پيشنهاد بدهم. يادتان مي آيد وقتي ما مي خواستيم سيستم تغيير رمز عبور يا حذف اكانت را بنويسيم از دو صفحه استفاده مي كرديم مانند delacount.php ، delacount2.php يا changepass.php ، changepass2.php حالا مي خواهم صفحه ي sendpost.php كه براي ارسال پست براي كاربر استفاده مي شه از روش GET استفاده كنم كه عمليات ها را در يك صفحه مي ريزه مثل sendpost.php?action=sended . حالا صفحه ي sendpost.php كه توضيح داده مي شه:

کد PHP:
<form method="POST" action="sendpost.php?action=send">
<input type="text" size="40" name="title" maxlength="38"> <p>
<textarea cols="40" rows="8" name="post"> </textarea>
<input type="submit" value="Send post">
</form>
<?php
session_start();
//check the login
if(!isset($_SESSION["user"])) {
die('You are not login.');
}
//end check

if($_GET["action"] == "send") {
if(!isset($_POST["title"])) {
die('the form not submited.');
}
if(empty($_POST["title"])) {
die('The title field is empty.');
}
if(empty($_POST["post"])) {
die('The post text is empty.');
}
include('config.php');
//connect to datebase by function connect in config.php
connect();
$title = $_POST["title"];
$post = $_POST["post"];
$sql = "INSERT INTO `posts`(title, post) values('$title' , '$post');";
mysql_query($sql);
echo "The post with title: $title inserted.";
}
?>

حالا توضيح كد بالا كه مربوط به صفحه ي sendpost.php مي باشد:
در ابتدا يك فرم داريم كه method آن POST مي باشد و action آن كه اطلاعات به آنجا ارسال مي شود آدرس sendpost.php?action=send مي باشد. همانطور كه توجه كرديد ما در method از GET استفاده نكرديم بلكه در قسمت action آدرسي را مشخص كرديم كه اين خصويت را دارد. پس تمامي مقادير فرم دوباره به همين صفحه فقط با يك روش GET ارسال كردم. سپس صفحه ي php را با پرچسب <?php شروع كردم. در اين صفحه ابتدا چك كردم كه آيا كاربر لاگين كرده است يا نه به اين ترتيب كه با يك عبارت شرطي بررسي كردم كه آيا جلسه اي به نام user كه در صفحه ي login ساخته بوديم وجود دارد يا نه؟ اگر وجود داشت كه هيچي و اگر وجود نداشتم برنامه را خاتمه مي دهيم و با دستور die پيام مي دهيم كه لاگين نشده است. حالا رسيده كه روش جديد را شروع كنيم در اينجا بررسي كردم كه آيا GET با نام action و محتويات send وجود دارد يا نه؟ اگر وجود داشت توي عبارت شرطي دستورات بعدي را مي نويسيم به اين ترتيب كه در اين شرط بررسي مي كنيم كه فرم ارسال شد و مقادير فرم خالي هستند يا نه و بعضي از كنترل ها. ما چنديدن شرط در اين شرط ايجاد كرده ايم. بعد از عبارت شرطي محتويات صفحه ي config.php را كه قبلا نوشته بوديم را توي صفحه مي ريزيم و سپس با تابع connect كه در آن صفحه نوشته بوديم با بانك اطلاعاتي ارتباط برقرار مي كنيم. سپس دو متغير جديد به نام هاي title و post ايجاد مي كنيم كه در برگيرنده ي مقادير فرم مي باشد. متغير جديد sql به ما كمك مي كند كه كوئري و پرس و جوي خود را در آن بنويسيم با دستور INSERT كه براي درج اطلاعات در بانك اطلاعاتي استفاده مي شود اطلاعات را در جدول posts درج مي كنيم. سپس با mysql_query دستورات را اجرا مي كنيم. در پايان به اين عنوان كه پيامي براي عمليات موفقيت آميز نشان بدهيم با دستور echo چاپ مي كنيم كه اين مطلب با عنوان متغير title ارسال گرديد. سپس صفحه ي php را خاتمه مي دهيم.

اگر مشكلي بود اطلاع دهيد چون تازه من اين روش ياد گرفتم.

hadimir
محمد هادي معصومي.

نظرات کاربران :

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

This site uses Akismet to reduce spam. Learn how your comment data is processed.