PDA

View Full Version : حرفه ای: دریافت سورس یک کد php قابل اجرا !



xoogle.ir
یک شنبه 09 آبان 1389, 14:16 عصر
سلام دوستان عزیز
فرض کنید من یه صفحه دارم به نام hello.php که این کد داخلش هست :



<?php
echo 'hello world';
?>

حالا میخام در صفحه دیگری این کد رو بگیرم و اجرا کنم این کار رو انجام دادم ولی کد اجرا نمیشه و یه صورت یک رشته غیر قابل اجرا عمل میکنه :



$source = file_get_contents('hello.php');
echo $source;

این رشته در حالت معمولی قابل دیدن نیست و یابد حتما سورس صفحه رو ببینید که دیده بشه.
چه کاری باید انجام بدم که سورس این صفحه به صورت رشته بگیرم اما این رشته قابل اجرا باشه ؟؟؟

xoogle.ir
یک شنبه 09 آبان 1389, 14:28 عصر
یعنی میخام در هر صفحه ای که این کار رو کردم خود اون کد اجرا بشه و عبارت hello world چاپ بشه.

Keramatifar
یک شنبه 09 آبان 1389, 15:24 عصر
دوست عزیز
شما برای اینکار می توانید از require یا include استفاده کنید
بعنوان مثال:


require 'hello.php';

binyaft
یک شنبه 09 آبان 1389, 16:47 عصر
میشه با حذف کردن <?php و <؟ از کد ها اون ها رو در تابع eval اجرا کرد
موفق باشی

xoogle.ir
دوشنبه 10 آبان 1389, 09:04 صبح
دوست عزیز
شما برای اینکار می توانید از require یا include استفاده کنید
بعنوان مثال:


require 'hello.php';

با ما هم بعله .... :لبخند:
مهندس اینو خودم بلدم هدف من اینه که به صورت یک رشته قابل اجرا سورس فایل رو بگیرم.

yasgig
دوشنبه 10 آبان 1389, 10:59 صبح
کدهای PHP با php?> شروع میشه و با <? تموم میشه درست عین تگ XML و HTML اونها رو Ignore می کنه.با escape کردن کاراکترها میشه مشاهده اش کرد:

<?php
echo htmlspecialchars(file_get_contents('filename.php') );
?>

binyaft
دوشنبه 10 آبان 1389, 12:43 عصر
این برای نمایش هست نه برای اجرا

کدهای PHP با php?> شروع میشه و با <? تموم میشه درست عین تگ XML و HTML اونها رو Ignore می کنه.با escape کردن کاراکترها میشه مشاهده اش کرد:


حالا میخام در صفحه دیگری این کد رو بگیرم و اجرا کنم

xoogle.ir
دوشنبه 10 آبان 1389, 14:08 عصر
راستش من اینو برای نوشتن template engin لازم دارم.
میخاستم بتونم توی فایل view که قراره وسط صفحه لود بشه بتونم برنامه php بنویسم مثل حلقه ها ، توابع و .... روش کارم هم به شکلی بود که نمیتونستم اینکلود بکنم.
بی خیالش شدم چون هرچی سرچ کردم ظاهرا راهی نداره و باید روش کارم رو طوری عوض کنم که بتونم از اینکلود استفاده کنم.

روش binyaft عزیز هم برای چاپ کردن متغیرهاست و برای حلقه ها و توابع کار نمیکنه.
از همگی ممنونم