سایت خود را بسازید ، به روش saalek110

saalek110

Well-Known Member
صفحه ۳۴:

ساخت فایل منیجر:

فکر کنم قبلا هم در مورد ساخت فایل منیجر صحبت کرده بودم.

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

وظیفه فایل منیجر:
کار فایل منیجر ، لیست کردن فایل ها و پوشه ها.
و نشان دادن عکس ها و کدها است. و ویرایش کدهاست.
 

saalek110

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

PHP:
./../../
 

saalek110

Well-Known Member
کد پایه:
PHP:
$my_dir="./";
$scan = scandir($my_dir);

در کد بالا مسیر تعین شده و مسیر اسکن شده.

اگر مثلا بنویسید:
PHP:
print_r($scan);

می بینید که کل فایل ها و پوشه ها در متغیری که ساختیم و نامش اسکن بود ،هست.
 

saalek110

Well-Known Member
چطور پوشه ها را لیست کنیم؟

PHP:
$my_dir="./";
$scan = scandir($my_dir);
foreach ($scan as $f)
              if ($f !== '.' and $f !== '..')
{
                        if (is_dir ($f)  )
{
               echo "$f<br>";
}
}

چطور فایل ها را لیست کنیم؟

PHP:
$my_dir="./";
$scan = scandir($my_dir);
foreach ($scan as $f)
              if ($f !== '.' and $f !== '..')
{
           if (is_file ($f)  )
{
               echo "$f<br>";
}
}

پس با زیر هم قرار دادن کدهای بالا ، پوشه ها و فایل ها لیست میشه. ولی دو خط اول کد دوم را بردارید. چون نیاز نیست دو بار اسکن کنیم.
 
آخرین ویرایش:

saalek110

Well-Known Member
خوب با کد پست قبل ، پوشه ها و فایل های مسیر مورد نظر خود را لیست کردیم و این فایل منیجر است دیگه. فایل منیجر یعنی مدیریت پوشه ها و فایل ها دیگه.

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

راههای زیادی برای این کار هست و خودتان می توانید یک راه را انتخاب کنید و بسازید.
شاید یک راه ساده این باشه که در یک کادر مسیر را وارد کنید و بخواهید اون مسیر اسکن بشه. مثل زمان dos که همه چیز تایپی بود. ولی تایپ مسیر سخت است.
 

saalek110

Well-Known Member
یافتن پوشه ها و فایلها با رگولار رکسپرژن:


کد زیر را نگاه کنید:

PHP:
$pattern = '/^[a-z0-9_-]{1,40}$/'; // folders
$check = preg_match($pattern,$f);
if ($check)
{
    echo $f;
    echo"<br>";
}

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

کد زیر هم:


PHP:
$check = preg_match('/([a-z]+[0-9]*)\.jpe?g$/', $f, $match);

برای فایلهای jpeg و jpg مناسب است.
میشه برای فایلهای txt و php و html و png و gif و ...... هم ، با ایجاد تغییر روی الگوی بالا استفاده کرد.

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


PHP:
    $check = preg_match('/([a-z]+[0-9]*)\.([a-z]+)$/', $f, $match);

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

می دونید در اسم فایل یک نقطه وسطشه و یک سری حروف این طرف نقطه و یک سری حروف اون طرف نقطه. در اسم فایل عدد و آندرلاین و منها هم مجاز است.
 
آخرین ویرایش:

saalek110

Well-Known Member
من فایل منیجر رصد کننده پوشه ها را ساختم.
در زیر اجزایش را میگم.


HTML:
<a href='your_file_name.php?folder=empty'>do empty</a>

کد بالا به خودش پاس میده ، برای folder مقدار empty را پاس می کنه.

PHP:
if (isset($_GET['folder'])  )
{
}

کد بالا ، نگه می کنی ببینه در آدرس ، مقدار folder مقدار داده شده یا نه.

PHP:
$my_dir="./";

پوشه پایه را تعیین کرده.

