PDA

View Full Version : سوال: آدرس دهی به صفحات دیگر با متد GET



majid1605
دوشنبه 13 آبان 1392, 22:59 عصر
سلام
تووی بیشتر CMS ها وقتی تووی صفحاتی میریم که چندین کار مختلف رو انجام میدن تمام کارها تووی همون صفحه اصلی انجام میشه و تنها چیزی که تووی آدرس تغییر می کنه ارسال یه پارامتر با متد GET هست.
مثلا
http://barnamenevis.org/admin.php?action=changepass
http://barnamenevis.org/admin.php?action=changeemail
http://barnamenevis.org/admin.php?action=moduser
با اینکه یک صفحه داریم ولی به محض لود شدن صفحات صفحه به طور کامل تغییر می کنه ولی صفحه ثابته
چطور اینکار رو می تونم انجام بدم ؟آیا تمام این صفحات تووی یک فایل قرار دارند و با یک شرط ساده چک می کنن و بخش مربوطه اجرا میشه یا در چند فایل هستند و هربار یکیشون در فایل مادر اینکلود میشه ؟
این روش چه مزیتهایی داره؟

SilverLearn
سه شنبه 14 آبان 1392, 00:41 صبح
خوب دوست عزیز خودت که داری میگی از get استفاده می کنن....


مثالی رو که اینجا زده بررسی کن متوجه میشی ...

http://www.w3schools.com/php/php_forms.asp

cpuram
سه شنبه 14 آبان 1392, 09:48 صبح
یه همچین حالتی باید تو فایل htaccess شما باشه.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

<?php


if (isset($_GET['url']))
{
$url=$_GET['url'];

switch($url)
{
case 'index':
{
require 'controllers/'.$url.'.php';
$controllers= new $url;
}
break;
case 'help':
{
require 'controllers/'.$url.'.php';
$controllers= new $url;
}
break;
case 'edite':
{
require 'controllers/'.$url.'.php';
$controllers= new $url;
}
break;
case 'addnew':
{
require 'controllers/'.$url.'.php';
$controllers= new $url;
}
break;
default:
{
header('Location:'.'index');
}

}
}
else
{
require 'controllers/index.php';
$controllers= new index;
}


اینم یکی از فایلها

<?PHP
class Index
{
function __construct() {
print "we are in index!!!!!";
}

}

majid1605
سه شنبه 14 آبان 1392, 18:07 عصر
در مورد این فایل hdaccess میشه توضیح بدید .
ممنون

ابوذر محمودی
سه شنبه 14 آبان 1392, 18:45 عصر
تووی بیشتر CMS ها وقتی تووی صفحاتی میریم که چندین کار مختلف رو انجام میدن تمام کارها تووی همون صفحه اصلی انجام میشه و تنها چیزی که تووی آدرس تغییر می کنه ارسال یه پارامتر با متد GET هست.
مثلا
http://barnamenevis.org/admin.php?action=changepass
http://barnamenevis.org/admin.php?action=changeemail
http://barnamenevis.org/admin.php?action=moduser
با اینکه یک صفحه داریم ولی به محض لود شدن صفحات صفحه به طور کامل تغییر می کنه ولی صفحه ثابته
چطور اینکار رو می تونم انجام بدم ؟آیا تمام این صفحات تووی یک فایل قرار دارند و با یک شرط ساده چک می کنن و بخش مربوطه اجرا میشه یا در چند فایل هستند و هربار یکیشون در فایل مادر اینکلود میشه ؟
این روش چه مزیتهایی داره؟

بستگی به کد نویسی طراح داره ، اما معمولاً اینطوریه که تمام مقادیر به یک صفحه ارسال میشن اونجا بررسی میشه و کار متناظر با اون انجام میشه ، مثلا لینک های زیر رو ببینید :


http://barnamenevis.org/profile.php?do=editprofile
http://barnamenevis.org/profile.php?do=privacy
http://barnamenevis.org/profile.php?do=editavatar
http://barnamenevis.org/profile.php?do=editpassword

یک فایل برای این کارها ایجاد شده ولی در داخل فایل به طور مجزا به هر کدوم از این درخواست ها پرداخته :


if ($_REQUEST['do'] == 'editavatar')
{
//code
}
if ($_REQUEST['do'] == 'privacy')
{
//code
}
if ($_REQUEST['do'] == 'editavatar')
{
//code
}
if ($_REQUEST['do'] == 'editpassword')
{
//code
}

majid1605
چهارشنبه 15 آبان 1392, 11:46 صبح
بستگی به کد نویسی طراح داره ، اما معمولاً اینطوریه که تمام مقادیر به یک صفحه ارسال میشن اونجا بررسی میشه و کار متناظر با اون انجام میشه ، مثلا لینک های زیر رو ببینید :


http://barnamenevis.org/profile.php?do=editprofile
http://barnamenevis.org/profile.php?do=privacy
http://barnamenevis.org/profile.php?do=editavatar
http://barnamenevis.org/profile.php?do=editpassword

یک فایل برای این کارها ایجاد شده ولی در داخل فایل به طور مجزا به هر کدوم از این درخواست ها پرداخته :


if ($_REQUEST['do'] == 'editavatar')
{
//code
}
if ($_REQUEST['do'] == 'privacy')
{
//code
}
if ($_REQUEST['do'] == 'editavatar')
{
//code
}
if ($_REQUEST['do'] == 'editpassword')
{
//code
}


اگه همه اطلاعات تووی یک صفحه باشن کارایی پایین نمیاد و یا خوانایی برنامه ؟
تووی cms ها معمولا کدوم روش استفاده میشه ؟

ابوذر محمودی
چهارشنبه 15 آبان 1392, 12:24 عصر
این تاپیکو مطالعه کنید :
انجام چند عملیات در یک صفحه کار درستیه؟ (http://barnamenevis.org/showthread.php?424751-%D8%A7%D9%86%D8%AC%D8%A7%D9%85-%DA%86%D9%86%D8%AF-%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA-%D8%AF%D8%B1-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%DA%A9%D8%A7%D8%B1-%D8%AF%D8%B1%D8%B3%D8%AA%DB%8C%D9%87%D8%9F)

فایلی که ضمیمه میکنم ، فایلی هست که برای بخش پروفایل ویبولتین 4.1 استفاده میشه ، میتونید ملاحظه کنید ساختارشو :
CMS های دیگرو خودتون میتونید بررسی کنید