Zum Inhalt springen

Eupinkepank

Mitglieder
  • Gesamte Inhalte

    63
  • Benutzer seit

  • Letzter Besuch

Beiträge von Eupinkepank

  1. Hi!

    Du sagst: Tabllen sind out.

    Das finde ich nun icht, aber egal.....

    Dein Layout ist eigentlich in ungfähr so, wie man es sich wünscht.

    Jedoch solltest Du Dir überlegen, die Auwertung (also die Engine, die entscheidet wo, was inkludiert wird) auszulagern.

    Nehmen wir folgendes an:

    Du hast eine Seite, die sich, wie ja auch in Deinem Fall, die Inhalte dynamisch zusammensucht.

    Welche Inhalte gibt es? (Nur Beispiele)

    1. Navigation --->nennen wir $navi

    2. linker Bereich --->nennen wir $leftFrame

    3. mittlerer Hauptbereich --->nennen wir $mainFrame

    4. rechte Bereich --->nennen wir $rightFrame

    5. footer --->nennen wir $footer

    Nun wird z.B. diese URL aufgerufen:


    http://www.meinedomain.de?navi=1&left=4&mid=8&right=11
    [/PHP]

    Zentrale Datei ist Deine Index.php

    Dort ist fix das Tabellendesign in HTML hinterlegt (Das hast Du ja schon).

    Nun ist ganz oben in der Index.php ein include auf eine Datei.

    Wir nennen sie "engine.php"

    also:

    [PHP]
    ...
    include("engine.php");
    ...

    So könnte die engine.php z.B. aussehen:


    <?
    if($_GET['navi']==1){
    $navi='navi_1.php';
    }

    if($_GET['left']==4){
    $leftFrame='left_4.php';
    }

    if($_GET['mid']==8){
    $mainFrame='mid_8.php';
    }

    if($_GET['right']==11){
    $rightFrame='right_11.php';
    }
    if(!isset($_GET['footer'])){
    $footer='footer.php';
    }


    ?>

    [/PHP]

    Nun wird die index.php durchlaufen.

    an den Stellen wo die einzelnen Blöcke dargestellt werden sollen, kommt dann das hier:

    [PHP]
    ....
    include("navigation/$navi");
    ....
    include("linker_brereich/$leftFrame");
    ....
    include("hauptbereich/$mainFrame");
    ....
    include("rechter_bereich/$rightFrame");
    ....
    include("footer/$footer");
    ....

    Was hast Du nun erreicht?

    1. Niemand kann durch das blosse ansehen Deiner URLs erraten, wie der Dateiname lautet.

    2. Du hast eine "saubere" index.php, die Du komplett in HTML machen kannst, lediglich die includes müssen halt in php Tags stehen.

    3. Du hast eine saubere Verzeichnisstruktur und kannst auch später mal gezielt Änderungen vornehmen.

    4. Du kannst jederzeit OHNE viel Aufwand Punkte hinzufügen oder entfernen.

    5. Du hast durch die engine.php eine weitere Abstraktionsebene geschaffen, die es einem potentiellen Angreifer etwas schwerer macht. Wenn Du so verfährst kannst Du "register Globals" auch auf "Off" stellen. Die Register Globals sind eines der größten Sicherheitsrisiken.

    Bei Fragen: Einfach fragen! :)

  2. Generell ist das schon möglich...

    Ich hatte ein ähnliches Problem zu lösen.

    Nehmen wir mal an, ein User ist auf einer Seite und liest nur, ohne zu klicken.

    Wenn er eine Nachricht bekommt, sollte die Headline im rechten Bereich (das war so eine Shoutbox) erscheinen, ohne dass der einen Klick tätigen muss.

    Man kann das elegant via AJAX lösen, da man dort via JavaScript die Möglichkeit hat "Pseudo Cronjobs" zu erstellen.

    Das bedeutet, dass ein Java Script alle nn Sekunden z.B. ein php Programm anstößt, welches nach neuen Messages sucht.

    Klappt prima, ist aber ein recht großer Aufwand.

  3. Jedem der Interesse am "sauberen" erlernen von php hat, kann ich das Buch "PHP in a Nutshell" empfehlen.

    Ist vom Oreilly Verlag und natürlich in Deutsch.

    Sehr gut, gerade für Anfänger, ist die Tatsache, dass die Funktionsreferenz nicht alphabetisch Sortiert hinten dranhängt, sondern Step by Step beschreiben wird... Und zwar nicht alphabetisch sondern nach Bedarf.

    Dort wird auch die OOP kurz angerissen.

    Ist zwar sauteuer (ich glaube 34 Euro) aber ist absolut genial.

    Ebenfalls von Oreilly ist "Umsteigen auf PHP5".

    Sehr genial geschrieben.

    Hier wird die OOP "from the scratch" erklärt.

  4. Wenn ich dieses Programm sehe, wachsen mir Haare auf dem Rücken.

    Sag uns doch mal was das Ding überhaupt machen soll...

    Ein "include" fügt lediglich das an der Stelle ein, was das inkludierte Programm liefert.

    Wenn Du also mit Deinem Programm auf z.B. Neue Internetpräsenz bist, und dann ein Include auf "www.subdomain.meineDomain.de/wasweissich.php?paramater=12" machst, bekommst Du dort kein PHP Programmcode, sondern interpretiertes HTML.

    [edit]

    Ein Include mit führendem "http://...." sollte es in keinem Programm der Welt geben!

    Programme, die Du inkludierst, sollten immer UNTERHALB oder parallel zu "html" (oder halt "htdocs" oder wie auch immer dieser Ordner bei Dir heisst) liegen.

    Es mag auch Ausnahmen geben, dann solltest Du aber wissen was Du tust und das scheint hier nicht der Fall zu sein.

    [/edit]

  5. Dem ist eigentlich nix mehr hinzuzufügen.

    Als kleiner Tipp im Bereich OOP:

    Es gibt für das Erstellen von Klassen sehr schöne Editoren. (Stichwort UML)

    Für Linux User gibt es "umbrello" und für XP User gibt es "argouml".

    Beide Programme sind so aufgebaut, dass man dem Editor über eine grafische Oberfläche mitteilt was man gerne tun möchte und der Editor zum Schluss automatisch den PHP5 Code generiert.

    Das spart eine Menge Arbeit und funktioniert ganz prima.

    Das Programm "argouml" hat nebenbei noch die schöne Funktion, dass man dort seine fertigen Klassen importieren kann und das Programm dann die Diagramme erstellt.

    Beide Programme sind Freeware, wobei mir UMBRELLO unter Linux besser gefällt.

  6. Das weiß ich nicht :)

    max_execution_time: 30

    max_input_time: -1

    post_max_size: 8M

    max_execution_time: 30

    Dein Programm wird also nach 30 Sekunden aubgebrochen.

    Setz den Wert mal hoch auf 3600 (nur so zum Testen).

    Ferner setz den Wert für post_max_size hoch auf 100M

    Max_input_time und max_execution_time sollten immer den gleichen Wert haben... also ach rauf damit auf 3600.

    Dann sollte das funktionieren.

    Ferner versuchst Du gerade eine 1.7 MB große Variable über eine POST methode zu senden...

    Da sollte im <form> Tag folgendes stehen:

    enctype="multipart/form-data"

    Dann wird das auch mit dem Nachbarn klappen.... :D

  7. Mach das einfach so...

    Nehmen wir an, Du hast diese Klassen:

    person()

    auftrag()

    nun solltest Du die Klassen in dieser Form auf dem Server speichern:

    class.person.php

    class.auftrag.php

    Setze nun an den Anfang eines Skripts, welches Klassen benötigt, einfach folgende Funktion:


    function __autoload($class_name){
    include "class.$class_name.php";
    }
    [/PHP]

    PHP wird nun die jeweilige Klasse selbst inkludieren wenn sie benötigt wird.

    Du musst Dich um nix mehr kümmern.

  8. Hi!

    Ahnung habe ich generell davon nicht, aber ist das nicht "mit Kanonen auf Spatzen schießen" ??

    Wenn Du doch eine Datei mit all Deinen Funktionen hast, dann ist das doch prima.

    Warum um die einzelnen Funktionen in Klassen packen?!

    Wenn das Projekt groß ist, solltest Du es evtl. komplett auf OOP umstellen.

    Auch wenn das im ersten Moment etwas an Arbeit bedeutet, wird es Dir Dein späteres Leben mit dem Projekt erleichtern.

    Ich mache seit PHP 5 alles nur noch in OOP und die Vorteile sind gigantisch.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...