WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » $_GET Variablen übergeben. » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von subjective
Besser
von kpu666
hi nochma,

so klappts dann mit den Cases:

<?php
$op = $_GET['optn'];
$zahl1 = $_GET['zahl1'];
$zahl2 = $_GET['zahl2'];
switch ($op) {

case "+":
$erg = $zahl1+$zahl2;
echo $erg;
break;

case "-":
$erg = $zahl1-$zahl2;
echo $erg;
break;

case "*":
$erg = $zahl1*$zahl2;
echo $erg;
break;

case "/":
$erg = $zahl1/$wert2;
echo $erg;
break;
}
?>

Den anderen Mist braucht Ihr nicht mehr zu beantworten:

eval() liest strings als Code und braucht Reihenfolge um zu operieren.

zB +0 1 ist für php keine vernünftige Rechnung und daher wird das verworfen.

Der Operator muss ja dann hier in der Mitte notiert sein.

richtig?

gruese


von kpu666
hi,

ich hab das eh noch nicht richtig verstanden.

kannste mir die beiden Zeilen nochma erklären?

$erg=eval("return($zahl1 $op $zahl2);");
echo $zahl1.$op.$zahl2." = ".$erg;

Was macht return da? Woher weiss eval, welche Variable ($zahl1 $op $zahl2) als PHP Code/Operator zu interpretieren ist?

echo $zahl1.$op.$zahl2." = ".$erg;

Ist das erst die Rechnung? Und sagt die "$erg=eval("return($zahl1 $op $zahl2);");" -Zeile NUR, das in diesen Feldern ($zahl1 $op $zahl2) mögliche Operatoren versteckt sind?

Ich hatte das mit eval() richtig geschrieben, aber leider nicht verstanden. :o)

Danke schon im Voraus

karna

von subjective
Klasse und schon kann ich beliebigen PHP-Code über das Script ausführen. Mit eval() muss man extrem vorsichtig sein.

Besser Wäre es, wenn du zum einen die beiden Werte prüfst und eventuell zwangsweise in Zahlen konvertierst und zum anderen den Operator mit einem "switch" abfragst und die Operationen einzeln im Quellcode schreibst. Somit wird eval() überflüssig.
von kpu666
So klabbet, wenn die GET Variblen aus der Form auch so heissen:

[code
<html>
<head>
<title>Rechnung</title>
</head>
<body>
<?php
$op = $_GET['optn'];
$zahl1 = $_GET['zahl1'];
$zahl2 = $_GET['zahl2'];
$erg=eval("return($zahl1 $op $zahl2);");
echo $zahl1.$op.$zahl2." = ".$erg;
?>
</body>
</html>
[/code]

Nach oben