کد خبر: 204
تاریخ انتشار: ۵ خرداد ۱۳۹۱ - ۱۲:۰۳


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

سطح مقاله: متوسط-پیشرفته
پیش نیاز: آشنایی با 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
محمد هادی معصومی.



نظرات بينندگان
انتشار يافته: بدون دیدگاه