Joa, ich hab mich etwas mit PHP beschäftigt und habe jetzt (und warscheinlich auch zukünftig) ein paar fragen.
So, zu Übungszwecken habe ich mir heute 'nen Taschenrechner gebastelt. Der funktioniert auch soweit:
Allerdings mit folgenden Meldungen:
Zitat
Notice: Undefined index: rechenmeth in CProgramme\XAMPP\xampp\htdocs\TESTORDNER\formular.php on line 23
Notice: Undefined index: zahl1 in CProgramme\XAMPP\xampp\htdocs\TESTORDNER\formular.php on line 42
Notice: Undefined index: zahl2 in CProgramme\XAMPP\xampp\htdocs\TESTORDNER\formular.php on line 42
...
Nach dem ersten Rechnen sind die Meldungen logischerweise weg. Scheinbar ist ja ein vordefinierter Wert für die Arrayelemente erwünschenswert, aber wie bzw. wo wäre das denn sinnvoll machbar?
Dann noch eine generelle Frage zur Struktur von php-Dateien. HTML-Elemente kann man ja einfach so reinschreiben, jede Zeile per echo ausgeben oder ganze Blöcke mit echo ausgeben. Am einfachsten ist logischwerweise erstere Variante, wegen dem Escapen von Zeichen, aber ist das erlaubt?
Ach ja, gibt's ne Seite, die mehrer kleine Aufgaben zu einem Thema vorgibt? Due Tutorials sind ja alle ganz nett, aber Lernen durch Lesen bringt nicht halb soviel wie durch selber probieren. Außerdem vergißt man schnell die Hälfte und schreibt im Endeffekt nur die Tutorialbeispiele ab, wenn man was brauch.
1. Pack deine case-Anweisung in einen if-Block, mit dem du überprüfst, ob $_POST['rechenmeth'] gesetzt wurde.
Du könntest auch einfach error_reporting auf "E_ALL & ~E_NOTICE" setzten, um Notices auszublenden (Die sind meistens uninteressant) Mehr...
Du könntest auch einfach error_reporting auf "E_ALL & ~E_NOTICE" setzten, um Notices auszublenden (Die sind meistens uninteressant)
...
Ja sicher, aber wenn ich es ausblende ist es immernoch da, auch wenn es unwichtig ist. Soviel Mühe, die Sachen eineindeutig zu machen ist es ja meistens nicht. Und ich will mir ja nicht gleich am Anfang 'nen schlechten Stil angewöhnen
Dann noch eine generelle Frage zur Struktur von php-Dateien. HTML-Elemente kann man ja einfach so reinschreiben, jede Zeile per echo ausgeben oder ganze Blöcke mit echo ausgeben. Am einfachsten ist logischwerweise erstere Variante, wegen dem Escapen von Zeichen, aber ist das erlaubt?
...
Es ist erlaubt, ich rate aber stark davon ab. Wenn du dich daran gewöhnst, so zu arbeiten wirst du bei größeren Projekten vielleicht auf die Idee kommen, es da auch so zu machen und das führt unweigerlich zu Code, der mindestens schlecht und im schlimmsten Fall gar nicht wartbar ist.
Als prominentes Beispiel führe ich das RPG-Atelier an: Der Code da müßte an sich erweitert werden und ich habe SDS versprochen, es mir anzusehen. Als er mir den Quelltext geschickt hat war ich erst mal platt - da waren PHP-Blöcke in HTML-Blöcken in PHP-Blöcken und so weiter... ad nauseam. Ich hab's aufgegeben, den Code verstehen zu wollen und außer dem ursprünglichen Autor (den ich mal nicht nenne) wird kaum jemand in der Lage und gewillt sein, sich da einzuarbeiten.
Wahrscheinlich wird zumindest der Backend-Code vom Atelier komplett ersetzt werden müssen, weil er unwartbar ist.
Man muß nicht nur Präsentation und Inhalt sauber trennen sondern auch Programmlogik und Interface, sonst kommt man nur in Schwierigkeiten.
Ein Projekt, das du mal probieren könntest, wäre das Einbinden von HTML-Templates über get_file_contents() und str_replace(). Glaub' mir, das wirst du später brauchen.