PHP 部分:
$php = $_POST['php'];
//$php = "print \"hello world\";";
if ($php != null){
if (strlen($php) < 400){
echo $php;
eval($php);
//eval("print \"hello world\";");
}else die ("Evaluated Expression Exceeds Maximum Length");
}
LSL 部分:
string php = "print \"hello world\";";
ここで、コメントアウトされたビットを PHP に追加して、それが機能することを示しました。LSL スクリプトが PHP に送信すると、次のように返されます。
print \"hello world\"; -- this line is from, 'echo $php;'
<b>Parse error</b>: syntax error, unexpected '"', expecting identifier
(T_STRING) in <b>xxxxxx.php(141) : eval()'d code</b> on line <b>1</b><br />
-- this is the error.
これは、2 つのスクリプトがデータを送信する方法と関係があります。$php = $_POST['php'];と何か関係があるのではないかと思いました。$php = $_POST[php];に変更しました。結果に変化はありません。次に、print \"hello world\";を変更してみました。「こんにちは世界」を印刷します。次に、T_ENCAPSED_AND_WHITESPACE というエラーを返します。
ここでは完全なソースを提供しませんでした。問題があったセクションのみ。例の状態で提供されます。出力は、ソースに表示されている実際のエラー結果と同じです。lsl スクリプトと php には eval の使用が必要です。コードは両方によって動的に再構成され、相互に送信されます。基本的に、2 つに相互にコーディングする機能を提供します。これは、Second Life のゲーム用です。
したがって、必要なデータをスクリプトとの間でやり取りする実際の方法を誰かが知っている場合。私はいくつかのアドバイスを使用することができます。または、簡単なことを見逃した場合は、頭を叩きます。