If ,( ,{ oder anderes problem!

function set_var(&$var)
{
  $var=preg_replace("/[^0-9]*/i", "",$var);
  if(empty($var))
     $var=0;
}

einfach auf alle Feldvariablen anwenden…

set_var($a);

das macht folgendes:
1.) Alle nichtnummerischen Zeichen entfernen
2.) Wenn der es leer ist, einfach auf 0 setzen (das darf man ja)

Danke!!!
Ich probiers aus! :hail:

So´n mist! Ich will dass die Rechenoperation automatisch aubgebrochen wird wenn $var=0 (also Feld leer is) ist.
Geht aber irgendwie nich!
Hier ist der Quellext:

<?php //Eingaben werden ausgelesen $x1 = $_POST['x1']; $x2 = $_POST['x2']; $x3 = $_POST['x3']; $y1 = $_POST['y1']; $y2 = $_POST['y2']; $y3 = $_POST['y3']; $z1 = $_POST['z1']; $z2 = $_POST['z2']; $z3 = $_POST['z3']; $e1 = $_POST['e1']; $e2 = $_POST['e2']; $e3 = $_POST['e3']; //Sind die Felder ausgefüllt? Wenn ja weiter zu Außnahmen. Wenn nicht Variable $neu aktiviert (Neue Eingabe). Danach wird auf allgemeingültig- und/oder unlösbarkeit geprüft. set_var($x1); set_var($x2); set_var($x3); set_var($y1); set_var($y2); set_var($y3); set_var($z1); set_var($z2); set_var($z3); set_var($e1); set_var($e2); set_var($e3); function set_var(&$var) { $var=preg_replace("/[^0-9]*/i", "",$var); if(empty($var)) $var=0 ; } if ($var == "0") { echo "
Bitte alle Felder ausfüllen!
Für Neueingabe Hier klicken!"; } 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 "
IL = {}
Das Ergebnis ist allgemeingültig!
Für Neueingabe Hier klicken.
"; } elseif ((($x1 == $x2) and ($y1 == $y2) and ($z1 == $z2)) or (($x1 == $x3) and ($y1 == $y3) and ($z1 == $z3)) or (($x2 == $x3) and ($y2 == $y3) and ($z2 == $z3)) or (($x1 == $x2) and ($x1 == $x3) and ($y1 == $y2) and ($y1 == $y3)) or (($z1 == $z2) and ($z1 == $z3) and ($y1 == $y2) and ($y1 == $y3)) or (($z1 == $z2) and ($z1 == $z3) and ($x1 == $x2) and ($x1 == $x3))) { echo "
Die Aufgabe ist unlösbar!
Für Neueingabe Hier klicken.
"; } else { //11-Reihe $x11 = $x1 * $x2 - $x2 * $x1; $y11 = $y1 * $x2 - $y2 * $x1; $z11 = $z1 * $x2 - $z2 * $x1; $e11 = $e1 * $x2 - $e2 * $x1; //21-Reihe $x21 = $x2 * $x3 - $x3 * $x2; $y21 = $y2 * $x3 - $y3 * $x2; $z21 = $z2 * $x3 - $z3 * $x2; $e21 = $e2 * $x3 - $e3 * $x2; //22-Reihe $x22 = $x11 * $y21 - $x21 * $y11; $y22 = $y11 * $y21 - $y21 * $y11; $z22 = $z11 * $y21 - $z21 * $y11; $e22 = $e11 * $y21 - $e21 * $y11; //Ausrechnung von Unbekannter 'Z' $zend = $e22 / $z22; //Ausrechnung von Unbekannter 'Y' $yend = ($e21 - $z21 * $zend) / $y21; //Ausrechnung von Unbekannter 'X' $xend = ($e1 - $y1 * $yend - $z1 * $end) / $x1; echo "
IL = {(X/Y/Z)|$xend/$yend/$zend)}
Für Neueingabe Hier klicken.
"; } ?>

meine Funktion macht ja das:

ich glaube davon kann man gut ausgehen…

außerdem gibt es nach der Funktion kein $var mehr…

PS: Iwie ist dein Code enorm unsauber… ich versuche gerade deinen Code auf belibig viele unbekannte auszubauen…so weit bin ich (ungetestet)

<?php

function set_var(&$var, $key, &$empty)
{
	$var=preg_replace("/[^0-9]*/i", "",$var);
	if(!$var)
	{
		$empty=true;
		$var=0;
	}
}

function make_pair($count)
{
	$array=array();
	for($i=0; $i<$count; $i++)
		for($j=$i; $j<$count; $j++)
			$array[]=array($i, $j);
	return $array;
}

function check_vars($array)
{
	$temp1=array_keys($array);
	$temp2=make_pair(count($array));
	
	foreach($temp1 as $n)
	{
		$abort=0;
		foreach($temp2 as $i)
			if($array[$n][$i[0]]==$array[$n][$i[1]])
				$abort++;
		$abort-=count($array)-2;
		if($abort>0)
			return $abort;
	}
	return 0;
}

$vars = array(
	"x" => array($_POST['x1'], $_POST['x2'], $_POST['x3']),
	"y" => array($_POST['y1'], $_POST['y2'], $_POST['y3']),
	"z" => array($_POST['z1'], $_POST['z2'], $_POST['z3']),
	"e" => array($_POST['e1'], $_POST['e2'], $_POST['e3'])
	);

$empty=false;

array_walk_recursive($vars, "set_var",$empty);

if ($empty) 
	echo "<div align=\"center\"><span style=\"color:red;\">Nicht alle Felder ausgefüllt, 0 wurde angenommen</span></div>";

$check=check_vars($vars);

if ($check==2)
	echo "<div align=\"center\"><span style=\"color:orange;\">IL = {}<br>Das Ergebnis ist allgemeingültig!</span></div><div align=\"center\">Für Neueingabe <a href=\"javascript:history.back();\">Hier</a> klicken.</div>";
elseif ($check==2)
	echo "<div align=\"center\"><span style=\"color:red;\">Die Aufgabe ist unlösbar!</span></div><div align=\"center\">Für Neueingabe <a href=\"javascript:history.back();\">Hier</a> klicken.</div>";
else {
	//Naja, fehlt noch :S
	}
	

Danke!!!
Nicht vergessen es geht hier um den Gauschalgorithmaus.
Krieg ich´n das verbesserte Script?

wenn du willst…musst hald deinen Algo noch für ein Array umschreiben :wink:

:morgen: