
Je suis débutant en PHP, et après quelques essais concluants, je me suis mis à rechercher un script pour résoudre une équation 
Voici celui que j ai trouvé sur un site Anglais:
<?php // solve equation
function solve($eq) {
$eq = str_replace(´ ´, ´´, $eq);
// validate expression
$terms = explode(´=´, $eq);
if (count($terms) != 2) {
return(´syntax error: you must have one (and only one) "=" in [´
. $eq . ´].´);
}
// put rhs in lhs
$eq = $terms[0] . ´-(´ . $terms[1] . ´)´;
if (substr_count($eq, ´(´) != substr_count($eq, ´)´)) {
return(´syntax error: parenthesis mismatch in [´ . $eq . ´].´);
}
if (preg_match(´/\([^)]*\(/´, $eq)) {
return(´syntax error: only one level of parenthesis allowed in [´
. $eq . ´].´);
}
if (preg_match(´/[^x0-9+*\/().=-]/´, $eq)) {
return(´syntax error: the only valid characters are x, 0-9, +, ´
. ´*, /, (, ), ., and - in [´ . $eq . ´]´);
}
if (preg_match(´/[^x0-9\)][-+\/*]/´, $eq)) {
return(´syntax error: you can only operate on numbers in [´
. $eq . ´]´);
}
if (preg_match(´/[-+\/*][^x0-9\(]/´, $eq)) {
return(´syntax error: you can only operate on numbers in [´
. $eq . ´]´);
}
$eq = str_replace(´x´, ´$x´, $eq);
$y0 = $y1 = 0;
$x = 0; eval(´$y0 = ´ . $eq . ´;´);
$x = 1; eval(´$y1 = ´ . $eq . ´;´);
$slope = $y1 - $y0;
$intersect = $y0;
return (- ($intersect / $slope));
}
$eq = ´2 * (x + 4) = 10´;
echo $eq, ´ ==> x = ´, solve($eq), ´<br />´;
$eq = ´(2 * x) + 4 = 10´;
echo $eq, ´ ==> x = ´, solve($eq), ´<br />´;
$eq = ´2 * x + 4 = 10´;
echo $eq, ´ ==> x = ´, solve($eq), ´<br />´;
$eq = ´4 + x / 10 = 2´;
echo $eq, ´ ==> x = ´, solve($eq), ´<br />´;
?>
J´ai donc créer un fichier .html pour pouvoir faire un formulaire où je pourrais écrire l´équation à résoudre. Voici ce que j ai fait:
<form action="equation.php" method="post">
<input type="text" name="ok">
<input type="submit" value="go">
J´ai donc écrit en haut de mon .php:
$ok = $_POST[´ok´];
Puis tout en bas, j´ai écrit:
$eq = ´$ok´;
echo $eq, ´ ==> x = ´, solve($eq), ´<br />´;
Mais ça n´a pas marché, le script n´a pas "compris" et m´a répondu que $ok n´étaient pas des caractères valables...
Alors j´ai aussi essayé d´écrire:
$eq = $ok;
echo $eq, ´ ==> x = ´, solve($eq), ´<br />´;
Mais là... même problème!
Alors je vous demande votre aide ^^ je sais je suis un n00b
et mon erreur est peut être plus grosse qu´une maison! 
Mais je vous remercie d´avance de vos réponses 
