[Code-Schnipsel] Meine ersten Schritte

mr.gamesbay

Mitglied
Ich hoffe mal es geht in Ordnung, wenn ich mal meine „sehr“ einfachen Anfänge hier rein Poste, vielleicht kann mir ja der eine oder andere Tipps geben, was besser zu machen ist.

So, dies ist erstes selbst geschriebenes Skript. Einige von euch dürften vielleicht gleich zum lachen anfangen, aber irgendwo muss ich ja anfangen ;)

Hier ein ganz einfacher Rechner, den HTML Teil habe ich rausgenommen.
PHP:
<?php
error_reporting(E_ALL);

// Prüfen ob überhaupt was übergeben worden ist
if ((isset($_POST["zahl_1"])) && (isset($_POST["zahl_2"]))){
// Hier werden die Daten mit Post über ein Form. übergeben
$zahl_1 = $_POST["zahl_1"];
$zahl_2 = $_POST["zahl_2"];
$auswahl = $_POST["auswahl"];

/*
echo gettype($zahl_1) . "<br>";
echo gettype($zahl_2) . "<br>";
*/

// Diese geht sicher einfacher, aber dies sind meine ersten Schritte :)

// Warum  die nächste Zeile nicht?
// if (!is_numeric($zahl_1 || $zahl_2))
if ((!is_numeric($zahl_1)) || (!is_numeric($zahl_2)))
{
	$ausgabe =  "Bitte Zahlen eingeben";
}
elseif ($auswahl == "Addieren")
{
	$erg_1 = $zahl_1 + $zahl_2;
	$ausgabe = "Das Ergebnis ist: " . $zahl_1 . " + " . $zahl_2 . " = " . $erg_1 ;
}
elseif ($auswahl == "Subtrahieren")
{
	$erg_2 = $zahl_1 - $zahl_2;
	$ausgabe = "Das Ergebnis ist: " . $zahl_1 . " - " . $zahl_2 . " = " . $erg_2 ;
}
elseif ($auswahl == "Multiplizieren")
{
	if ($zahl_2 == 0)
	{
	$ausgabe = "Du kannst eine Zahl nicht mit 0 Multiplizieren!";
	}
	else
	{
	$erg_3 = $zahl_1 * $zahl_2;
	$ausgabe = "Das Ergebnis ist: " . $zahl_1 . " * " . $zahl_2 . " = " . $erg_3 ;
	}
}
elseif ($auswahl == "Dividieren")
{
	if ($zahl_2 == 0)
	{
	$ausgabe = "Du kannst eine Zahl nicht mit 0 Dividieren!";
	}
	else
	{
	$erg_4 = $zahl_1 / $zahl_2;
	$ausgabe = "Das Ergebnis ist: " . $zahl_1 . " / " . $zahl_2 . " = " . $erg_4 ;
	}
}
else
	 $ausgabe = "Irgendwas ist schief gelaufen ;)";

}

?>
<--- HTML START --->
<?php
if (isset($ausgabe)) {
echo $ausgabe;
}
else
echo "Bitte Zahlen eingeben";
?>
<--- HTML ENDE --->

Einige Fragen dazu:
Diese Zeile in PHP macht nicht das was ich denke, geht dies nur wie in der langen Version die ich dann im Script benutz habe?
PHP:
if (!is_numeric($zahl_1 || $zahl_2))

Gibt es die Funktion "$PHP_SELF" im 5er, oder wie rufe ich eine Seite selber auf?
Ich habe dies so gemacht:
Code:
<form method="post">
ohne irgendwas anzugeben.

Was mich wundert, warum werden die Daten als String übergeben (über das Form.) wenn es Nummern (INT) sind?

Hier das Script in Aktion:
http://myphp.gamesbay.de/easy_rechner.php

Morgen werde ich es umschreiben und die Sache mit switch/case und Funktionen lauffähig machen ;)
 
Zuletzt bearbeitet:
Um das Script selbst aufzurufen, schreibe in den Form-Tag bei action: action="<? echo $_SERVER['PHP_SELF']; ?>".
 
Hi gamesbay,

die Zeile if (!is_numeric($zahl_1 || $zahl_2)) macht aus dem grund nicht das was zu willst, weil der Ausdruck $zahl_1 || $zahl_2 dir einen boolean zurückliefert. Dadurch wird die Funktion if(!is_numeric(boolean)) immer zu !false => true ausgewertet. Eine kürzere Schreibweise gibt es nicht.

shockshell
 
Zurück