Ich hab da ein Problem.
Mir werden bei diesem Gleichungslöserscript, was ich zusammengebastelt hab immer Fehler angezeigt.
Zum verzweifeln!
Kann mal jeman drüberschaun und die verbesserte version schreiben?
Wär nett.
Hier isses:
<?php
//Eingaben werden ausgelesen
$x1 = $_POST['x1'];
$y1 = $_POST['y1'];
$z1 = $_POST['z1'];
$x2 = $_POST['x2'];
$y2 = $_POST['y2'];
$z2 = $_POST['z2'];
$x3 = $_POST['x3'];
$y3 = $_POST['y3'];
$z2 = $_POST['y4'];
$e1 = $_POST['e1'];
$e2 = $_POST['e2'];
$e3 = $_POST['e3'];
//Überprüft ob jedes Feld eingegeben wurde
if (empty(($x1) or ($x2) or ($x3) or ($y) or ($y2) or ($y3) or ($z1) or ($z2) or ($z3) or ($e1) or ($e2) or ($e3))) {
echo "
";
}
//Leere Menge usw.
elseif((($x1 == $x2) and ($y1 == $y2) and ($z1 == $z2) and ($e1 == $e2)) or (($x1 == $x3) and ($y1 == $y3) and ($z1 == $z3) and ($e1 == $e3)) or (($x2 == $x3) and ($y2 == $y3) and ($z2 == $z3) and ($e2 == $e3))) {
echo "
Derda und danach kamen noch ganz viele ander mit T_String un ‘OR’ oder so
Parse error: syntax error, unexpected ‘(’, expecting T_STRING or T_VARIABLE or ‘$’ in /users/lassej/www/Gleichung/gleichung.php on line 20
Ich vermute mal, empty mußt du auf jede Variable einzeln
anwenden. Man beachte auch, daß empty auch bedeuten kann,
daß der Wert der Variable 0 ist, kann bei einem Gleichungssystem
ja durchaus passieren, mußt da vielleicht auch was ganz anderes
prüfen.
Ja ok wenn ich das tu sagt der Browser mir aber, dass was in line 23 nicht 0k is.
(line 27 auf diesem dokument)
Aber ich da meiner meinung nach alles richtig gemacht
Tut das hier wirklich not an der Stelle?: /-/
Und darf das dort stehen? (habe sowas zumindest noch nie
probiert).
Ansonsten hast du das mal mit einem Editor angesehen, der
den Quelltext für PHP bunt macht? Da kann man besser erkennen,
ob da irgendwo eine Klammerfehlerr oder sowas drinsteckt…
Ist sowas erlaubt?: $z1 == $z2 == $z3
Habe ich auch noch nie ausprobiert und wenn, was vergleicht
eigentlich der zweite Operator?
Also kann ja mal das /-/ wegmachen war nur ne notitz.
Die drei variablen werden miteinander verglichen.
Wenn zb alle drei 4 sind dann passiert irgenwas.
Ich kann aber auch mal was anderes versuchen
';
//Leere Menge usw.
if((($x1 == $x2) and ($y1 == $y2) and ($z1 == $z2) and ($e1 == $e2)) or (($x1 == $x3) and ($y1 == $y3) and ($z1 == $z3) and ($e1 == $e3)) or (($x2 == $x3) and ($y2 == $y3) and ($z2 == $z3) and ($e2 == $e3))) {
$leeremenge = '
Ich glaube, hoffmann hat recht. Ein Vergleich von mehreren Variablen geht wohl nicht
$y1 == $y2 == $y3
Ich habe soetwas jedenfalls noch nicht gesehen, und auch noch nift ausprobiert.
Hat denn irgendeiner Zeit mir das Ding zum laufen zu bringen.
Die html Datei dazu mit den input dingern ist im ordner lassej.bplaced.net/Gleichung/gleichung.html
Aber nich ausprobieren! Ist momentan noch nicht betriebsfähig
Also ($y1 == $y2 == $y3) soll sowas bedeuten wie folgendes?
(($y1 == $y2) AND ($y2 == $y3)) ?
Letzteres ist sicherlich eine Aussage, also entweder wahr oder
falsch, wie man das bei derartigen Konstruktionen wie if/elseif
braucht.
Ansonsten könnte obiges auch folgendes bedeuten:
(($y1 == $y2) == $y3) - da wäre dann aber $y3 immer wahr
oder falsch, ergibt also nur bei einer logischen Aussage einen
Sinn.
Wenn du ein einfaches Testskript schreibst, wo nur solch ein
einzelner Ausdruck vorkommt, bekommst du doch durch dies
Experiment sehr schnell heraus, ob oder wie das geht und vor
allem ob der Fehler daran hängt.
Etwas systematische Fehlersuche kannst du doch wohl machen,
bevor das andere Leute für dich tun sollen - das übt doch auch
;o)
Bei mir sagt er: ‘Bitte alle Felder ausfüllen!’ obwohl ich alle
Felder ausgefüllt habe, vermutlich hast du nicht wie oben
schon beschrieben berücksichtigt, daß empty auch beim Wert
0 wahr liefert ;o)
So kann man jedenfalls keine bereits diagonalisierten
Matrizen eingeben, wo man leicht im Kopf nachrechnen kann,
ob das Ergebnis stimmt, wenn irgendwo eine 0 steht, steigt das
Teil doch offenbar schon aus …
Wie gesagt ich bin ein php Anfänger!!! Ich versteh das noch nich!
Kannst du mir mal eben den Befehl (is ja nich viel arbeit) auf den Wert $x1 aus einem inputkasten zusammenstückeln?