das Sonderzeichen: Suche nach Email in Ordner voller Textdokumente

Hallo zusammen,

ich versuche derzeit eine Registrierung zu erstellen, die wenn sie erfolgreich ist, ein Textdokument für den registrierten Account erstellt, in dem die Infos zu dem Account gespeichert werden etc.
Hier ist der Ausschnitt zu meiner Sicherstellung, dass eine E-Mail Adresse nur einmal genutzt wird. Die Textdokumente zu den Accounts sind in accounts/ger und enthalten jeweils die E-Mail Adressen, Passwörter und Benutzernamen genau so aufgelistet:

user: ...
email: ...
password: ...

Bin noch sehr neu bei diesem Thema und auch unerfahren^^. Kann also sein, dass das Prinzip völliger Mist ist. Ich habe auch von MySQL gelesen. Wird solch eine Datenbank eher genutzt als so ein Prinzip, wie ich es hier geübt habe?
Auf jeden Fall funktioniert mein Script nicht. Kommen keine Fehlermeldung, ich werde einfach nicht auf die Seite error/registrierung/email_exists.html weitergeleitet, sondern komme auf die Profilseite, auf die ich gerade nicht kommen wollte.
Grundsätzlich soll das Projekt nur zur reinen Übung dienen, also ist es nicht schlimm, wenn es Mist ist :D

  
$addressee = $_POST["email"]; //die eingegebene Adresse auf der Registrierungsseite  
$search = "email: $addressee";  
$path = "accounts/ger";  
  
$scanned_directory = array_diff(scandir($path), array('..', '.'));  
$string = implode ($scanned_directory);  
$open = fopen ("accounts/ger/$string", "r");  
$emailexists = "/fread ($open, \"8000\")/";  
$findemail = preg_match ($emailexists, "email: $addressee");  
fclose ($open);  

Dazu der Ausschnitt aus meiner langen Überprüfungskette (Benutzername vergeben, Passwort zu kurz etc.).

  
elseif ($findemail != FALSE)  
   {  
    header("Location: error/registrierung/email_exists.html");  
   }  

Danke schon einmal für jede Antwort

Grüsschen

