Beiträge von cottton

    Du brauchst ja kein extra array.
    Du kannst ja neue Seiten in dem $pages array anlegen.
    Allerdings sind das alles .html Dateien. Heißt: es wird kein PHP ausgeführt, wenn es auf dem Server nicht anderes eingerichtet ist.

    Ich weiß ja nicht was oder wie Du suchen möchtest. aber sobald Du PHP nutzen möchtest, sollte die einzubindende Datei eine .php Datei sein und mit include oder require eingebunden werden.
    Ich guck mir das morgen nochmal an.

    Alles klar.
    also hast Du da drin - also zB in der kontakt.html - mehrere Templates in einem,
    aber das eigtl Template - das grundgerüst - liegt in './pages/template.html' (?)

    Ist denn zw <!-- MAINaf --> und <!-- MAINe --> immer der Seiteninhalt?
    Ich glaube, was ich Dir heschrieben hab ist zu "umständlich". Wenn ichs richtig verstanden hab, dann geht es auch einfacher.
    Wenn Du willst schreib ichs mal um =)

    So wie ich das sehe:
    gibt es in der url (also in $_GET) eien Schlüssel "p" und existiert der Schlüssel im array $pages,
    dann wird der Wert - die Datei - eingebunden.

    PHP
    $pages = array(
        'kontakt' => 'kontakt.html',
        // ... usw usw
        // neue seite dazu:
        'neue_seite' => 'datei_zu_neuer_seite.html'
    );


    Die Datei dürfte dann wohl als Template genutzt werden.

    Das Problem: es werden nur .html genutzt.
    Selbst Wenn Du eine .php Datei nutzen würdest - PHP würde nicht ausgeführt werden.
    Das System lädt die Dateien (Seiten) "als Text", und nicht als ausführbaren code.

    Man könnte jetzt:
    array erweitern (nur dort, wo auch eine .php gebraucht wird)

    PHP
    $pages = array(
        'kontakt' => 'kontakt.html',
        // ... usw usw
        // neue seite "suche" dazu:
        'neue_seite' => array(
            'require' => 'suche.php',
            'template' => 'suche.html',
        )
    );


    und weiter unten:

    Natülich ungetestet, da ich nicht weißm wieso hier mehrmals die gleichen .html Dateien gelesen werden und ich auch nicht weiß was da drin steht.

    BTW:

    Zitat

    // Bei jeder Anfrage wir die if-Schleife überprüft.


    If ist keine Schleife =)

    Nun weiß ich nicht, wie ich diese Suche gestalten soll, da ich überall lese, dass man die Daten die vom Formular aus mit $_GET gesendet werden an eine weiter PHP senden muss, z.B. suche.php. Somit verlasse ich aber mein Template-System, oder? Irgendwie fehlt es mir in dieser Hinsicht an dem Verständnis wie hier gearbeitet werden sollte.


    Du kannst eine andere PHP-Datei ansprechen, musst es aber nicht.

    Du nutzt ja (logisch) ein Formular (<form>).
    Und bei diesem Element gibtst Du ein attribute "action" an.

    HTML
    <forum name="" action="" >
    </form>


    Hier ist action leer. Also würde das Formular sich selbst aufrufen.

    Angenommen die Anfrage kommt über die index.php,
    dann:

    HTML
    <forum name="" action="" > <!-- ruft beim absenden auf sich selbst auf (also index.php) -->
    </form>
    
    
    
    
    <forum name="" action="auswertung.php" > <!-- ruft beim absenden auf auswertung.php -->
    </form>

    Wenn Du nun alles über die index.php laufen lassen möchtest, dann nutzt Du einfach diese.
    Bei Dir wird wohl das Routing über ?p= erledigt.
    Wenn Du also eine Suche auswerten möchtest, könnte der Link zur Auswertung in etwa so aussehen: http://simon-no-japan.de/?p=suche

    Also ich finde es sinnvoller einzellne Dateien anzulegen.
    Bei der Ausgabe (in devmode wie live) wird das "verbessern" einem tool/plugin/ect überlassen.

    Ich fand mod pagespeed eigl sehr einfach.
    Da gits (wenn nicht inzw geändert) ein config file, bei dem man alles einzelln de-/aktivieren kann - wie man es eben braucht.
    Das ging von lazyload bis hin eben zu js/css file-handling/cache/...

    Eine Vorschau musst Du Dir "selbst basteln".
    Dürfte aber nicht so schwer sein.

    Du baust 2 Buttons ein: Absenden | Vorschau

    Bei Absenden - klar - verarbeitest Du in Deinem Script die Eingaben und handelst wie bisher.
    Bei Vorschau ist der einzige Unterschied, dass Du nicht handelst und das Formular noch einmal mit den eingegebenen Benutzerdaten anzeigst.

    Das Prinzip könnte das so aussehen:

    Das Problem liegt hier wohl bei dem " (Anführungszeichen).
    original:

    HTML
    <nav><li><a href="anlagen_details.php?navi=2&amp;ida="<?php echo $_GET['ida'];?> title"normal Darstellung">Allgemein</a></li>


    so sollte es funtionieren:

    HTML
    <nav>
        <li>
            <a href="anlagen_details.php?navi=2&amp;ida=<?php echo $_GET['ida'];?>" title"normal Darstellung">Allgemein</a>
        </li>


    Zusätzlich aber bitte noch die von aussen kommenden Daten prüfen und maskieren:

    HTML
    <?php
    $ida = '';
    if(isset($_GET['ida'])and $_GET['ida'] == /*auf was auch immer geprüft werden muss*/){
        $ida = $_GET['ida'];
    } 
    ?>
    <nav>
        <li>
            <a href="anlagen_details.php?navi=2&amp;ida=<?php echo htmlspecialchars($ida);?>" title"normal Darstellung">Allgemein</a>
        </li>

    Hab zwar auch noch nicht gewusst, dass PHP mit FILTER_VALIDATE_EMAIL nicht die "perfekte" Lösung darstellt,
    aber was spricht dagegen?
    Wenn Du clientseitig (JS) prüfen willst, musst Du wohl selbst was "basteln".
    Per PHP aber sollte FILTER_VALIDATE_EMAIL doch reichen.

    Wenn man es aufs Böseste genau machen will, dann wird man ja verrückt.
    Da gehts schon bei der Gesamtlänge der Emailaddresse los. Laut Wiki 254 Oktetten

    Zitat


    (ein Oktett ist auf den meisten Computern identisch mit einem Byte)
    ...
    Eine längere Adresse kann über RFC-konforme SMTP-Server weder E-Mails versenden noch empfangen


    Bis hin zu Groß-/Kleinschreibung:

    Zitat


    Da jedoch die daraus entstehende Verwirrung und die Probleme zu groß sind, gibt es kaum einen Provider, der tatsächlich zwischen hans@example.com und Hans@example.com unterscheidet.


    http://de.wikipedia.org/wiki/E-Mail-Adresse

    PHPs FILTER_VALIDATE_EMAIL:

    Code
    valid   Max."Musterjunge".Mustermann@example.com
    invalid "Max Mustermann"@example.com
    invalid MaxMuster(Kommentar)@example.com
    invalid (Kommentar)MaxMuster@example.com
    valid   hans@example.com
    valid   hans@example.eu
    valid   hans@example.e
    valid   hans@example.longlonglong
    valid   h@e.d


    (so prüft) php-5.5.15:


    mehr: http://squiloople.com/2009/12/20/ema…idation/#more-1

    Via JS könnte man auch per Ajax ein PHP-Script auf dem Server aufrufen, das dann das Ergebnis von FILTER_VALIDATE_EMAIL returnt.

    Zu 2.:
    mail() reicht, solange man nichts komisches vorhat.
    Aber es gibt Probleme (unabhängig von mail()), wenn Du von per PHP-Script eMails von Dyn-IPs versendest. Die eMails werden dann von Providern oft direkt in die Tonne getreten (weil als Spam angesehen).

    Stimmt - Betreiber fragen gehört sich so. (btw: Stichwort "Content stealing")
    Falls dort niemand eine API schreiben will/zur Verfügung stellen will, kannst Du ja immer noch (wenn Einverständnis) die Daten über nen Umweg holen.
    Wobei ich allerdings die Ajax-variante nicht verstehe. Ich meine warum Ajax?
    Wenn Du die Daten (egal ob API oder nicht) in Deine DB schicken willst, dann ist es doch einfacher in bestimmten Abständen einen Cronjob (zB PHP) laufen zu lassen.

    Hab mir das mal angesehen.
    Etwas ähnliches hab ich schon gemacht. Das ist allerdings kein einfaches "Spiel".
    Brauchst Du dort nur die Grunddaten, oder auch die Daten unter "Details anzeigen" ?

    Naja, Du willst doch die width auf x setzen.
    Und die height soll ja sich ja nun zu width x im Verhältnis y verhalten.


    Aber - ich hab da nen Denkfehler glaub ich.
    aber so in der Richtung muss es möglich sein. Musst nur rausfinden, wie Du das Format (die Anteile) verteilst.
    Siehe: http://de.wikipedia.org/wiki/Seitenverh%C3%A4ltnis
    =)

    EDIT: hate nen grundlegenden Denkfehler: % (was immer da raus kommt) sind ja die Anteile des Benutzerbildschirms. Also so nicht zu verwenden.
    Man müsste erstmal herausfinden:
    - ist momentaner screen Hochformat, oder Querformat?
    - erstelle Quadrat mit max möglicher Größe
    - näder nun dieses max mögliche Quadrat in format (zB) 16:9 um