PHP submit button funktioniert nicht?
Ich habe für ein Schul Projekt eine Seite gebaut auf der man währungen umrechnen kann. Ich habe dafür Zwei Boxen wo man einmal in euro und einmal von euro umrechnen kann. Für eine Box funktioniert der submit button, aber nur wenn in allen feldern was geschrieben ist. Der in der 2. Box wo man von euro umrechnet funktioniert der submit button garnicht, da bekomme ich diese fehlermeldung:
Fatal error: Uncaught TypeError: Unsupported operand types: string * float in C:\xampp\htdocs\p5.php:8 Stack trace: #0 {main} thrown in C:\xampp\htdocs\p5.php on line 8
So wie auf dem Bild funktioniert es, aber nur wenn ich alle felder fülle. Es soll aber auch gehen wenn ich mal nur von euro umrechnen will.
poste deinen code , gerne über pastebin.com und dann den link hier rein . dann können wir auch helfen .
3 Antworten
Ist doch logisch die Fehlermeldung
Du versuchst mit Strings zu rechnen.
Strings sind Text.
Aber in meinen variablen us, irak, turk, us2, irak2 und turk2 sind es ja alles * zahlen
Eigentlich ist PHP eine sehr schwach typisierte Sprache, im Gegensatz zu anderen Sprachen wie C. In PHP8 hat man das allerdings geändert, was auch recht sinnvoll ist, die Datentypen nicht zu vermischen.
https://php.watch/versions/8.0/internal-function-exceptions
Aber das wird dich alles nicht interessieren. Du willst den Fehler wegkriegen.
https://www.geeksforgeeks.org/how-to-convert-string-to-float-in-php/
Lese dir das durch.
moin es gibt daten typen , auch bei PHP
vom Formular erhälst du erstmal nur textketten = strings
um damit zu rechnen dürfen es aber keine zeichen sein , sondern werte
somit musst du die zeichen erstmal umwandeln .
parse Float bei kommazahlen (achtung es werden nur punkte in der programmierung verwendet ) oder parse Int bei ganzzahlen .
in PHP nennt sich das parsen eines dezimal wertes floatval
$zeichenkette = str_replace(",",".",$_POST["wert1"]);
$dezimalwert = floatval($zeichenkette);
oder in einem
$dezimalwert = floatval(str_replace(",",".",$_POST["wert1"]));
willst du das der benutzer komma statt punkt schreibt muss du das komma erstmal uimwandeln
if(isset($_POST['senden']) )
{
$wert1=floatval(str_replace(",",".",$_POST["wert1"]));
$wert2=floatval(str_replace(",",".",$_POST["wert2"]));
funktioniert nicht ist rinr aussage und keine nachfrage, bitte fang hier nicht an dumme nachfragen zu stellen .
zu einer fehlerbeschreibung gehört der CODE und die FEHLERMELDUNG
danke .
und ich hab nirgends erwähnt das du das so kopieren sollst .
lesen verstehen und mal korrekte nachfragen stellen .
copy paste ohne denken machen nur idioten , die sollten allerdings nciht programmieren . für die gibts tiktok videos gucken .
Ich hatte dieses Thema in der Schule halt noch nicht und das wird von mir auch nicht erwartet.
So wie ich es jetzt von dir verstanden habe wird "*" als zeichen und nicht als wert gesehen und den muss ich jetzt so umwandeln, dass er als wert gesehen wird und ich mit dem dann rechnen kann.
ich wiederhole mich ungerne, das hat auch nichts mit deiner ausrede "das hatten wir noch nicht" zu tun .
ich möchte eine konkrete fehlermeldung mit code hier sehen und nicht eine aussage "geht nicht" , damit schaffst du keine basis die man lösen kann .
ich bin doch nciht für deine soziale kompetenz zuständig . jedes kleinkind weiss wie man fragen stellt . zeig das problem und beschreibt das problem .
mal so rein kopiert aber es funktioniert immernoch nicht