آژانس هواپیمایی
pop up

خروجي داده ها به چه صورت ؟

شروع موضوع توسط vaheb ‏22 نوامبر 2007 در انجمن PHP

  1. vaheb

    vaheb کاربر تازه وارد

    تاریخ عضویت:
    ‏14 اکتبر 2007
    نوشته ها:
    134
    تشکر شده:
    0
    (اول 30 تا صلوات نذر كردم كه به دليل اينكه سوال مي پرسم آقا مهدي تاپيك منو نبندند.:f34r:)
    خب مي خواستم بدونم وقتي ما سايت ساده با PHP و Mysql ساختيم و ساختار جدول ما در ديتا بيس به اين صورت است كه از 2 ستون يكي id و ديگري content تشكيل شده و سايت ما هم يه صفحه index.php داره كه شماره id رو دريافت كرده و صفحه متناظر اون رو از database بر مي گردونه . حالا سوال اينجاست محتوايي رو كه بر گردونده اگه شامل كد هاي PHP هم باشه (يعني شامل html هم هست ) چطور نمايش بديم در index.php .؟؟؟؟؟؟؟؟؟؟
     
  2. Shahed

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    شما از اول نباید داده هارو با جنس اصلی خودشون وارد دیتابیس کنی ! مثلا لازم نیست تگ <؟ رو همینطوری تو دیتابیس بریزی ! باید علامت > , < رو به معادل اسکیشون تبدیل کنی. با htmlspacialchars و توابع مشابه !
     
  3. vaheb

    vaheb کاربر تازه وارد

    تاریخ عضویت:
    ‏14 اکتبر 2007
    نوشته ها:
    134
    تشکر شده:
    0
    آقا اصلا حرف من چيز ديگري هست . مي گم وقتي مثلا اطلاعات صفحه content رو گرفتيم و گذاشتيم توي متغيري مثلا به نام $content خب حالا چجوري بديم به خروجي ؟؟؟؟؟؟؟؟؟؟؟؟ با echo و يا .. كه نميشه چون كدهاي PHP اجرا نمي شن ؟؟؟؟؟؟؟؟؟؟ چه بايد كرد ؟
    اصلا به همين Vbulletin نگاه كنيد ببينيد چه مي كنه ؟ چجوري اين كار رو انجام ميده ؟ (البته اگه داره)
     
  4. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    اگر منظورتون اينه كه ميخاين كد php رو تو ديتا بيس بريزين و بعد كه اومد بيرون همون اجرا بشه ميتونين از تابع eval كه براي همين منظور هست استفاده كنيد. توضيحات بيشتر در راهنماي PHP موجود هست.

    http://www.php.net/manual/en/function.eval.php

    اگرم منظورتون اينه كه ميخواين كدي كه تو ديتا بيس هست مثل همينجا رنگي بشه ميتونين از تابع highlight_string استفاده كنيد. توضيحات بيشتر در راهنماي php.

    http://www.php.net/manual/en/function.highlight-string.php
     
  5. Shahed

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    و اگه منظورتون اینه که کدی که تو دیتابیسه فقط نشون دادهع بشه و کامپایل نشه میتونید از htmlspecalchars و خانواده !! استفاده کنید !
     
  6. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    درسته. ديگه همه چي گفته شد :lol:
     
  7. boxilink
  8. vaheb

    vaheb کاربر تازه وارد

    تاریخ عضویت:
    ‏14 اکتبر 2007
    نوشته ها:
    134
    تشکر شده:
    0
    اگر منظورتون اينه كه ميخاين كد php رو تو ديتا بيس بريزين و بعد كه اومد بيرون همون اجرا بشه ميتونين از تابع eval كه براي همين منظور هست استفاده كنيد. توضيحات بيشتر در راهنماي PHP موجود هست.
    منظورم همينه ,ولي خب وقتي محتواي صفحه هم PHP داره و هم Html چه بايد كرد ؟ كدهاي مخلوط شده با هم !!!!!!
     
  9. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    تا اونجايي كه من تست كردم اينطوريم شده. شما تست كردي ببيني ميشه يا نميشه؟
    تست كن...
     
  10. vaheb

    vaheb کاربر تازه وارد

    تاریخ عضویت:
    ‏14 اکتبر 2007
    نوشته ها:
    134
    تشکر شده:
    0
    آقا من تست كردم قبلا ارور ميده . اگه شما تست كردين با مثال بذارين لطفا. (مرسي سالار)

    بياييد صورت مسئله رو ساده تر كنيم فكر كنيد متغيري داريم داراي كدها و تگ هاي PHP به همراه كد هاي Html چطوري خروجي مناسب رو توليد كنيم ؟؟؟؟؟؟؟؟؟
     
  11. vaheb

    vaheb کاربر تازه وارد

    تاریخ عضویت:
    ‏14 اکتبر 2007
    نوشته ها:
    134
    تشکر شده:
    0
    اصلا سوال من اين هست كه شما چطوري يه سايت ساده دايناميك با 3 صفحه مثلا درست مي كنيد ؟
    محتواي صفحات سايت شما مگه داراي كدهاي PHP نيستند ؟؟؟؟؟؟؟؟؟
     
  12. ocarina3

    ocarina3 Guest

    تاریخ عضویت:
    ‏23 اکتبر 2006
    نوشته ها:
    215
    تشکر شده:
    0
    محل سکونت:
    ایالت پنجاه و یکم آمریکا
    خوب این چه ربطی ، و یا چه لزومی به درج کردن کدهای PHP در بانک و eval کردنش داره؟!

    دقیق بگو میخوای چیکار کنی؟
     
  13. Shahed

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    به نظرم صورت مسئله اشتباهه ! اصلا چه معنی داره کدهای php رو که قراره کامپایل بشه رو بفرستیم تو دیتابیس؟
     
  14. avajang.com .leftavajang.com.right
  15. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    دقيقا! اين كه شما ميخواي اين كد ها رو توي بانك اطلاعات قرار بدي مثاله اي كاملا اشتباهه. كد هاي php فقط توي فايل هاي php قرار ميگيرند. اطلاعات كاربر و مطالب توي ديتا بيس. لايه نمايش هم معمولا در CMS هاي جديد جدا از لايه انتزاع و لايه منطق هستند.

    اگر اطلاعات بيشتري نياز داري بگو تا برات شرح بدم (ساختن يه CMS وقت، تجربه و دقت خيلي زيادي رو ميخواد) (تاپيك ققنوس رو ببين)
     
  16. vaheb

    vaheb کاربر تازه وارد

    تاریخ عضویت:
    ‏14 اکتبر 2007
    نوشته ها:
    134
    تشکر شده:
    0
    بله آقا سالار شما كه از گذشته ما مي شناسيمتون يه 2 سالي هست در خدمتتونيم !
    منم صورت مسئله رو بازم ساده تر مي كنم . آقا يه سايت داريم با 100 صفحه كه يه صفحه index داره كه مطالب صفحات توش باز ميشه !!! خب حالا يكي از صفحات PHP هم داره , بياييد يه مثال بزنيد كه چطور كد PHP صفحات توش اجرا بشه !
    در ضمن صحبت شما سالار جان برام جالب بود .
    ايني كه ميگي لايه ها از هم جدا هستند ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
     
  17. متالیک

    متالیک Registered User

    تاریخ عضویت:
    ‏31 مارس 2007
    نوشته ها:
    1,938
    تشکر شده:
    59
    همان طور که دوستان گفتند باید از تابع eval استفاده کنید.
    تابع eval رشته ای را که دارای کدهایphp باشه رو مثل خود php اجرا می کنه.
    مثال:

    PHP:
    <?php

    $content 
    "<?php echo 'I am HERE!'; > ";
    eval(
    $content)

    ?>
     
  18. متالیک

    متالیک Registered User

    تاریخ عضویت:
    ‏31 مارس 2007
    نوشته ها:
    1,938
    تشکر شده:
    59
    همان طور که دوستان گفتند باید از تابع eval استفاده کنید.
    تابع eval رشته ای را که دارای کدهایphp باشه رو مثل خود php اجرا می کنه.

    مثال:

    PHP:
    <?php

    $content 
    "<?php echo 'I am HERE!'; > ";
    eval(
    $content)

    ?>
     
  19. vaheb

    vaheb کاربر تازه وارد

    تاریخ عضویت:
    ‏14 اکتبر 2007
    نوشته ها:
    134
    تشکر شده:
    0
    اينو بايد چيكار كرد ؟

    PHP:
    <?php
    $content
    ="salam be shoma <?
    echo 
    $name;
    ?>"
    ;
    ?>
    سوال اصلي من همينه !!!!!!!!!!!! :happy:
     
  20. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    من در مورد اين سوالت بعدا مثال ميزنم. ولي الان در مورد اون لايه ها برات توضيح ميدم.
    ببين ما برايد طراحي و برنامه نويسي يه سيستم جديد سه لايه اصلي داريم. لايه انتزاع كه كارش كار كردن و ارتباط و بيرون كشيدن اطلاعات از بانك هاي اطلاعاتي هست. لايه منطق كه كارش كار كردن با اطلاعات دريافتي و كنترل ورودي و خروجي ها هست. در آخر هم لايه نمايش كه همونطور كه از اسمش پيداست كارش نمايش اطلاعات پردازش شده هست. شما براي نوشتن CMS لازمه كه اول كامل به همه اجزاي سيستم فكر بكنيد. بعد از فكر كردن (!) بايد دقيقا از پايه شروع كنيد به برنامه نويسي. در ضمن. اين اطلاعاتي كه شما ميگيد بايد كاملا پردازش بشن. اگر كد HTML داره توش جدا مشخص بشه . اگر php داره همچنين.
     
  21. vaheb

    vaheb کاربر تازه وارد

    تاریخ عضویت:
    ‏14 اکتبر 2007
    نوشته ها:
    134
    تشکر شده:
    0
    مرسي از توضيحاتت ميشه يه منبع معرفي كني در رابطه با همين حرف ها ؟
     
  22. متالیک

    متالیک Registered User

    تاریخ عضویت:
    ‏31 مارس 2007
    نوشته ها:
    1,938
    تشکر شده:
    59
    اینم جواب سوال اصلی شما
    مثل همون حالت قبلیه که دو تا تفاوت کوچیک داره:

    PHP:
    <?php 

    $name 
    "Metalik";
    $content'salam be shoma <?
    echo $name;
    ?>
     aziz!
    '


    eval(
    "?>".$content."<?");

    ?>