السلام عليكم
شباب انا عندي سكربت اخبار اكتب فيه ابي داخل الموضوع احط كود php ويتنفذ حاولت بس مايطلع ؟؟؟ مثل التصويت اللي يجي بالمنتدى ؟؟
السلام عليكم
شباب انا عندي سكربت اخبار اكتب فيه ابي داخل الموضوع احط كود php ويتنفذ حاولت بس مايطلع ؟؟؟ مثل التصويت اللي يجي بالمنتدى ؟؟
تستخدم دالة eval بعد استخراج المعلومة من قاعدة البيانات
مثال:
$page_select = "SELECT * FROM ed_pages LIMIT 1";
$page_query = mysql_query($page_select);
$page_result = mysql_fetch_array($page_query);
echo eval("echo\"".$page_result['content']."\";");في هذه الحالة سوف تبحث الدالة عن سكريبتات البي اتش بي وتنفذها
بالتوفيق
تم تعديل هذه المشاركة بواسطة عبدالله عيّاش في 30 يونيو 2007 في 09:51
مشكور اخوي عبد الله ماتقصر اللي فهمته انه اضيف على كود الاخبار امر دالة eval لتنشيط اوامر ال php
يعني في نموذج كتابة الاخبار اضيف كود php بالامر اللي ابيه
يعني لو عندي موضوع مثلا
حدث في مثل هذا اليوم وووووووو <? echo "hlaa"; ?>
بس مافيها خطوره ؟؟ او مافيه كود للتاكد من الاوامر المنفذه
وحاولت اطبق بس طريقة وضع دالة eval في الكود خطا لان كود العرض عندي هذا
<TD class='style1' width='400' colspan='2' height='40'>$subgect</TD>
ولو فيه اخوي موضوع عن طريقة كتابة الاكواد اللي مثل كذا ياليت تضع رابطه ومشكور
تم تعديل هذه المشاركة بواسطة asd010 في 1 يوليو 2007 في 16:14
من ناحية الخطورة فهذا الأمر يعتبر خطر إذا كان هناك أشخاص غير موثوقين يدخلون بيانات إلى قاعدة البيانات أو أشخاص لا يعرفون بالضبط ما يتم إدخاله عن طريهم
eval تستخدم لقرائة محتويات string يعني تستفيد منها أثناء عرض البيانات وليس أثناء إدخالها
بالنسبة للخطأ اللذي حصلت عليه، أعطنا الخطأ وسنساعدك
بالتوفيق
عبدالله عيّاش كتب:من ناحية الخطورة فهذا الأمر يعتبر خطر إذا كان هناك أشخاص غير موثوقين يدخلون بيانات إلى قاعدة البيانات أو أشخاص لا يعرفون بالضبط ما يتم إدخاله عن طريهمeval تستخدم لقرائة محتويات string يعني تستفيد منها أثناء عرض البيانات وليس أثناء إدخالها
بالنسبة للخطأ اللذي حصلت عليه، أعطنا الخطأ وسنساعدك
بالتوفيق
طيب اخوي مافيه كود للتاكد من المدخلات مثل اللي بمنتدى في بي مثلا
اقتباسeval تستخدم لقرائة محتويات string يعني تستفيد منها أثناء عرض البيانات وليس أثناء إدخالها
يعني ماتنفع الطريقه اللي كتبتها ؟؟ مافيه مانع مثل ماتقول السكربت ينفذ بعد عرض البيانات eval
لكن لما اكتب خبر اضيف الكود في الاخير <? echo "hlaa"; ?>
حتى لما يتمرر على دالة eval تنفذه ؟؟
الان المشكله في وضع دالة eval في السكربت لانه عندي كذا العرض
<TD class='style1' width='400' colspan='2' height='40'>$subgect</TD>
طبقت اللي كتبه اخوي Maverick كذا وماظبطت
<TD class='style1' width='400' colspan='2' height='40'>eval("<td> <?=$subgect?></td>");</TD>
وجربت مع الغاء علامة الphp لان بداية كود عرض البيانات موجود عندي كذا
echo"<div align='center'>
<TD class='style1' width='400' colspan='2' height='40'>$subgect</TD>
الان كيف اضيف eval عليه
بالنسبة لآخر شي كتبته
echo"<div align='center'><TD class='style1' width='400' colspan='2' height='40'>$subgect</TD>
جرب أن تضعة كـ string بهذا الشكل
$subgect = "print me"; $my_string = "<div align='center'><TD class='style1' width='400' colspan='2' height='40'>$subgect</TD>";
ثم طبق عليه أمر eval:
$do_it = eval("echo\"".$my_string."\";");
echo $do_it;بالتوفيق
حاولت اخوي ماضبط معي وهذا الكود اللي استخدمه
echo"<div align='center'>
<style fprolloverstyle>A:hover {color: #008000}
</style>
<center>
<TABLE borderColor='#666666'>
<TR class='style1'>
<TD class='style1' width='450' colspan='2' height='40'>$name</TD>
</TR>
<TD class='style1' width='400' colspan='2' height='40'><p align='right'><font size='5'>$subgect</TD></font></p>
</TR>
</TABLE>
</center>
</div>";ياليت تتكرم وتساعدني
ليش ما تستخدم include وتسوي مثل تسذا
<?
include("news.htm");
?>وتحط ملف جديد اسمه news.htm او اي اسم تختاره انت وتسوي فيه مثل تسذا
<div align='center'>
<style fprolloverstyle>A:hover {color: #008000}
</style>
<center>
<TABLE borderColor='#666666'>
<TR class='style1'>
<TD class='style1' width='450' colspan='2' height='40'><?=$name?></TD>
</TR>
<TD class='style1' width='400' colspan='2' height='40'><p align='right'><font size='5'><?=$subgect?></TD></font></p>
</TR>
</TABLE>
</center>
</div><?=
اختصار لـ
<? echo
تم تعديل هذه المشاركة بواسطة RAZ_C@DE في 2 يوليو 2007 في 15:44
لا تضع أمر echo قبل النص المراد طباعته، استبدله بمتغير يحوي string مثال:
$my_variable = "<div align='center'>
<style fprolloverstyle>A:hover {color: #008000}
</style>
<center>
<TABLE borderColor='#666666'>
<TR class='style1'>
<TD class='style1' width='450' colspan='2' height='40'>$name</TD>
</TR>
<TD class='style1' width='400' colspan='2' height='40'><p align='right'><font size='5'>$subgect</TD></font></p>
</TR>
</TABLE>
</center>
</div>";بعدها تنفذ دالة eval كالتالي:
$do_it = eval("echo\"".$my_variable."\";");
echo $do_it;جربتها عندي وشغالة بشكل جيد
بالتوفيق
مشكور اخوي RAZ_C@DE لكن هذي تتعب وخطره
مشكور اخوي عبدالله عيّاش طبقت مثل ماقلت بالحرف الواحد وطلعت الصفحه تمام لكن ماطبع اي بيانات ؟؟؟
تفضل
$page_select = "SELECT * FROM news where $id=id ";
$page_query = mysql_query($page_select);
$page_result = mysql_fetch_array($page_query);
$my_variable = "<div align='center'>
<style fprolloverstyle>A:hover {color: #008000}
</style>
<center>
<TABLE borderColor='#666666'>
<TR class='style1'>
<TD class='style1' width='450' colspan='2' height='40'>$name</TD>
</TR>
<TD class='style1' width='400' colspan='2' height='40'><p align='right'><font size='5'>$subgect</TD></font></p>
</TR>
</TABLE>
</center>
</div>";
$do_it = eval("echo\"".$my_variable."\";");
echo $do_it;تم تعديل هذه المشاركة بواسطة asd010 في 6 يوليو 2007 في 14:02
أنا شايف المتغير name والمتغير subgect ليس لهم قيمة يتم تعويضها أثناء استخراج الكود
أعتقد والله أعلم أن المتغير name مسئول عن اخضار البيانات من العمود name وكذلك subgect لذى يتم تعريف المتغيرات بهذا الشكل:
$name = $page_result['name']; $subgect = $page_result['subgect'];
في هذه الحالة سيعمل معك الكود ولكن ما فيه أي داعي لدالة eval
نستخدم دالة eval عندما يكون هناك أوامر أو أجزاء من كود بي اتش بي داخل قاعدة البيانات نفسها
بمعنى، أنه لو كانت قيمة المتغير my_variable موجودة بداخل قاعدة البيانات، حتى أوضح لك سوف أعمل مثال:
$page_select = "SELECT * FROM news WHERE $id=id ";
$page_query = mysql_query($page_select);
$page_result = mysql_fetch_array($page_query);
$do_it = eval("echo\"".$page_result['contect']."\";");
echo $do_it;هذا المثال على افتراض طبعا أن كود الإتش تي إم إل مع أوامر البي اتش بي موجود داخل العمود content في جدول news
جوابي هذا طبعا يعتمد على فهمي للكود اللذي كتبته لأنه متغير my_variable خارج قاعدة البيانات لذلك سيكون الكود اللذي تحتاجة كالتالي:
$page_select = "SELECT * FROM news WHERE $id=id LIMIT 1";
$page_query = mysql_query($page_select);
$page_result = mysql_fetch_array($page_query);
echo "<div align='center'>
<style fprolloverstyle>A:hover {color: #008000}
</style>
<center>
<TABLE borderColor='#666666'>
<TR class='style1'>
<TD class='style1' width='450' colspan='2' height='40'>$page_result[name]</TD>
</TR>
<TD class='style1' width='400' colspan='2' height='40'><p align='right'><font size='5'>$page_result[subgect]</TD></font></p>
</TR>
</TABLE>
</center>
</div>";بالتوفيق وأرجو تصحيحي إذا كنت قد فهمت استفسارك بشكل غير اللذي أنت تقصده
ايه اخوي انا نقلت الاكواد حسب مو مكتوبه هنا ولا الكود شغال بس تنفيذ اكواد php مو شغال
وحتى اسهل مقصدي عندي ثلاث جداول عنوان وموضوع والثالث اضع به كود php
جربت هذا ومشتغل
$do_it = eval("echo\"".$page_result['phptable']."\";");
echo $do_it;
يعني الكود بالاخير كذا
$page_select = "SELECT * FROM news WHERE $id=id LIMIT 1";
$page_query = mysql_query($page_select);
$page_result = mysql_fetch_array($page_query);
echo "<div align='center'>
<style fprolloverstyle>A:hover {color: #008000}
</style>
<center>
<TABLE borderColor='#666666'>
<TR class='style1'>
<TD class='style1' width='450' colspan='2' height='40'>$page_result[name]</TD>
</TR>
<TD class='style1' width='400' colspan='2' height='40'><p align='right'><font size='5'>$page_result[subgect]</TD></font></p>
</TR>
</TABLE>
</center>
</div>";
$do_it = eval("echo\"".$page_result['phptable']."\";");
echo $do_it;لما افتح السورس القى كود php مثل ماهو
طيب الآن واضح وراح أثقل عليك شوي وأطلب منك لو تكرمت تعطيني الكود اللي حطيته داخل قاعدة البيانات إذا أمكن
بالتوفيق
عادي اخوي اي كود مثل كذا
العنوان name= خبر رقم 1
الموضوع subgect= الخبر هو الخ
phptable= اي كود مثل <? echo "hlaa"; ?> او تصويت
والحقوق كلها نوعها text
أزل علامات <? ?> من الكود
يعني لو أردت أن تظهر هذا الكود أو نتيجته:
<?php $name = 'ahmad'; echo $name; ?>
فتضعه في قاعدة البيانات بهذا الشكل
$name = 'ahmad'; print $name;
وتستخدم أمر eval بهذا الشكل:
eval($page_result['phptable']); echo $page_result['phptable'];
بالتوفيق
مشكوووور اخوي اشتغلت بس وقفت الصفحه عند تنفيذ الكود ؟؟ وهذا اللي استخدمته وين الغلط ؟؟
$page_select = "SELECT * FROM news WHERE $id=id LIMIT 1";
$page_query = mysql_query($page_select);
$page_result = mysql_fetch_array($page_query);
echo "<div align='center'>
<style fprolloverstyle>A:hover {color: #008000}
</style>
<center>
<TABLE borderColor='#666666'>
<TR class='style1'>
<TD class='style1' width='450' colspan='2' height='40'>$page_result[name]</TD>
</TR>
<TD class='style1' width='400' colspan='2' height='40'><p align='right'><font size='5'>$page_result[subgect]</TD></font></p>
</TR>
</TABLE>
</center>
</div>";
eval($page_result['phptable']);تم تعديل هذه المشاركة بواسطة asd010 في 7 يوليو 2007 في 18:10
عزيزي asd دائما أحتاج لأرى جزء أكبر من الكود علشان أقدر أساعدك أكثر
بما أن الجزء الظاهر عندي من الكود ينتهي بأمر eval فهو بالتأكيد سيكون آخر شيء يتم تنفيذه وإذا كان بعده أشياء أخرى ولم يتم تنفيذها فهذا يعتمد على الكود اللذي بداخل قاعدة البيانات، أي ماذا يوجد فيه؟ هذا اللذي أستطيع أقوله لك من خلال الأسطر اللتي وضعتها لكي أراها.
كبداية، عندي ملاحظة على أمر الاستعلام من قاعدة البيانات:
$page_select = "SELECT * FROM news WHERE $id=id LIMIT 1";
ألا يفترض أن المتغير يأتي بعد اسم الحقل؟ كهذا مثلا:
$page_select = "SELECT * FROM news WHERE id='$id' LIMIT 1";
بالتوفيق
تم تعديل هذه المشاركة بواسطة عبدالله عيّاش في 7 يوليو 2007 في 20:04
بالنسبه للملاحظه عادي اخوي جربتها
اما الكود هذا هو اخوي كله عدى الهيدر والفوتر
وكل اللي ابيه اني اقدر انفذ اكواد php مثل منتدى vb داخل الموضوع
واضيف ببرنامجي الاخبار تصويت مثلا او جلب صفحه حتى مايصير الكود php يطلع في كل المواضيع
هذا الموضوع مغلق.