PHP:
    if ($_GET['folder']=="empty")
{
$_SESSION['step1']="empty";

کد بالا بحثش را در پست بعدی می کنم.
 

saalek110

Well-Known Member
من از سسیون برای ذخیره اسم پوشه ها استفاده کردم.
در کد آخر پست قبلی ، نگاه می کنه ببینه وقتی فایل به خودش مقدار empty را در متغیر folder پاس داده ، اومده سسیون step1 را برابر با empty قرار داده.
البته فعلا من چهار تا جایگاه گرفتم ، ادامه کد بالا میشه:
PHP:
$_SESSION['step2']="empty";
$_SESSION['step3']="empty";
$_SESSION['step4']="empty";
یعنی وقتی با زدن لینک do empty , نگاه کنید به اولین کد پست قبل ، یک لینک داریم که وقتی کلمه do empty را تاچ یا کلیک کنید ، فایل به خودش کلمه empty را پاس می دهد و باعث میشه ۴ جایگاه سسیون پر از کلمه empty شوند.

حالا این جایگاه ها یا حافظه ها که ۴ تا تعریف کردیم چیه؟
این ۴ تا حافظه به آدرس ریشه اضافه میشه تا برویم به عمق پوشه ها.
 
آخرین ویرایش:

saalek110

Well-Known Member
PHP:
if ($_SESSION["step1"]=="empty" || $_SESSION['step1']==NULL)
 $_SESSION["step1"]=$_GET['folder'];

else if ($_SESSION["step2"]=="empty" || $_SESSION['step2']==NULL)
 $_SESSION["step2"]=$_GET['folder'];

else if ($_SESSION["step3"]=="empty" || $_SESSION['step3']==NULL)
 $_SESSION["step3"]=$_GET['folder'];

حال وقتی یک چیزی پاس دادیم ، یعنی اسم یک پوشه را ، با کد بالا ، می رود داخل جایگاه ها.
اگر اولی خالی بود می رود در اولی ، اگر نه ، می رود به دومی ، و اگر دومی هم خالی نبود ، می رود به سومی ، و الی آخر...


کد بالا ، به شکل ابشاری حافظه های ما در سسیون را پر می کنه.

ولی باید کل کدهای بالا داخل یک شرط هایی باشد. مثلا اینکه متغیر folder پر باشد:
PHP:
if (isset($_GET['folder'])  )
و فکر کنم باید بگیم در متغیر folder ، مقدار empty هم نباشد. چون empty یعنی خالی. ولی منظور ما پر کردن حافظه های سسیون با اسم پوشه هاست.
 
آخرین ویرایش:

saalek110

Well-Known Member
نگاهی به شکل اجرا شده برنامه:

Screenshot_۲۰۲۴-۰۹-۱۸_۱۲۰۲۵۰.jpg

در شکل بالا ، لینک do empty را می بینید.
و حاصل اجرای کد print_r را هم می بینید. کد print_r را در پست های قبلی گذاشتم.
اون فلش آبی ، حاصل کد من با رگولار اکسپرژن است. می بینید با حاصل print_r همخوانی دارد.

قبلش جایی که اسم اون فایل جلوی فلش آبی هست، اسم پوشه ها بود که به شکل لینک بودند و اسم خوشان را ماس می دادند به همین فایل . و خاصلش رفتن دو اسم در جایگاه های اول و دوم است.
در عکس نگاه کنید به سسیون اول و سسیون دوم، اونها اسم پوشه هایی است که من کلیک کردم.
و نگاه کنید به آدرس $my_dir ....اولش ریشه بوده ، یعنی نقطه و ممیز بوده ، درعکس هست ، ولی بعدش دو تا اسم پوشه بهش اضافه شده. در مست قبلی کد اضافه کردن اسم پوشه ها به ریشه را میذارم.
 

saalek110

Well-Known Member
PHP:
if (isset($_SESSION['step1']))
if ($_SESSION['step1']!="empty")
$my_dir=$my_dir.$_SESSION['step1'];


if (isset($_SESSION['step2']))
if ($_SESSION['step2']!="empty")
$my_dir=$my_dir."/".$_SESSION['step2'];
در کد بالا ، افزودن اسم پوشه اول و افزودن اسم پوشه دوم را به روت می بینید.
در دومی یک ممیز هم اضافه شده. اولی ممیز نمی خواست.

سومی و چهارمی را شبیه دومی خودتان کپی کنید و بسازید.
 

saalek110

Well-Known Member
جایگزین های سسیون برای ذخیره:

من از سسیون بدم می آید چه کار کنم؟
حالا شاید شما از سسیون خوشتان نیاید، اصلا مسئله ای نیست ، می توانید در ۴ تا فایل text اینها را ذخیره کنید یا در ۴ خانه دیتابیس اینها را ذخیره کنید ، یا شاید بتوانید در کوکی ذخیره کنید.

پس ۳ راه جایگزین ذخیره ، به جای سسیون را گفتم.
فایل و دیتابیس و کوکی.
 

saalek110

Well-Known Member
گام های بعدی:

نمایش عکسها

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

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


PHP:
 $my_loci=$_SERVER['SERVER_NAME'];
کد بالا آدرس دومین را می دهد.

مثلا
saalek110.is-great.net
بعد این اسم پوشه ها را بزارید و اسم فایل را. اولش هم http:// را شاید لازم داشته باشه.

PHP:
            $dd1='http://'.$my_loci;
            $dd2=$dd1.'/esme_poshe/';





 echo " ".$result2[$x]." "."<a href=$dd3><img src=$dd3 alt='c1.jpg' width='190' height=auto></a>";

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

saalek110

Well-Known Member
گام های بعدی:

ادیت فایلهای php


شاید بشه یک ادیتور ساخت و فایلهای با پسوند php را درش ادیت کرد.
بعدا روی این کار تلاش می کنم.
 

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

بالا