das Sonderzeichen

  1. Tach!

    ich versuche derzeit eine Registrierung zu erstellen, die wenn sie erfolgreich ist, ein Textdokument für den registrierten Account erstellt, in dem die Infos zu dem Account gespeichert werden etc.
    Hier ist der Ausschnitt zu meiner Sicherstellung, dass eine E-Mail Adresse nur einmal genutzt wird. [...]
    Bin noch sehr neu bei diesem Thema und auch unerfahren^^. Kann also sein, dass das Prinzip völliger Mist ist. Ich habe auch von MySQL gelesen. Wird solch eine Datenbank eher genutzt als so ein Prinzip, wie ich es hier geübt habe?

    Ja, oder ein anderes DBMS, beispielsweise SQLite. Da sind solche Dinge wie Verhinderung doppelter Werte bereits eingebaut - nebst den ganzen anderen Sachen, wie Selektieren in allen Lebenslagen.

    Auf jeden Fall funktioniert mein Script nicht. Kommen keine Fehlermeldung,

    Wieweit bist du mit dem Debugging? Wo genau ist denn in den Variableninhalten und Funktionsergebnissen etwas anderes enthalten als du erwartest? Debugging ist meist nervig, aber integraler Bestandteil der Programmierung. Du musst damit umgehen können. Baue var_dump()-Aufrufe ein, um dir Variableninhalte anzeigen zu lassen. Willst du wissen, ob das Programm hierlang oder dalang rennt, baue Ausgaben in if- und else-Zweige ein, die dir das anzeigen (alternativ: das Bedingungsausdrucksergebnis mit var_dump() anzeigen lassen).

    $addressee = $_POST["email"]; //die eingegebene Adresse auf der Registrierungsseite

    Immer wieder (un)gern gesehen: das reine Umkopieren in einfache Variablen. Das ist nicht weiter sinnvoll, nimm doch gleich $_POST["email"].

    $scanned_directory = array_diff(scandir($path), array('..', '.'));
    $string = implode ($scanned_directory);

    Was hast du nun in $string (ein übrigens nicht sehr aussagekräftiger Variablennanme) drinstehen?
    (Und: glob() liest Verzeichnisse ohne die ./.. mitzuliefern.)

    $open = fopen ("accounts/ger/$string", "r");

    Und was bezweckst du mit der Dateinamensuppe in fopen(), das gern einen einzelnen Dateinamen haben möchte?

    $emailexists = "/fread ($open, "8000")/";
    $findemail = preg_match ($emailexists, "email: $addressee");

    Die Syntax eines Funktionsaufrufs als Suchmuster für einen regulären Ausdruck? Ich kann dir schonmal sagen, dass der Inhalt von $emailexists nur unter ziemlich seltenen Umständen auf den Suchtext "email: $addressee" passt. In anderen Worten: das ist, wie du selbst sagtest, Mist.

    Für einfache Vergleiche braucht man keine regulären Ausdrücke, da reicht ein simples ==. Dein Problem ist aber, dass dir (derzeit noch) das Verständnis fehlt, was fopen() und fread() macht. Wenn du hier weitermachen willst und doch nicht mit SQL anfangen willst, nimm lieber file_get_contents().

    dedlfix.

    1. Danke für die schnelle Antwort

      Ja, oder ein anderes DBMS, beispielsweise SQLite. Da sind solche Dinge wie Verhinderung doppelter Werte bereits eingebaut - nebst den ganzen anderen Sachen, wie Selektieren in allen Lebenslagen.

      Ok danke für die Info. Ich wollte eh mich auch noch mit MySQL befassen, das hier sollte nur dazu dienen, etwas Gefühl für php zu bekommen.

      Wieweit bist du mit dem Debugging? Wo genau ist denn in den Variableninhalten und Funktionsergebnissen etwas anderes enthalten als du erwartest? Debugging ist meist nervig, aber integraler Bestandteil der Programmierung. Du musst damit umgehen können. Baue var_dump()-Aufrufe ein, um dir Variableninhalte anzeigen zu lassen. Willst du wissen, ob das Programm hierlang oder dalang rennt, baue Ausgaben in if- und else-Zweige ein, die dir das anzeigen (alternativ: das Bedingungsausdrucksergebnis mit var_dump() anzeigen lassen).

      Viele Aufrufe etc. wie var_dumb() kannte ich bisher noch nicht, aber ich werde es mir zu Herzen nehmen es öfters einzubauen. Ich schätze, ich befasse mich erst noch ein bisschen mit php und dann kommt MySQL. Daher werde ich vielleicht den Teil dann wieder durch MySQL ersetzen. Ich überprüfe noch einmal die Inhalte der Variablen um den Fehler zu finden.

      Immer wieder (un)gern gesehen: das reine Umkopieren in einfache Variablen. Das ist nicht weiter sinnvoll, nimm doch gleich $_POST["email"].

      Das ist zwar unnötig, aber ich fand es irgendwie schöner einfache Variablen zu nutzen, da es einheitlicher aussieht. :D

      Was hast du nun in $string (ein übrigens nicht sehr aussagekräftiger Variablennanme) drinstehen?
      (Und: glob() liest Verzeichnisse ohne die ./.. mitzuliefern.)

      Ich weiß, dass $string ein nicht sehr aussagekräftiger Variablenname ist, aber er sollte mich schlichtweg daran erinnern, dass dieser Schritt nur zum Umwandeln von den bei scandir rausgekommenen Arrays in die String Form gedacht ist.
      In $string habe ich jetzt die Dateinamen von den Textdateien in String Form hintereinander weg.

      Und was bezweckst du mit der Dateinamensuppe in fopen(), das gern einen einzelnen Dateinamen haben möchte?

      Der Dateiname sollte nicht einer sein, sondern es sollten eigentlich mehrere Dateien sein.
      Ich weiß auch das fopen nur eine Datei öffnen kann und das somit schon nicht funktionieren kann, aber ich hatte zu Probe nur eine Textdatei im angegeben Pfad.

      Die Syntax eines Funktionsaufrufs als Suchmuster für einen regulären Ausdruck? Ich kann dir schonmal sagen, dass der Inhalt von $emailexists nur unter ziemlich seltenen Umständen auf den Suchtext "email: $addressee" passt. In anderen Worten: das ist, wie du selbst sagtest, Mist.

      In der einen Textdatei, mit der fopen fread und fclose eigentlich umgehen sollte, stand:
      email: (das was ich später in der Registrierung nochmal eingegeben habe)
      Also sollte, so wie ich mir das gedacht habe, preg_match die eingegebene E-Mail Adresse in dem Textdokument finden und somit was anderes (!=) als FALSE angeben, sodass die Bedingung zutrifft und man somit auf die error Seite umgeleitet wird.

      Für einfache Vergleiche braucht man keine regulären Ausdrücke, da reicht ein simples ==.

      Muss bei == nicht exakt das gleiche auf beiden Seiten stehen und bei preg_match nur der Suchbegriff in der Datei vorkommen?

      Dein Problem ist aber, dass dir (derzeit noch) das Verständnis fehlt, was fopen() und fread() macht.

      Ich dachte, dass fread fopen einfach braucht und fread den Inhalt eines Textdokumentes liest und später als String ausgibt. Könntest du mir vielleicht die richtige Funktion von fopen und fread erklären.

      Wenn du hier weitermachen willst und doch nicht mit SQL anfangen willst, nimm lieber file_get_contents().

      Ich werde wie gesagt zumindest noch versuchen die Fehler/den Fehler zu beheben, aber dann auch mit SQL anfangen. Und danke für den Tipp. Mir fehlt eben noch das Wissen, welche Befehle ich besser nutzen kann oder was es überhaupt gibt.^^

      Gruß

      das Sonderzeichen

      1. Tach!

        Viele Aufrufe etc. wie var_dumb() kannte ich bisher noch nicht, aber ich werde es mir zu Herzen nehmen es öfters einzubauen.

        Einbauen muss nicht sein. Die Funktion ist nur für das Debugging gut. Man schreibt das hin, wenn man Fehler sucht, und löscht es wieder weg, wenn man damit (an der Stelle) fertig ist.

        Ich weiß, dass $string ein nicht sehr aussagekräftiger Variablenname ist, aber er sollte mich schlichtweg daran erinnern, dass dieser Schritt nur zum Umwandeln von den bei scandir rausgekommenen Arrays in die String Form gedacht ist.
        In $string habe ich jetzt die Dateinamen von den Textdateien in String Form hintereinander weg.
        Der Dateiname sollte nicht einer sein, sondern es sollten eigentlich mehrere Dateien sein.

        Warum machst du das dann so, wenn du genau weißt, dass das nichts bringt? Selbst wenn du derzeit noch nicht die Schleife für mehrere Dateien schreiben willst, solltest du eben dem scandir() nur eine Datei entlocken, oder gleich den Namen direkt in eine Variable schreiben.

        In der einen Textdatei, mit der fopen fread und fclose eigentlich umgehen sollte, stand:
        email: (das was ich später in der Registrierung nochmal eingegeben habe)
        Also sollte, so wie ich mir das gedacht habe, preg_match die eingegebene E-Mail Adresse in dem Textdokument finden und somit was anderes (!=) als FALSE angeben, sodass die Bedingung zutrifft und man somit auf die error Seite umgeleitet wird.

        $emailexists = "/fread ($open, "8000")/";

        In ""-Strings werden zwar Variablennamen aufgelöst, aber Funktionsaufrufe und weitere Ausdrücke sind davon nicht betroffen. Das heißt, da wird kein fread() aufgerufen. Da steht drin ... was dir var_dump($emailexists) anzeigt.

        Für einfache Vergleiche braucht man keine regulären Ausdrücke, da reicht ein simples ==.
        Muss bei == nicht exakt das gleiche auf beiden Seiten stehen und bei preg_match nur der Suchbegriff in der Datei vorkommen?

        Ja, und angenommen

        $findemail = preg_match ($emailexists, "email: $addressee");

        in $emailexists steht dein Dateininhalt

        email: (das was ich später in der Registrierung nochmal eingegeben habe)

        ist der dann nicht exakt "email: $addressee"? - Okay, später wird da noch mehr drin stehen. Aber es ist auch dann nicht sonderlich sinnvoll, Datenwust mit Datenwust zu vergleichen, sondern die eigentlichen Rohdaten miteinander. Das Problem löst sich aber bei datenbankorientierter Speicherung von selbst auf, weil du dann gleich die Rohdaten zurückgeliefert bekommst.

        dedlfix.

        1. Hallo,

          Einbauen muss nicht sein. Die Funktion ist nur für das Debugging gut. Man schreibt das hin, wenn man Fehler sucht, und löscht es wieder weg, wenn man damit (an der Stelle) fertig ist.

          Jaja, das mit var_dumb habe ich schon verstanden. Vielleicht falsch formuliert mit einbauen.

          Warum machst du das dann so, wenn du genau weißt, dass das nichts bringt? Selbst wenn du derzeit noch nicht die Schleife für mehrere Dateien schreiben willst, solltest du eben dem scandir() nur eine Datei entlocken, oder gleich den Namen direkt in eine Variable schreiben.

          Ja, weiß auch nicht. Sollte ja nur ein Test sein und wenn ich eine bessere Lösung finde, wollte ich diese wieder einbauen. So weiß ich wenigstens immer, wo ich weitermachen muss und übe gleichzeitig so andere kleine Funktionen einzubauen.

          In ""-Strings werden zwar Variablennamen aufgelöst, aber Funktionsaufrufe und weitere Ausdrücke sind davon nicht betroffen. Das heißt, da wird kein fread() aufgerufen. Da steht drin ... was dir var_dump($emailexists) anzeigt.

          Ok, verstanden

          ist der dann nicht exakt "email: $addressee"? - Okay, später wird da noch mehr drin stehen. Aber es ist auch dann nicht sonderlich sinnvoll, Datenwust mit Datenwust zu vergleichen, sondern die eigentlichen Rohdaten miteinander. Das Problem löst sich aber bei datenbankorientierter Speicherung von selbst auf, weil du dann gleich die Rohdaten zurückgeliefert bekommst.

          Jap, werde MySQL oder ähnliches eh einbauen und das andere wieder ersetzen. Ist wohl am besten. Man will nur immer versuchen, mit dem Wissen, was man bisher hat, die Sachen zu erreichen, die man haben will, egal wie umständlich (zumindest ich :D).
          Ist ja auch keine schlechte Übung...

          Gruß

          das Sonderzeichen

          1. Hallo Sonderzeichen,

            Man will nur immer versuchen, mit dem Wissen, was man bisher hat, die Sachen zu erreichen, die man haben will

            Das ist aber hoffentlich nicht in all Deinen Lebensbereichen so oder hoffentlich nur eine temporäre pubertäre Sichtweise. Immerhin sind wir auf dieser Welt, um etwas zu entdecken und uns - wie auch immer - weiterzuentwickeln. Und mit dieser Einstellung ist das recht schwierig!

            Mit lieben Grüßen

            Melvin Cowznofski

            --

            Melvin Cowznofski
            What – me worry?
            1. Hallo Melvin,

              Das ist aber hoffentlich nicht in all Deinen Lebensbereichen so oder hoffentlich nur eine temporäre pubertäre Sichtweise. Immerhin sind wir auf dieser Welt, um etwas zu entdecken und uns - wie auch immer - weiterzuentwickeln. Und mit dieser Einstellung ist das recht schwierig!

              Solange man es schafft und es gut funktioniert, ist das doch ok. Wenn es eine bessere Lösung gibt oder es sogar gar nicht funktioniert, lernt man / lerne ich auch gerne etwas neues. Sonst hätte ich mit HTML und PHP doch gar nicht erst angefangen. Ich bin z.B. mit PHP angefangen, weil ich es brauche. Nur mit HTML konnte ich nicht die Webseiten erstellen, die ich erstellen wollte. Wenn man etwas, was man haben möchte, mit seinen momentanen Fähigkeiten schafft, ist es doch ganz normal, dass man sich besonders freut.

              Gruß

              das Sonderzeichen

            2. Hallo,

              Immerhin sind wir auf dieser Welt, um etwas zu entdecken und uns - wie auch immer - weiterzuentwickeln.

              aber nur solange, bis wir einen Status erreicht haben, mit dem wir zufrieden sind. Ich habe jedenfalls das Streben nach "höher, weiter, mehr" aufgegeben, weil mir der Status Quo genügt. Da kann man den Aufwand so weit reduzieren, dass man diesen Status Quo hält - mehr muss gar nicht sein.

              Mancher möchte halt "so viel wie möglich" erreichen; bei mir heißt es eher: "So viel wie nötig, aber das mit so wenig Aufwand wie möglich."

              Ciao,
               Martin

              --
              Der geistige Horizont ist der Abstand zwischen Brett und Hirn.
              Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
              1. Hallo Martin,

                Immerhin sind wir auf dieser Welt, um etwas zu entdecken und uns - wie auch immer - weiterzuentwickeln.

                Na ja. Naaaaa ja. Lassen wir das mal so unkommentiert im Raume stehen. User Melvin ist sicherlich auch noch einer der Jüngeren.

                aber nur solange, bis wir einen Status erreicht haben, mit dem wir zufrieden sind. Ich habe jedenfalls das Streben nach "höher, weiter, mehr" aufgegeben, weil mir der Status Quo genügt. Da kann man den Aufwand so weit reduzieren, dass man diesen Status Quo hält - mehr muss gar nicht sein.

                Das verstehe ich nicht. Wie betreibt man Aufwand, um einen Status Quo zu halten? Das impliziert ja schon Veränderung. Diese Aussage ist etwas schwammig, wie ich meine. Du hast also momentan einen Zustand der Zufriedenheit erreicht? Mal abgesehen davon, dass dieser Zustand von vielen Faktoren abhängig sein dürfte, die du nicht unter Kontrolle hast, wie genau regulierst und spezifizierst du den Aufwand, den du benötigst, um diesen Zustand zu halten? Das stelle ich mir _enorm_ schwierig vor. Ich traue es dir aber zu, keine Frage.

                Mancher möchte halt "so viel wie möglich" erreichen; bei mir heißt es eher: "So viel wie nötig, aber das mit so wenig Aufwand wie möglich."

                Hier kann ich dir voll und ganz zustimmen. Auch ich habe mir es angeeignet, nur soviel Aufwand wie nötig zu betreiben. Aber wir sind ja schon etwas älter, da darf man das. Vielleicht hat es auch etwas mit Phlegma und Desillusion zu tun.

                1. Hallo Martin!

                  Immerhin sind wir auf dieser Welt, um etwas zu entdecken und uns - wie auch immer - weiterzuentwickeln.
                  Na ja. Naaaaa ja. Lassen wir das mal so unkommentiert im Raume stehen.

                  Du kannst es gerne kommentieren. Nur ... wenn dem _nicht_ so sein soll, wieso sind wir dann hier (auf dieser Welt)? Nur, um auf den Tod zu warten?

                  User Melvin ist sicherlich auch noch einer der Jüngeren.

                  Ich werde 42. Aber ich verstehe natürlich, dass Du mich angesichts meines jugendlichen Charmes auf knapp über 20 schätzt! ;)

                  Mit lieben Grüßen

                  Melvin Cowznofski

                  --

                  Melvin Cowznofski
                  What – me worry?
                  1. Hallo Michael!

                    nein warte, du heisst Melvin. Und du hast auf einen Post von User _Logiker_ geantwortet.
                    Nicht auf einen Post von User Der_Martin. Soviel Ordnung muss sein.

                    Immerhin sind wir auf dieser Welt, um etwas zu entdecken und uns - wie auch immer - weiterzuentwickeln.
                    Na ja. Naaaaa ja. Lassen wir das mal so unkommentiert im Raume stehen.

                    Du kannst es gerne kommentieren. Nur ... wenn dem _nicht_ so sein soll, wieso sind wir dann hier (auf dieser Welt)? Nur, um auf den Tod zu warten?

                    Es handelt sich um eine nicht beweisbare Aussage. Das muss ich nicht weiter erläutern. Und warum _wir_ auf _dieser_ Welt sind (was man anzweifeln kann)? Wenn ich DAS wüßste... ich würd's dir glatt sagen!

                    User Melvin ist sicherlich auch noch einer der Jüngeren.

                    Ich werde 42. Aber ich verstehe natürlich, dass Du mich angesichts meines jugendlichen Charmes auf knapp über 20 schätzt! ;)

                    Nicht deines Charmes wegen, User Melvin, nicht deines Charmes wegen. ;)

                    Zum Gruße
                    L

                2. n'Abend!

                  Ich habe jedenfalls das Streben nach "höher, weiter, mehr" aufgegeben, weil mir der Status Quo genügt. Da kann man den Aufwand so weit reduzieren, dass man diesen Status Quo hält - mehr muss gar nicht sein.
                  Das verstehe ich nicht. Wie betreibt man Aufwand, um einen Status Quo zu halten?

                  Ein Schiff muss mit Maschinenkraft und Ruder agieren, um seine Position zu halten, während Strömung und Wind an ihm zerren. Wir alle sind in diesem Sinn Schiffe, und Strömung und Wind sind beispielsweise gesellschaftliche Zwänge oder Erwartungen, Inflation, oder die Notwendigkeit von Fort- und Weiterbildung.

                  Mal abgesehen davon, dass dieser Zustand von vielen Faktoren abhängig sein dürfte, die du nicht unter Kontrolle hast, wie genau regulierst und spezifizierst du den Aufwand, den du benötigst, um diesen Zustand zu halten? Das stelle ich mir _enorm_ schwierig vor. Ich traue es dir aber zu, keine Frage.

                  Vor allem versuche ich nicht, immer das Bestmögliche zu erreichen und mich dabei mehr als nötig anzustrengen, sondern ich habe Ziele für mich selbst, die ich erreichen, aber nicht unbedingt übertreffen will. Vor allem dann nicht, wenn das für mich Anstrengungen, Unannehmlichkeiten oder Ausgaben zur Folge hätte, die vermeidbar wären.

                  Ciao,
                   Martin

                  --
                  Liebet eure Feinde - vielleicht schadet das ihrem Ruf.
                  Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    2. Hallo,

      Wieweit bist du mit dem Debugging? Wo genau ist denn in den Variableninhalten und Funktionsergebnissen etwas anderes enthalten als du erwartest? Debugging ist meist nervig, aber integraler Bestandteil der Programmierung. Du musst damit umgehen können. Baue var_dump()-Aufrufe ein, um dir Variableninhalte anzeigen zu lassen. Willst du wissen, ob das Programm hierlang oder dalang rennt, baue Ausgaben in if- und else-Zweige ein, die dir das anzeigen (alternativ: das Bedingungsausdrucksergebnis mit var_dump() anzeigen lassen).

      dem kann ich zu 110% zustimmen. Als ich angefangen habe, mich mit PHP zu beschäftigen, sind mir anfangs diese dauernden Hinweise auf ein Debugging sehr auf die Nerven gegangen. Ich wollte einfach so schnell als möglich zum Ziel kommen und sobald ich ein erstes Resultat ohne eine Fehlermeldung hatte, war ich schon glücklich. Gottseidank habe ich aber in der Zwischenzeit erkannt, dass man beim Programmieren von PHP (und natürlich auch anderen Programmiersprachen) während der Erstellung einer Ressource das Errorreporting bis zum Maximum hochschraubt und sich für wirklich _jede_ mögliche Variante, den das Programm gehen kann, ansieht, was passiert.

      Zum Beispiel für den Fall, dass der über ein Formular eingegebene Tag eines Monats weiterverarbeitet wird. Was soll passieren, wenn keine Zahl, sondern ein Buchstabe eingegeben worden ist? Was soll passieren, wenn gar nichts eingegeben worden ist? Was soll passieren, wenn eine Zahl größer als 31 eingegeben worden ist oder eine 30 für einen Februar, eine 31 für einen April? Hier gilt: Wirklich _jede_ Eventualität durchspielen. Oder bei Variablenverarbeitung: Ist die zu verarbeitende Variable überhaupt definiert? Entspricht der Inhalt meiner Erwartung? Entspricht der _Typ_ meiner Erwartung? U.s.w.

      Sobald ich beim Programmieren in einer PHP Ressource eine Variable habe, die weiterverarbeitet wird, steht schon das var_dump() dort, bevor es weitergeht mit dem Schreiben.

      Das Motto "Wer billig kauft ,kauft teuer" stimmt auch hier: Wer nicht _jeden_ kleinsten Teil seines Programms auf _jede_ mögliche Eventualität durchgetestet hat, steht vor einem gewaltigen Problem, wenn ein Gesamtprojekt mal fertig ist (oder gar schon online) und sich dann "zufällig" eine falsche Programmierung oder eine vergessene Möglichkeit zeigt. Die Zeit, die man nämlich _dann_ aufwenden muss, um den Fehler bzw. die Ursache eines Problems zu identifizieren und dann womöglich braucht, um vieles umzuschreiben, was dann vieleicht auch noch zur Folge hat, dass andere Programmteile, die im Zusdammenhang stehen, _ebenfalls_ abgeändert werden müssen, steht in keiner Relation zu der Zeit, die man für das Debuggen gebraucht hätte.

      Mit lieben Grüßen

      Melvin Cowznofski

      --

      Melvin Cowznofski
      What – me worry?
      1. Hi,

        ja schnell an das Ziel kommen will jeder aber natürlich auch fehlerfrei. Dass das nicht so schnell geht, ist mir schon klar. Deshalb habe ich ja auch selbstständig via Online-Seminaren etc. angefangen mir das Wissen anzueignen.
        Informatik wäre für mich auch eindeutig was als Studium später. Die deutlich einfachere Programmiersprache HTML beherrsche ich auch schon besser und konnte auch schon bei einigen Möglichkeiten Internetseiten veröffentlichen.
        Deshalb habe ich mich an PHP gewagt bewusst, dass es viel umfangreicher und komplizierter als HTML ist.
        Habe ja noch genug Zeit.

        Gruß

        das Sonderzeichen

        1. Hallo Sonderzeichen!

          ... Die deutlich einfachere Programmiersprache HTML beherrsche ich auch schon besser

          HTML als Programmiersprache zu bezeichnen spricht dafür, dass besser hier wohl nicht gut genug ist.

          Gruß
          Alex

          1. Hallo Alex

            HTML als Programmiersprache zu bezeichnen spricht dafür, dass besser hier wohl nicht gut genug ist.

            Ich wusste gleich nachdem ich absenden gedrückt hatte, dass so ein Kommentar folgen wird. Ich weiß, dass das eigentlich eine texbasierte Auszeichnungssprache ist, nur da hatte ich schon abgesendet. Habe gehofft, dass man das jetzt nicht so eng sieht aber ok. Manche Informatiker (,um nicht alle in die gleiche Schublade zu stecken,) müssen wohl auch die winzigsten Kleinigkeiten immer korrigieren. -,-

            Gruß

            das Sonderzeichen

            1. Hallo Sonderzeichen,

              HTML als Programmiersprache zu bezeichnen spricht dafür, dass besser hier wohl nicht gut genug ist.

              Ich wusste gleich nachdem ich absenden gedrückt hatte, dass so ein Kommentar folgen wird. Ich weiß, dass das eigentlich eine texbasierte Auszeichnungssprache ist, nur da hatte ich schon abgesendet.

              Texbasiert? Du meinst sicherlich tex_t_basiert. Gibt es denn noch andere als _text_basierte Auszeichnungssprachen?

              1. Hi!

                Gibt es denn noch andere als _text_basierte Auszeichnungssprachen?

                In der Theorie schon, es ließe sich auch ein Format definieren, dass Elemente und deren Verschachtelung mit Binärcodes anstatt mit »h1«, »p«, »ul«, »li« usw. und <…> und </…> anzeigt. Das lässt sich auch auf Attribute und schließlich das ganze Dokument übertragen.

                In der Praxis sind aber die meisten Sprachen zur Textauszeichnung Abkömmlinge von SGML und XML (HTML5 zähle ich mal darunter, auch wenn es eine eigene Syntax und eigenes Parsing definiert).

                Mathias

      2. Hallo,

        Zum Beispiel für den Fall, dass der über ein Formular eingegebene Tag eines Monats weiterverarbeitet wird. Was soll passieren, wenn keine Zahl, sondern ein Buchstabe eingegeben worden ist? Was soll passieren, wenn gar nichts eingegeben worden ist? Was soll passieren, wenn eine Zahl größer als 31 eingegeben worden ist oder eine 30 für einen Februar, eine 31 für einen April? Hier gilt: Wirklich _jede_ Eventualität durchspielen.

        Wenn man schon soweit ist, sollte man das nicht manuell tun. Das ist zeitraubend und letztlich unmöglich. Das Zauberwort heißt hier »Unit Test« bzw. »Integration Tests«, allgemein Test-Driven Development.

        Dabei schreibt man all diese Anforderungen in ein separates Programm – die Spezifikation. Dieses Programm kann man immer wieder ausführen und erweitern, wenn neue Anforderungen implementiert werden müssen.

        Viele Frameworks haben eine modulare Architektur, die Aufgaben streng trennt (z.B. durch MVC) und damit aus unabhängig testbaren Modulen besteht. Die Abhängigkeiten können beim Testing durch sogenannte Mocks bzw. Stubs ersetzt werden.

        Grüße,
        Mathias

        1. Hallo Mathias!

          Das wäre in _meinem_ Fall ein sowas von übertriebenes Mit-Kanonen-auf-Spatzen-Schießen! Für das Wenige, das ich mache - nur für mich, als Spaß, als Hobby, in der Freizeit - ist die "manuelle" Kontrolle mehr als ausreichend. Bei größeren Webprojekten profesioneller Programmierer hast Du aber sicher Recht!

          Mit lieben Grüßen

          Melvin Cowznofski

          --

          Melvin Cowznofski
          What – me worry?