Нужна помощь с php

[Удален]
401

Привет всем! как сформировать из поля (POST) значение переменной?)

т.е есть поле для ввода, туда по идеи должна вписываться функция, например - row ($x,2)+sin(x)+$x*5

потом эту функцию надо использовать в коде что бы получить минимум или максимум...

Пробывал eval (); - не получается, $x формирует а вот математические операции как текст ...

Понятно объяснил?)

ЗАРАНЕЕ СПАСИБО!)

[Удален]
#1
lex7310:
Привет всем! как сформировать из поля (POST) значение переменной?)

т.е есть поле для ввода, туда по идеи должна вписываться функция, например - row ($x,2)+sin(x)+$x*5
потом эту функцию надо использовать в коде что бы получить минимум или максимум...

Пробывал eval (); - не получается, $x формирует а вот математические операции как текст ...

Понятно объяснил?)

ЗАРАНЕЕ СПАСИБО!)

<form name="form1" method="post" action="">

<input type="text" name="per"><input type="submit" name="Submit" value="Submit">
</form>
<?
$x=$_POST['per'];
$a=sin($x)+$x*5;
echo $a;
?>

так работает, только непонятно тчо у вас за функция row ? и еще переменна в синус не передается, потому что аргумент не переменная,а строка

FeoOne
На сайте с 27.12.2008
Offline
32
#2
Пробывал eval (); - не получается, $x формирует а вот математические операции как текст ...

eval выполняет команды шелла, а не пхп

[Удален]
#3

row ($x,2) - возводит в степень...

Soulwest, нет просто, фунцию должен вводит пользователь, она всегда разная, надо сделать так что бы интерпритатор понимал введеную формулу...

[Удален]
#4
lex7310:
row ($x,2) - возводит в степень...
Soulwest, нет просто, фунцию должен вводит пользователь, она всегда разная, надо сделать так что бы интерпритатор понимал введеную формулу...

эээ, не row, а pow возводит в степень.

а по теме, попробуйте распасивать входяшую строку


<form name="form1" method="post" action="">
<input type="text" name="per"><input type="submit" name="Submit" value="Submit">
</form>
<?
$a=$_POST['per'];
if (preg_match_all('~sin\((.*?)\)~',$a,$mass))
{
//echo 'aaa';
for ($i=0;$i<count($mass[0]);$i++)
{
$count=sin($mass[1][$i]);
//echo $count;
$a=preg_replace('~sin\('.$mass[1][$i].'\)~',$count,$a);
}
}

$words = preg_split( '/\+/', $a, -1, PREG_SPLIT_NO_EMPTY );
foreach ( $words as $key => $value ) {
$all+=$value;
}
echo $all;
?>

этот пример находит синусы и складывает их, остальное думаю сам допишешь

BrokenBrake
На сайте с 03.03.2007
Offline
194
#5
Запомните, что передаваемая строка обязана быть правильным кодом PHP, включая окончание операторов точкой с запятой, чтобы разборщик не отвалил на строке после eval(), и правильное escap-ирование в code_str.

http://php.su/functions/?eval

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий