+1 ovoz
453 ko'rilgan 1 1
Men php redaktorni noldan yozib chiqishga qaror qildim. (Zerikkanimdan). Hamma kodlarni yozib chiqdim, Dizayn ham bo'ladi.  Ammo redaktorimda yetishmaydigan qism topdim. Redaktorda hamma ham to'g'ri kod yoza olmaydi. Agar php syntax bo'yicha yozmasa sayt qotib qoladi, yani o'sha xato strok (qator)gacha bo'lgan kodlarni o'qiydi, qolganini esa yo'q.
------------------------------------------
<?php
$file = 'EditorExamplePage";
if (isset($_POST['codeFromEditor'])) {
        file_put_contents($file, $_POST['codeFromEditor']);
}
?>
<html>
Bu yerda form
</html>
<?php
include $file;
?>   
------------------------------------------
Mening kodimning asosiy qismi shundan iborat edi.
 ini_set('display_errors', 1); orqali ko'rsa bo'ladi. Menda ideya keldi. Ya'ni foydalanuvchi tomonidan kiritilgan kodda xato bo'lsa include ishlamasdan boshqa bir masalan echo 'Sizning kodingizda xato bor" degan kod yozmoqchi bo'ldim.

if(! ini_set('display_errors', 1)) yoki if(empty(ini_set('display_errors', 1))) yoki  if(isset(ini_set('display_errors', 1))){
 include $file;
}else{
 echo 'Sizning kodingizda xato bor";
}

Ammo bu kod to'g'ri kelmayapti. Kimda qanaqa fikr bor?
Asosiy maqsad $file da php xato bo'lmasa include $file; ishlashi kerak agar $file ni ichida xato bo'lsa echo 'Sizning kodingizda xato bor'; ishlashi kerak;
Bu mavzu Dasturlash bo'limida | 453 ko'rilgan

1 Javob

0 ovoz
Eng zo'r javob
0
https://www.php.net/manual/ru/language.exceptions.php
shu yerga kiring va docni o`qing. inputga kiritilgan kodni to`g`ridan to`g`ri ishlatayapgan bo`lsangiz try catch exeptionni ishlating.

belgilash
+1
try{} catch($e){} finaly{}
0
------------------------------------------
$file = '1.php';

function test($filename) {
    try {
        include $filename;
        throw new Exception();
    } catch (Exception $e) {
        return 'catch';
    } finally {
        return ' ';
    }
}

echo test($file);
--------------------------------------------
Siz aytgandek qildim, hozirgi namunaviy kodga qarasak agar 1.php da xato bo'lsa umuman hech narsa ko'rsatmas ekan, agar 1.php da xato bo'lmasa include ishlayapti. Shu yerga men if ni qo'sha olmadim. Yani 1.php da xato bo'lsa 'Sizning kodingizda xato bor' shunga o'xshash gapni ko'rsatadigan qilib, exception va getExceptionni ishlatib ko'rdim foyda bermadi
+1
catch blokni ichida tashqi birorta global ozgaruvchiga nimadir yozib qoying. message deb masalan. yoki funksiya ishlating birorta. usha xato chiqganda catchda boshqarasiz

O'xshash savollar

+12 ovoz
6 javob
+14 ovoz
1 javob
Kodirjonov Bu mavzu Kompyuter bo'limida 27 Apr, 18 savol berdi | 762 ko'rilgan
+2 ovoz
0 javob
Funny Bu mavzu Dasturlash bo'limida 06 Sen, 19 savol berdi | 241 ko'rilgan
+6 ovoz
0 javob
Uzbek_hacker_king Bu mavzu Dasturlash bo'limida 29 Avg, 18 savol berdi | 289 ko'rilgan
+8 ovoz
2 javob
saylaw94 Bu mavzu Dasturlash bo'limida 14 Iyun, 18 savol berdi | 740 ko'rilgan