PHP часть:Проблема с LSL в 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.
И это что-то делать с тем, как два сценарии отправки данных. Я думал, может быть, что-то связано с $ php = $ _POST ['php']; поэтому изменил его на $ php = $ _POST [php]; Без изменений. Затем я попытался изменить печать \ "привет мир \"; - печать 'hello world'; Затем он просто возвращает ошибку: T_ENCAPSED_AND_WHITESPACE.
Я не поставлял полный источник здесь. Только раздел, в котором возникла проблема. Он поставляется в состоянии примера. Результат такой же, как и фактический результат ошибки, который наблюдается в источнике. Использование eval требуется для сценария lsl и php. При этом код динамически реконфигурируется обоими и отправляется друг другу. По сути, эти две возможности кодировать друг друга. Это для игры в Second Life.
Так что если кто-то знает о фактическом способе передачи необходимых данных в сценарии и из них. Я мог бы посоветовать. Или удар в голове, если я пропустил что-то простое.
Попробуйте направить вместо этого: "печать " привет мир ";" или используйте 'htmlspecialchars' для кодирования строки перед отправкой. – alfasin
Отключите magic_quotes. – mario
Данные отправляются из сценария LSL (Second Life) <> PHP, затем обратно <> LSL. В этом порядке, который будет постоянной цепью. Как показано выше, LSL для PHP правильно собирает экранированную строку и эхо: print \ "hello world \"; Какой из LSL был: print \ "hello world \" ;. Таким образом, оба сценария аналогичным образом видят одни и те же данные. Хотя на eval это ошибки. Использование вашего первого предложения аналогично экранированию данных перед отправкой. Как это уже делается из LSL. Второе никогда не может быть сделано, поскольку LSL для PHP не понимает htmlspecialchars. Если это был PHP для LSL, да. Это не порядок. – Esoterica