検証0
$str0 = "echo 'マンモス'; ";
eval($str0);
マンモス検証1
eval実行する文字列にPHPコードやHTMLコードが混在している場合。
$str = "動物名:<?php echo 'アフリカゾウ'; ?><hr>";
eval(' ?>'.$str.'<?php ');
動物名:アフリカゾウ検証2
evalの外で宣言している変数をeval内で実行する
$animal_name= 'インド象';
$str2 = "動物名:<?php echo ¥$animal_name; ?><br>";
eval(' ?>'.$str2.'<?php ');
動物名:インド象検証2.1
evalで実行する文字列を「"」で括った場合と、「'」で括った場合を検証する。
$animal_name= 'インド象';
$str2 = "動物名:<?php echo ¥$animal_name; ?><br>";
eval(' ?>'.$str2.'<?php ');
$str2 = '動物名:<?php echo $animal_name; ?><hr>';
eval(' ?>'.$str2.'<?php ');
動物名:インド象検証3
eval内で宣言されている変数を、eval外で参照してみる。
$str3 = "<?php ¥$nauman='ナウマンゾウ<hr>'; ?>";
eval(' ?>'.$str3.'<?php ');
echo $nauman;
ナウマンゾウ検証4
eval内でエラーが起きたときのエラー情報をキャッチする。
<?php
$str4 = "
<?php
¥$a='大きな';
¥$b='ゾウは';
¥$c= 10 / 0; // ワザとエラーにする。
¥$d='m あります。';
echo ¥$a . ¥$b . ¥$c . ¥$d;
?>
";
echo $str4;
$response = @eval(' ?>'.$str4.'<?php ');
if (error_get_last()){
echo '<div style="color:red">eval内のエラーです<br>';
print_r(error_get_last());
echo '</div>';
}
?>
大きなゾウはINFm あります。