PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مشاهده آدرس پوشه با پی اچ پی



teztop
April 17th, 2011, 18:42
سلام
چطور میشه نام پوشه ای که باز می شه رو با پی اچ پی به دست آورد ؟
مثلا :

www.mysite.com/teztop
اینجا مثلا پوشه teztop

kargar
April 17th, 2011, 19:27
متوجه منظورتون نشدم میشه واضع تر بیگید

Rezash
April 17th, 2011, 20:27
نميدونم منظورتون رو درست متوجه شدم يا خير ، اما به سبك htaccess وردپرس اينجوري ميتونيد عمل كنيد :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

index.php

echo $_SERVER['REDIRECT_URL'];

tinavps
April 17th, 2011, 20:33
$_SERVER['REQUEST_URI']
یعنی مسیری که الان توش هستیم
حالا باید explode کنی با / و از صفر تا انتها را حساب کنی

teztop
April 17th, 2011, 22:17
$_SERVER['REQUEST_URI']
یعنی مسیری که الان توش هستیم
حالا باید explode کنی با / و از صفر تا انتها را حساب کنی

بله درسته یه چیزی تو این مایه ها
می خوام وقتی که یه نفر مثلا صفحه
www.mysite.com/teztop رو باز کرد اطلاعات کاربر با teztop در خروجی نمایش داده بشه

tinavps
April 17th, 2011, 23:11
سعی کنید کامل شرح بدین که کاربر بره تو چه صفحه ای و قرار چه اتفاقی بیفته و ... کامل شرح بدین متوجه نشدم دقیق مثال بزنید مثلا یک کاربر رفته به یک url حالا باید ...

teztop
April 17th, 2011, 23:28
ببینید مثلا من برای هر عضوم یه پوشه دارم. مثلا کاربر x
حالا من می خوام وقتی یک نفر وارد
www.mysite.com/x شد فایل index.php موجود تو این پوشه x که اجرا می شه اطلاعات این کاربر رو از دیتا بیس بخونه. یه تابعی باشه که بگه اطلاعات مربوط به این کاربر رو می خواد. این فایل ایندکس برای تمامی پوشه ها یه چیز ثابته

---------- Post added at 11:28 PM ---------- Previous post was at 11:28 PM ----------

ببینید مثلا من برای هر عضوم یه پوشه دارم. مثلا کاربر x
حالا من می خوام وقتی یک نفر وارد
www.mysite.com/x شد فایل index.php موجود تو این پوشه x که اجرا می شه اطلاعات این کاربر رو از دیتا بیس بخونه. یه تابعی باشه که بگه اطلاعات مربوط به این کاربر رو می خواد. این فایل ایندکس برای تمامی پوشه ها یه چیز ثابته

tinavps
April 17th, 2011, 23:38
قرار نیست به ازای هر کاربر یک فولدر داشته باشی که داخل اون هم یک ایندکس بزاری
ببین مود ری رایت می دونی چی هست ؟ نصبش که راحته با یام و البته ممکنه نصب باشه و به تنظیمات اپاچی php مراجعه کن و ازطریق .htaccess فعالش کن.

در این روش فولدر واقعی در سایت شما بنام x موجود نیست و فرضا فولدر مجازی است پس چه اتفاقی می افتد؟
مو ری رایت می گوید اگر رکوئیست هایی به فایل و فولدری در هاست داده شد و در عمل موجود نبود یک فایل به نام router.php اجرا شود.
وظیفه این فایل این است که url را بشکاند و یک سری متغیر را تعریف کند. مثال:
سایت های تبلیغاتی نیاز دارند که متغیر نوع زبان و category و group و ads_id در متد GET تعریف شده باشد اما این بار با کمک modrewrite



$t1 = $_SERVER['REQUEST_URI'];
$part_2=explode("/",$t1);
$url_ar_count=count($url_ar);

suppose url is : .com/fa/12/134/160987
map= /language / group / category / ads id


$_GET['la'] = $part_2[1];
$_GET['gid'] = $part_2[2];
$_GET['cid'] = $part_2[3];
$_GET['aid'] = $part_2[4];
include( "login.php" );
exit();



این هم محتویات .htaccess


<IFMODULE mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) router.php
</IFMODULE>

teztop
April 18th, 2011, 00:11
ممنون میشه یه کم توضیح بدین ؟

tinavps
April 18th, 2011, 08:50
توضیح ابتدا یک htaccess همون کد در public_html می گذاری . این کد چه می گوید ؟ می گوید اگر یک کاربر یک url را از سایت ما درخواست کرد به شرطی که آن فولدر عملا وجود نداشته باشد و یا آن فایل عملا وجود نداشته باشد بصورت چیش فرض یک فایل اجرا شود مثلا default.php یا router.php حالا وظیفه ی روتر چیست؟
روتر می گوید ببینم url چیست و با توجه به url کاربر را به صفحه مورد نظرش راهنمایی کنم. مثال :
می توانیم url را با توجه به اسلش ها بشکانیم اصلاحا explode یک آرایه بدست می آید که از صفر تا n key دارد مثلا در مثال بالا مشخص شده که اولین [1] نشان دهنده fa بوده و دومی group id
سپس می توانی تصمیم گیری کنی. ضمنا همان طور که گفتم اگر چورتال شما مثل جوملا انتظار داشت که برای رفتن به صفحه ارتباط با ما بنویسید index.php?option=com_contact کافیست بنویسید .com/ارتباط با ما حالا یک switch($part_2[1]){ //from first part
بگذاری


case 'ارتباط با ما ' :
$_GET['option']=com_contact
include('index.php');






در مثال شما این $part اولین کی می شود همان نام فولدر یا کاربر که می گفتی
ببین تا یک مثال را در php اجرا نکنی نمی شه اجرا کن آسونه بیشتر توضیح بدم پیچیده تر میشه ببخشید

teztop
April 18th, 2011, 10:50
روی لوکال هاست هم جواب می ده ؟
روی easyphp

---------- Post added at 10:50 AM ---------- Previous post was at 09:59 AM ----------


نميدونم منظورتون رو درست متوجه شدم يا خير ، اما به سبك htaccess وردپرس اينجوري ميتونيد عمل كنيد :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

index.php

echo $_SERVER['REDIRECT_URL'];
ممنون حل شد. اما رو لوکال هاستم جواب نداد :113:

Rezash
April 18th, 2011, 17:42
ممنون حل شد. اما رو لوکال هاستم جواب نداد
خواهش ميكنم
بايد mod rewrite رو فعال كنيد ،‌فعال هست ؟

teztop
April 19th, 2011, 11:09
من روی easyphp تست کردم جواب نداد اما رو سرور جواب داد از تنظیمات php.ini هم رفتم اما پیدا نکردم:-s

---------- Post added at 11:08 AM ---------- Previous post was at 11:04 AM ----------

می خوام فایل htaccess رو روی هاستم پیدا کنم اما نمی دونم کجاست #-o

---------- Post added at 11:09 AM ---------- Previous post was at 11:08 AM ----------

میدونم که آپش کردم. اما تو فایل منیجر نیست

Rezash
April 19th, 2011, 11:37
موقع ورود به فايل منيجر تيك show hidden files يا dot files رو بزنيد.
مربوط به php.ini نيست ،‌اگر mod rewrite فعال نيست بگيد تا روش فعال شدنش رو بررسي كنيم.

teztop
April 19th, 2011, 11:47
روی cpanel که من وارد می شم همچین گزینه ای نداره

---------- Post added at 11:47 AM ---------- Previous post was at 11:44 AM ----------

پیداش کردم . باز هم ممنون