Online-Rechner – PHP, HTML usw.

      Online-Rechner – PHP, HTML usw.

      Guten Tag, miteinander.

      Seit gut 2 Wochen bastele ich an einer Seite (Teil meiner Website) für Berechnungen von Daten feuchter Luft.

      Der Web-Auftritt ist von einem Profi erstellt, an dieser Seite bastle ich aber allein. Bisher konnte ich nur mit simplen HTML-Befehlen innerhalb meines CMS die Texte strukturieren.
      Nun habe ich angefangen, PHP und etwas mehr HTML zu lernen. Da das Projekt sehr komplex ist, gibt es viele Stolpersteine und Sackgassen. Natürlich habe ich ein Buch dazu und lese auch ausführlich entsprechende Seiten im Netz, manchmal komme ich trotzdem nicht weiter. Das Debugging ist sehr mühsam.

      Vielleicht gibt es hier Fachleute. Wie spreche ich eine Eingabevariable richtig an?

      PHP-Quellcode

      1. <?php
      2. $name_p = array("p1", "p2");
      3. ...
      4. $a=$_POST["p1"] //sind diese beiden Zeilen
      5. $a=$_POST[$name_p[0]] // gleichwertig? funktioniert die zweite überhaupt?
      6. ?>


      Gruß, Günter
      Hallo Heimfried,

      zu wenig Informationen über Dein Vorhaben. Ich denke mir mal das Du per POST übermittelte Variablen welche aus einem Formular kommen, weiter verarbeiten möchtest?
      Dein Quelltext weiß erst einmal nicht das $name_p ein Array ist. Dieses mußt Du erst einmal mit $name_p = array(); deklarieren.
      Oder möchtest Du aus diesem Array Daten per POST übermitteln?

      Schau Dir mal den Befehl "isset" an.

      PHP-Quellcode

      1. <?php
      2. if(isset($_POST['deine Variable']))
      3. {
      4. echo "was Du willst";
      5. }
      6. else
      7. {
      8. echo "was Du nicht willst";
      9. }
      10. ?>


      der Befehl sagt Dir ja schon " Is set" die per POST übermittelte Variable, mache "was Du willst" sonst mache "was Du nicht willst"

      Grüße,
      Torsten

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „torstenh“ ()

      Hallo Torsten,

      danke für deine Antwort.
      Doch, das Array wird habe mit der Anweisung deklariert. Man kann bei der Deklaration auch gleich die ersten reinpacken. Das habe ich so gelesen und es wird auch vom Parser akzeptiert.

      Es geht mir jetzt nur darum, wie ich in den Ausdruck $_POST["p1"] an Stelle eines festen Strings ("p1") den Namen einer Array-Variablen so einfüge, dass der Parser nicht den Namen, sondern den Inhalt der Variablen einsetzt. So wie ich es gemacht habe, klappt es nicht.

      Das "isset()" verwende ich auch, aber es sagt mir nichts über den Inhalt. Ich habe deswegen testhalber mit var-dump($_POST) gearbeitet. Da sehe ich, was drinsteht, und das ist nicht das Gewünschte. Darum weiß ich inzwischen, dass der Ausdruck $_POST[$name_p[$i]] nicht funktioniert.

      (Das geschriebene ist nur Beispielcode. Mein Program hat ein paar hundert Zeilen und ist sehr unübersichtlich.)

      PHP-Quellcode

      1. <?php
      2. $mein_array = array();
      3. if(isset($_POST['p1']))
      4. {
      5. $meine_var = ($_POST['p1']);
      6. // in ARRAY
      7. array_push($mein_array, $meine_var);
      8. }
      9. else
      10. {
      11. echo "keine Inhalt in POST";
      12. }
      13. ?>




      PHP-Quellcode

      1. $a=$_POST[$name_p[0]]
      2. die Syntax stimmt hier nicht, es muss denke ich heißen
      3. $a=$_POST($name_p[0])
      4. mach aus den ersten eckigen Klammern eine runde Klammer! dann sollt es gehen.


      Grüße,
      Torsten
      Danke, Torsten.

      Ich habe deinen Vorschlag mit den runden Klammern umgesetzt: $_POST($name_p[$1]), der Parser mag das aber anscheinend nicht:

      Fatal error: Function name must be a string in C:\xampp\htdocs\f.php on line 31

      Die Meldung gab es vorher nicht, sie kann aber noch ander Gründe haben. Ich suche weiter.

      Gruß, Günter
      Hallo Torsten.

      Es ist natürlich richtig, dass du den Ausdruck, den ich probiert habe, gar nicht vorgeschlagen hast. Ich wollte dich aber auch nicht verantwortlich dafür machen, dass mein Code nicht funktioniert. Ich habe nur die runden Klammern von dir übernommen und gehofft, dass es damit klappen könnte.

      Ich brauchte an dieser Stelle eben keinen festen Index ( $name_p[0] ), sondern eine Variable, die ich in einer Schleife durchzählen kann, deshalb $name_p($i].

      ($1 war ein Vertipper, es sollte $i heißen.)

      Ich habe aber inzwischen die ganze Logik des Codes und die Variablen wieder umgestellt, weil ich in diesem Punkt nicht weitergekommen bin. Diese Sachen funktionieren jetzt auch, aber ich habe noch jede Menge andere Probleme mit der Software-Ergonomie. Daran habe ich gewisse Anforderungen gestellt.

      Die ganze Rechnerei funktioniert schon lange. Es gibt auch andere Seiten im Internet, die solche Berechnungen bieten. Mein Ehrgeiz ist allerdings nicht, eine weitere, ähnliche Seite danebenzustellen, sondern eine handhabungsmäßig eindeutig bessere Seite anzubieten.

      Zur Software-Ergonomie ein Beispiel: die Seiten, die ich kenne, schreiben neben das Eingabefeld, dass der Punkt als Dezimalzeichen benutzt werden muss. Nur haben unsere deutschen Tastaturen im Ziffernblock halt ein Komma. Die Eingabe mit Punkt ist umständlich. Deshalb nimmt meine Seite sowohl Punkt als auch Komma. Das ist vom Code her nicht wenig Aufwand. Aber wer die Seite benutzt und beim Rechnen nach und nach vielleicht hundert Zahlen eingibt, wird es zu schätzen wissen, nicht immer mit dem Punkt arbeiten zu müssen, um nicht eine Fehlermeldung zu bekommen.

      Natürlich steht mein großer Anspruch in einen krassen Missverhältnis zu meinen noch dürftigen Fähigkeiten.

      (Und gerade ist mir ein neuer Gedanke gekommen, wie es mit der Variablen vielleicht doch gehen könnte.)

      Ich danke dir. Mal sehen, wie es weitergeht.
      .....kleiner Tip!

      es gibt auch Funktionen die Dir viel Tipparbeit bei immer wiedekehrenden Berechnungen abnehmen. Jeder hat mal angefangen und ist durch diese Hölle gegangen :) . Ich muß sagen das PHP sehr gut ist wenn man es versteht. Ich muß da auch noch einiges lernen.

      Viel Spaß! ...und nicht aufgeben, es gibt immer eine Lösung zwar nie die beste aber es gibt eine!

      Grüße,
      Torsten
      Guten Tag miteinander.

      Ich habe meinen Online-Rechner jetzt soweit, dass die Oberfläche im Wesentlichen funktioniert.
      Das heißt natürlich noch lange nicht, dass nicht doch noch etliche Bugs drinstecken können.

      Die grafische Gestaltung habe ich erstmal nach hinten geschoben. Da ist ganz sicher noch viel zu verbessern.
      Aber da muss ich erst wieder lernen.

      Falls jemand schauen möchte:
      bauphysikpraxis.de/online-rechner-feuchte-luft

      Gruß, Günter
      ....na da hast Du dir was vorgenommen! Gutes Gelingen!

      das gleiche habe ich mit einem Wetterdatenempfänger mal gemacht. Daten der Funksensoren über USB aufgenommen und in einem Programm ausgegeben.
      Luftfeuchte, Dampfdruck usw. . Hatte den Vorteil das man das ganze Haus in einem betrachtet und sein Schlüsse ziehen kann.


      Grüße,
      Torsten
      Ich habe jetzt die rechnende Seite um eine graphische Ausgabe ergänzt.
      Aus dem Online-Lüftungsrechner kann jetzt ein x,t-Diagramm aufgerufen
      werden, in welchem die Zustände von Zuluft und Abluft anzeigt werden.

      Ähnlich,
      wie im Mollier-Diagramm lassen sich hier die Werte für Temperatur,
      Wasserdampfgehalt (absolute Feuchte), relative Feuchte und Enthalpie
      sehr anschaulich grafisch darstellen.

      Auf dieser Seite
      Online-Lüftungs-Rechner
      den Button "Lüftungsrechner öffnen" anklicken, auf dem Rechenblatt ist rechts unten der Link "Werte im x,t-Diagramm ansehen".

      Wird
      der Link angeklickt, wird das Diagramm mit den eingegebenen
      Luftzustandswerten angezeigt. (Sind noch keine Werte angegeben,
      erscheint das Diagramm.ohne diese Werte.)