Hallo Leute, ich hab ein kleines Problem und zwar sollten wir in der Schule einen Dezimal zu Binär (und umgekehrt) Rechner mit PHP programmieren, lief auch soweit. Ich hab nur ein kleines Problem und zwar am Anfang des Script wird immer sofort der "else" Wert ausgegeben (Fehlermeldung) , ich weiß auch warum, weiß allerdings nicht wie ich es beheben soll 
Hoffe mir kein einer Helfen, denn ich Sitz auf der Leitung 
MfG Junkyy

PHP-Code:
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="post">
<h1>Umrechner</h1>
Dezimalzahl eingeben <input type="text" name="DATA_decimal" value="<?php if(isset($_POST['BUTTON_convert_decimal'])) {echo $_POST["DATA_decimal"] ;} ?>"><button name="BUTTON_convert_decimal">Convert to BIN</button><br>
Binärzahl eingeben <input type="text" name="DATA_binary" value="<?php if(isset($_POST['BUTTON_convert_binary'])) {echo $_POST["DATA_binary"] ;} ?>"><button name="BUTTON_convert_binary">Convert to DEC</button><br>
<?php if(isset($_POST['BUTTON_convert_decimal']) && dec_to_bin($_POST["DATA_decimal"])!=false) {echo "Dezimal in Binär: " . $_POST["DATA_decimal"] . " = " . dec_to_bin($_POST["DATA_decimal"]) ; } else{ echo "<h2>Please type only numbers in!</h2>";} ?>
<?php if(isset($_POST['BUTTON_convert_binary']) && bin_to_dec($_POST["DATA_binary"])!=false){ echo "Binär in Dezimal: " . $_POST["DATA_binary"] . " = " . bin_to_dec($_POST["DATA_binary"]) ; } else { echo "<h2>Please type a binary number in!</h2>";} ?>
</form>
<?php
//Umrechnen von Dezimal in Binär
//Input: die Dezimal zahl
//Output: Binäre Zahl
function dec_to_bin($dezimal)
{
//schauen ob nur Zahlen vorhanden sind und ob es groesser als 0 ist
if (!is_numeric($dezimal) || $dezimal < 0)
{
return false;
}
$binary = array();
// Solange dividieren bis $dezimal 0 ergibt
while($dezimal > 0)
{
// Array mit dem "Rest" auffüllen
array_push($binary, $dezimal % 2);
// rundet ab (ganze Zahl)
$dezimal = floor($dezimal / 2);
}
// Array umdrehen
$binary = array_reverse($binary);
// Ausgabe der Dezimalzahl in Binär
for($i=0;$i<count($binary);$i++)
{
$binary[$i];
}
$string = implode('',$binary);
return $string;
}
//Umrechnen von Binär in Dezimal
//Input: die Binäre Zahl
//Output: Dezimalzahl
function bin_to_dec($binary)
{
$decimal = 0;
//dreht den string um
$binary = strrev($binary);
//schauen ob nur 1 und 0 enthalten ist
if (!preg_match('/^[0-1]*$/', $binary))
{
return false;
}
// Eine Schleife um zu schauen wie lang der string ist.
for($i=0; $i<strlen($binary); $i++)
{
// 1 oder. 0 aus der Variable herausnehmen
$binary_2 = substr($binary, $i, 1);
// Potenz wird multipliziert
$decimal += $binary_2 * (pow(2, $i));
}
// Rückgabe des Werts
return $decimal;
}
?>

MfG Junkyy
Kommentar