Claus: PHP gut programmieren?!

Mahlzeit!

Als PHP-Anfänger+ kann ich schlecht abschätzen wie eine guter Code für ein Portal-Login zu realisieren ist.

  • Cookies oder Sessions-ID in URL übrgeben; beides berückrichtigen oder gleich auf Cookies verzichten
  • JavaScript und PHP oder doch lieber PHP pur
  • Frames oder besser inculdes (location.href oder doch lieber header())?
  • Alles in einer php-Datei oder mehrer?
  • im inet gelesen habe ich reichlich, aber was brauche ich davon?

Fragen über Fragen

Eine optimale Lösung wirds wohl nicht geben, aber vielleicht kann ich von Euren Erfahrung profitieren?

Grüsse

Claus

  1. Hallo Clause,

    schau Dir doch mal phpNuke an. Das ist glaube ich ein Portalsystem und und sollte auch ganz gut programmiert sein. Kannst ja mal spickeln gehen :-)

    Ciao
    Thomas

    1. http://phpnuke.org ... mal anschaun. thx

      Klar, würde aber gerne
      1. UNvoreingenommen an mein Projekt gehen
      2. lernen
      3. keinen Balast mit mir rumschleppen

      CU

    2. Hi!

      schau Dir doch mal phpNuke an. Das ist glaube ich ein Portalsystem und und sollte auch ganz gut programmiert sein. Kannst ja mal spickeln gehen :-)

      Was? Ich glaube in der Geschichte von PHP gab es kein Projekt mit mehr Sicherheislücken ;-)

      http://www.google.de/search?q=phpnuke+security findet fast 1 Mio Seiten zum Thema.

      Grüße
      Andreas

    3. Hallo,

      Ähmm, also: als ich den Source von PHPNuke sah und dann nach der Installation gesehen habe das register_globals auf on stehen müssen(!!) hab ich den Sch**ss gleich wieder von meinem Server gekickt. Ich hab grad mal phpBB http://www.phpbb.de/ eingesetzt und muss sagen das es im großen und ganzen recht gut umgesetzt ist und sich gut installieren, betreiben und modifizieren lässt. Das ist halt kein grosses Communitysystem wie phpNUke aber dafür ein Klasse Board und mittels den bereits verfügbaren Modifications lässt sich das Teil wahrscheinlich auch ordentlich aufbohren...

      Grüsse AndreD

      1. Hi!

        Ich hab grad mal phpBB http://www.phpbb.de/ eingesetzt und muss sagen das es im großen und ganzen recht gut umgesetzt ist und sich gut installieren, betreiben und modifizieren lässt.

        und welches auf einem guten Weg ist die Krone mit den meisten Sicherheistlücken an sich zu reißen ;-) http://www.google.de/search?q=phpbb+security

        Grüße
        Andreas

        1. Hallo,

          und welches auf einem guten Weg ist die Krone mit den meisten Sicherheistlücken an sich zu reißen ;-) http://www.google.de/search?q=phpbb+security

          Hmm ok... ...verdammt! :-) Für die Seite in der es jetzt verwendet wird tuts das mal. Was hat man ansonsten für Alternativen ausser Selbermachen da Zeitmangel?

          Grüsse AndreD

  2. Hi,

    • Cookies oder Sessions-ID in URL übrgeben; beides berückrichtigen oder gleich auf Cookies verzichten

    Cookies können abgelehnt werden.

    • JavaScript und PHP oder doch lieber PHP pur

    Diese Frage ist identisch mit "JavaScript und HTML oder doch lieber HTML pur".

    • Frames oder besser inculdes (location.href oder doch lieber header())?

    Diese Frage ist identisch mit "Frames oder besser keine Frames".

    • Alles in einer php-Datei oder mehrer?

    Ja :-) Das ist eine Frage der Modularisierung; alle Pauschalaussagen sind dumm und falsch.

    • im inet gelesen habe ich reichlich, aber was brauche ich davon?

    http://www.php.net/, http://www.dclp-faq.de/.

    Fragen über Fragen

    Beschäftige Dich zunächst allgemein mit Client-Server-Architektur. Einige Deiner Fragen lassen auf Unverständnis des Unterschiedes schließen; dies solltest Du ausräumen, _bevor_ Du Dich an PHP wagst. Finde heraus, wer wann was mit welchen Konsequenzen macht.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hello,

      • Cookies oder Sessions-ID in URL übrgeben; beides berückrichtigen oder gleich auf Cookies verzichten

      Cookies können abgelehnt werden.

      Na, dann kann derjenige sich eben nicht einloggen.
      Oder er muss sich erst authentifizieren (401), aber auch das lässt sich ausschalten. Und außerdem könnte er auch den ganzen PC ausschalten.
      Und er könnte auch noch einen Internetexplorer 3.0 haben oder unbedingt mit Lynx surfen wollen. Welche Alternative bietest Du dann für die Bilder? Ausführliche Bildbeschreibungen?

      • JavaScript und PHP oder doch lieber PHP pur

      Diese Frage ist identisch mit "JavaScript und HTML oder doch lieber HTML pur".

      Natürlich alles das, was der Client kann.
      Am Anfang eine "ganz normale Seite", von der aus ein Link auf eine Seite "Was Sie alles brauchen, wenn Sie dieses Forum vollständig nutzen wollen und wofür Sie es benötigen...."

      Informiert die Leute über das, was notwendig ist und schon werden die meisten ganz lieb. Und wenn einer etrwas wirklich nicht will, dann kann er ja immer noch gehen.

      • Frames oder besser inculdes (location.href oder doch lieber header())?

      Frames machen bei dynamisch generierten Seiten meistens sehr viel zusätzlichen Aufwand. Ich würde daher darauf verzichten.

      • Alles in einer php-Datei oder mehrer?

      Ja :-) Das ist eine Frage der Modularisierung; alle Pauschalaussagen sind dumm und falsch.

      Da gebe ich Cheatah ausnahmsweise mal Recht :-)))

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      1. Hi,

        • Cookies oder Sessions-ID in URL übrgeben; beides berückrichtigen oder gleich auf Cookies verzichten

        Cookies können abgelehnt werden.

        Na, dann kann derjenige sich eben nicht einloggen.
        Oder er muss sich erst authentifizieren (401), aber auch das lässt sich ausschalten. Und außerdem könnte er auch den ganzen PC ausschalten.
        Und er könnte auch noch einen Internetexplorer 3.0 haben oder unbedingt mit Lynx surfen wollen. Welche Alternative bietest Du dann für die Bilder? Ausführliche Bildbeschreibungen?

        sag mal, was ist das denn fuer eine Argumentation? Was willst Du genau sagen (Stell Dir mal vor, dass Du dafuer nur insgesamt 10 Woerter hast.).

        • JavaScript und PHP oder doch lieber PHP pur

        Diese Frage ist identisch mit "JavaScript und HTML oder doch lieber HTML pur".

        Natürlich alles das, was der Client kann.
        Am Anfang eine "ganz normale Seite", von der aus ein Link auf eine Seite "Was Sie alles brauchen, wenn Sie dieses Forum vollständig nutzen wollen und wofür Sie es benötigen...."

        Was willst Du damit sagen? Sprichst Du Dich vielleicht fuer den optionalen Einsatz von 'JavaScript' aus?

        Informiert die Leute über das, was notwendig ist und schon werden die meisten ganz lieb. Und wenn einer etrwas wirklich nicht will, dann kann er ja immer noch gehen.

        Ich geh gleich!

        Ja :-) Das ist eine Frage der Modularisierung; alle Pauschalaussagen sind dumm und falsch.
        Da gebe ich Cheatah ausnahmsweise mal Recht :-)))

        Natuerlich, weil 'Chaetah' ja immer Recht hat. Es sei denn es unterlaeuft ihm mal eine Ungenauigkeit eher sprachlicher Natur. - Allerdings scheint mir das mit den Pauschalaussagen nicht zu stimmen. Oder es ist Nonsense, also ein Running-Gag?

        Gruss,
        Lude

        1. Hello,

          Cookies können abgelehnt werden.

          Na, dann kann derjenige sich eben nicht einloggen.
          Oder er muss sich erst authentifizieren (401), aber auch das lässt sich ausschalten. Und außerdem könnte er auch den ganzen PC ausschalten.
          Und er könnte auch noch einen Internetexplorer 3.0 haben oder unbedingt mit Lynx surfen wollen. Welche Alternative bietest Du dann für die Bilder? Ausführliche Bildbeschreibungen?

          sag mal, was ist das denn fuer eine Argumentation? Was willst Du genau sagen (Stell Dir mal vor, dass Du dafuer nur insgesamt 10 Woerter hast.).

          Klapp dich an, dann hörst es bollern...

          [das waren sogar nur sieben]

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          1. Hi,

            Cookies können abgelehnt werden.

            Na, dann kann derjenige sich eben nicht einloggen.
            Oder er muss sich erst authentifizieren (401), aber auch das lässt sich ausschalten. Und außerdem könnte er auch den ganzen PC ausschalten.
            Und er könnte auch noch einen Internetexplorer 3.0 haben oder unbedingt mit Lynx surfen wollen. Welche Alternative bietest Du dann für die Bilder? Ausführliche Bildbeschreibungen?

            sag mal, was ist das denn fuer eine Argumentation? Was willst Du genau sagen (Stell Dir mal vor, dass Du dafuer nur insgesamt 10 Woerter hast.).

            Klapp dich an, dann hörst es bollern...

            [das waren sogar nur sieben]

            ich werde Dich wegen Spammens anzeigen; dann wird geloescht bis sich die Balken biegen. - Und die Admins haetten auch ihren Spass.

            Gruss,
            Lude

            --
            "BK Schroeder am Ende?"
            1. Hello,

              sag mal, was ist das denn fuer eine Argumentation? Was willst Du genau sagen (Stell Dir mal vor, dass Du dafuer nur insgesamt 10 Woerter hast.).

              Klapp dich an, dann hörst es bollern...

              [das waren sogar nur sieben]

              ich werde Dich wegen Spammens anzeigen; dann wird geloescht bis sich die Balken biegen. - Und die Admins haetten auch ihren Spass.

              Ja bitte, lass alles von mir löschen. Du ahnst gar nicht, wie mich das freuen würde. Und nun erreg dich noch ein bisschen, dann hab ich auch noch einmal Spaß.

              Liebe Grüße aus http://www.braunschweig.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        2. Hi,

          Natuerlich, weil 'Chaetah' ja immer Recht hat.

          sollte ich das mal gesagt haben, hatte ich leider Unrecht.

          Allerdings scheint mir das mit den Pauschalaussagen nicht zu stimmen. Oder es ist Nonsense, also ein Running-Gag?

          "Alle Pauschalaussagen sind dumm und falsch" ist eine Pauschalaussage und damit dumm und falsch. Selbstbezügliche Sätze sind was feines ;-)

          Cheatah

          --
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. Hi,

            "Alle Pauschalaussagen sind dumm und falsch" ist eine Pauschalaussage und damit dumm und falsch. Selbstbezügliche Sätze sind was feines ;-)

            das habe ich schon verstanden. Aber ist es vielleicht eine Aussage, die nicht nur Pauschalaussagen "widerlegt", sondern beispielsweise auch eine gradlinige und rein mit den Mitteln der Fallunterscheidung arbeitende "Top Down"-Denkweise kritisiert, soz. der Denkweise des "BWLers" die Denkweise des Ingineurs entgegenstellt?

            Gruss,
            Lude

            --
            "Ich tendiere zu Ueberinterpretationen."
      2. Hallo Tom,

        Cookies können abgelehnt werden.

        Na, dann kann derjenige sich eben nicht einloggen.
        Oder er muss sich erst authentifizieren (401),

        Für eine sitzungsbasierte Authentisierung im Falle des Nichtakzeptierens des Sitzungscookies eine HTTP-Authentisierung anzubieten halte ich für etwas arg kompliziert. Was ist so schlimm daran, die Session-ID per Query-String und POST zu übertragen?

        Viele Grüße,
        Christian

        1. Hello,

          Cookies können abgelehnt werden.

          Na, dann kann derjenige sich eben nicht einloggen.
          Oder er muss sich erst authentifizieren (401),

          Für eine sitzungsbasierte Authentisierung im Falle des Nichtakzeptierens des Sitzungscookies eine HTTP-Authentisierung anzubieten halte ich für etwas arg kompliziert.

          Nö, das programmiert man ein einzige Mal und verwendet es dann immer wieder.

          Was ist so schlimm daran, die Session-ID per Query-String und POST zu übertragen?

          Das ist einfach "schmutzig". Sowas hat man gemacht, als noch jeder gesagt hat, dass es bald sowieso nur noch M$-Software geben würde und es sich deshalb nicht lohnen würde, noch _einmal_ selbst nachzudenken.

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          1. Hi,

            Was ist so schlimm daran, die Session-ID per Query-String und POST zu übertragen?
            Das ist einfach "schmutzig". Sowas hat man gemacht, als noch jeder gesagt hat, dass es bald sowieso nur noch M$-Software geben würde und es sich deshalb nicht lohnen würde, noch _einmal_ selbst nachzudenken.

            ich verstehe weder, was daran schmutzig sein soll, noch den Zusammenhang zu M$-Software. Erklärst Du mir das bitte?

            Cheatah

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Hello,

              ich verstehe weder, was daran schmutzig sein soll, noch den Zusammenhang zu M$-Software. Erklärst Du mir das bitte?

              macht nix. Lösch den Inputbuffer einfach. Ich wedre nämlich jtzt noch ein paar Biere trinken und das macht (heute) die Qualität meiner Antworten bestimmt nicht besser.

              Liebe Grüße aus http://www.braunschweig.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          2. Hallo Tom,

            Was ist so schlimm daran, die Session-ID per Query-String und POST zu übertragen?

            Das ist einfach "schmutzig".

            Warum?

            Viele Grüße,
            Christian

    2. Hi!

      • Cookies oder Sessions-ID in URL übrgeben; beides berückrichtigen oder gleich auf Cookies verzichten

      Cookies können abgelehnt werden.

      Ich mag Cookies lieber als SessionIDs auf andere Weise zu übergeben, wobei man wie Du richtig sagst nicht überall Cookies voraussetzen kann. Meine Lieblingsvariante ist allerdings die SSL-Session-ID zu verwenden, geht nur nicht immer ;-)

      • Frames oder besser inculdes (location.href oder doch lieber header())?

      Eigentlich ist es nicht wirklich zu vergleichen, aber bevor Du eine Seite an den Browser sendest nur um ihn dann per meta-refresh oder Javascript auf eine andere zu leiten würde ich unbedingt header() empfehlen, den dazu ist der Location-Header schließlich da.

      • Alles in einer php-Datei oder mehrer?

      Wenn Du mehrere PHP-Scripte hast und globale Einstellungen... hast die in jedem Script gleich sind, z.B. Verbindung zu DB herstellen, Session starten... sollte man das evtl. in eine Datei (außerhalb des doc-root!) auslagern und immer einbinden wenn benötigt. Hat den Vorteil dass man ggfs. Änderungen global an einer Stelle vornehmen kann.

      • im inet gelesen habe ich reichlich, aber was brauche ich davon?

      http://www.php.net/, http://www.dclp-faq.de/.

      Jepp, und vielleicht noch http://tut.php-q.net/ für den Anfang.

      Besonders:
      http://www.dclp-faq.de/ch/ch-code.html
      und Sachen wie: http://www.zend.com/zend/tut/tut-hatwar3.php (und links)
      http://talks.php.net/show/web-app-security
      http://de3.php.net/manual/de/security.index.php
      http://www.dclp-faq.de/search.php?l=20&q=sicherheit

      Beschäftige Dich zunächst allgemein mit Client-Server-Architektur. Einige Deiner Fragen lassen auf Unverständnis des Unterschiedes schließen; dies solltest Du ausräumen, _bevor_ Du Dich an PHP wagst. Finde heraus, wer wann was mit welchen Konsequenzen macht.

      Einen kleinen Einstieg hier bietet z.B.: http://www.dclp-faq.de/q/q-web-server-client.html

      Grüße
      Andreas

    3. Hoi!

      Beschäftige Dich zunächst allgemein mit Client-Server-Architektur. Einige Deiner Fragen lassen auf Unverständnis des Unterschiedes schließen; dies solltest Du ausräumen, _bevor_ Du Dich an PHP wagst. Finde heraus, wer wann was mit welchen Konsequenzen macht.

      Cheatah

      hab schon etwas "rumgebastet" und bin halt auf die oben gestellten frage (und mehr) gestossen.

      Woraus schliesst Du, das ich kein Verständis für das CS-Prinzip habe,  *wunder* bzw. kannst Du mein Defizit näher erläutern ...
      Hmmmm ... *überlegt* ... ich weiss was ein Client und auch was einer Server ist und warum die beiden komischen Dinger gibt ... oder ich habe Dich nicht vertanden?

      Schönes Wochenende

      Grüsse

      Claus

      1. Hi,

        Woraus schliesst Du, das ich kein Verständis für das CS-Prinzip habe,  *wunder* bzw. kannst Du mein Defizit näher erläutern ...

        Du stellst JavaScript mit PHP in einen Zusammenhang, und Du hälst serverseitige Includes für eine Alternative zu Frames. In beiden Fällen verwurschtelst Du Client- und Serverseite.

        Hmmmm ... *überlegt* ... ich weiss was ein Client und auch was einer Server ist und warum die beiden komischen Dinger gibt ... oder ich habe Dich nicht vertanden?

        Im Prinzip richtig. Dir scheint lediglich noch nicht bewusst zu sein, welche Aufgaben welcher Seite zuzuschreiben sind, und wie strikt die Trennung der beiden faktisch ist. Es mag sein, dass einfach nur noch ein kleines "Klick" fehlt, nach dem ich meinen Einwand zurückziehen muss.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. n'abend

          Hi,

          Woraus schliesst Du, das ich kein Verständis für das CS-Prinzip habe,  *wunder* bzw. kannst Du mein Defizit näher erläutern ...

          Du stellst JavaScript mit PHP in einen Zusammenhang, und Du hälst serverseitige Includes für eine Alternative zu Frames. In beiden Fällen verwurschtelst Du Client- und Serverseite.

          Schön das wir und missverstanden haben  :o)

          Ich war in meinem Kopf schon etwas weiter ...
          Wie geschrieben, ich habe schon etwas getestet und dort stand ich vor einigen Entscheidungen:
          arbeite ich mit Frames und muss je nach content mehrer Seiten aktualisieren (über JS, weil Header geht ja nicht [soweit ich weiss]) oder realisiere ich meine Site mit includes wo z.B. Naviation und Main-content dann beim erneuten Seitenaufruf den richtigen Inhalt ziehen.
          Technisch natürlich komplett unterschiedlich, für den Client (hoffentlich) das gleiche Resultat.

          Das war ja auch meine eignetlich Frage, wie macht Ihr es, ich brauche ein paar Denkanstösse um in einem Jahr nicht peinlich berührt zu sein, wenn ich mit den Code dann nochmal ansehe.

          Wiedem auch sei, Du musstest mir nicht erklären wo der unterschied zwischen einem Client und einem Server ist und ich muss mich genauer ausdrücken. ;-)

          Grüsse

          Claus

  3. Hello Claus,

    unter einer sauberen Programmierung verstehe ich z.B. eigensichere Programme und Programmmodule (ui, jetzt mit 3 m). Wenn ich eine Funktion aufrufe, der ein Array übergeben werden muss, kann ich innerhalb der Funktion nachfragen, obe es denn tatsächlich ein Array ist mit plausiblen Daten. Und wenn es keines ist, dann führe ich die einheitliche Fehlerbehandlung durch. Ich gebe also. z.B. false oder einen fehlerwert zurück. Und im eigentlichen Arbeitsergebnis der Funktion steht dann ein ungültiger möglichst neutraler Wert.

    Also

    • Fehlererkennung
    • Fehlerbehandlung
    • Fehlermeldung

    Dann wird es sauber aber leider auch langsam.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. Hi,

      unter einer sauberen Programmierung verstehe ich z.B. eigensichere Programme und Programmmodule (ui, jetzt mit 3 m). [blaBlaBla]

      bist Du etwa der Boss von http://www.bitworks.de?

      Gruss,
      Lude

      --
      "Waere wirklich schlimm, wenn's so waere."