Seite 2 von 2 ErsteErste 12
Ergebnis 21 bis 25 von 25
  1. #21
    Mitglied
    Registriert seit
    Jun 2009
    Ort
    Im Forum
    Beiträge
    530

    Standard Re: PHP Formular Check

    Zitat Zitat von xX_MiKE Beitrag anzeigen
    Ich habe mir gedacht ein DB-Zugriff wäre schneller, als alles durch PHP zusammenbauen lassen.
    Es läuft ja nur das durch PHP, was du auch mit einem <?php und ?> umschließt. Alles andere wird, so wie es in der Datei steht einfach "durchgereicht".

    Zitat Zitat von xX_MiKE Beitrag anzeigen
    die Seite besteht aus drei Unterseiten (Home, Bilder und Kontakt-Formular).
    Da würde ich dir raten, 3 getrennte Dateien zu erstellen. Zwar können alle einen ähnlichen/gleichen Aufbau haben, allerdings halte ich es für wenig sinnvoll, alle unter dem gleichen Link (sprich, der gleichen Datei) anzubieten, da dann immer auf deine Hauptseite "geleitet" wird und nicht zu der Seite, die sich jemand möglicherweise als Lesezeichen gespeichert hat.
    Es ist einfach nutzerfreundlicher diese unter verschiedenen Links (also im Normalfall verschiedene Dateien, wobei du allerdings auch GET-Parameter verwenden könntest) anzubieten.

    Zitat Zitat von xX_MiKE Beitrag anzeigen
    Nein, das hast du komplett falsch verstanden.
    Das freut mich natürlich in diesem Fall.


    Eine Bitte habe ich allerdings an dich, die auch für andere Threads hilfreich sein könnte.
    Wenn du Fragen so nach der Reihe beantwortest oder irgendwo zu ein Statement abgeben möchtest, verwende die Zitat-Funktion um auf den entsprechenden Beitrag eines anderen Nutzers hinzuweisen. Es ist nicht zwingend notwenig, dass du so zitierst, dass auch der Nutzername dabei steht (was allerdings schöner wäre), allerdings hilft ein Zitat ungemein den Zusammenhang deines Beitrags zu verstehen.
    Bitte beachte dabei allerdings bitte, dass du keinen Full-Zitate machst, wenn der zitierte Beitrag aus mehr als einer Aussage besteht. Zitiere nach Möglichkeit immer nur einzelne Aussagen, oder trenne das Zitat in sinnvolle Abschnitte ein.

    Spoiler: 

    Ich hoffe, ich durfte diesen Hinweis an dieser Stelle geben, da ich dies bisher meistens nur von Moderatoren gesehen habe... Falls nicht, bitte ich natürlich um einen Hinweis und Entschuldigung ;-)

  2. #22
    Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    2.700

    Standard Re: PHP Formular Check

    Zitat Zitat von xX_MiKE Beitrag anzeigen
    Ich habe mir gedacht ein DB-Zugriff wäre schneller, als alles durch PHP zusammenbauen lassen. Und der Content wird nur von mir selbst erstellt.
    Diese Annahme ist falsch, im Gegenteil sogar. Wenn du die Seiten rein aus PHP-Datein generierst die auf der Festplatte liegen, so liegt der Zeitaufwand dafür ungefähr bei ca. 0-1ms. In einem so simplen Fall wie bei dir, dauert alleine der Aufruf der Funktion mysql_connect() schon länger, als die restliche Generierung der Seite zusammen, mysql_query() ist was den Zeitaufwand angeht ebenfalls nicht ganz unkritisch.

    preg_replace() ist jetzt allerdings auch nicht unbedingt das Mittel der Wahl wenn du damit nur Inhalte in das Template einfügen willst. Wesentlich einfacher ist dabei der folgende Ansatz:
    PHP-Code:
    <?php
    // seite.php
    $header "Ich bin die Überschrift";
    $content "Ich bin der Content.<br/>Und enthalte ganz toll viel HTML.";
    for(
    $i 0$i 10$i++) {
        
    $conentent .= $i <br/>";
    }
    $content .= "Ich kann auch mit PHP erzeugt werden<br/>";

    // Eine SEHR hilfreiche Funktion!
    ob_start();
    echo 
    "Dieser Text hier wird nicht direkt ausgegeben<br/>";
    ?>
    Auch dieser Text hier wird nicht so im Browser erscheinen<br/>
    <?php
    // Die nicht ausgegebenen Inhalte der $content-Variable hinzufügen
    $content .= ob_get_contents();
    // Notwendig, damit danach der Text wieder an den Browser ausgegeben wird
    ob_end_clean();

    include(
    'template.php');
    PHP-Code:
    <?php
    // template.php
    ?>
    <html>
        <head>
            <title><?php echo $header?></title>
        </head>
        <body>
            <h1><?php echo $header?></h1>
            <div><?php echo $content?> </div>
        </body>
    </html>
    Wenn du dann ein bisschen mehr Erfahrung mit PHP gesammelt hast, kannst du dir dann ja auch mal ein paar MVC-Frameworks anschauen, da wird das System dann noch mal deutlich verfeinert.

  3. #23
    Mitglied

    (Threadstarter)


    Registriert seit
    Mar 2011
    Ort
    Switzerland
    Beiträge
    36

    Standard Re: PHP Formular Check

    Zitat Zitat von Roin Beitrag anzeigen
    Da würde ich dir raten, 3 getrennte Dateien zu erstellen. Zwar können alle einen ähnlichen/gleichen Aufbau haben, allerdings halte ich es für wenig sinnvoll, alle unter dem gleichen Link (sprich, der gleichen Datei) anzubieten, da dann immer auf deine Hauptseite "geleitet" wird und nicht zu der Seite, die sich jemand möglicherweise als Lesezeichen gespeichert hat.
    Es ist einfach nutzerfreundlicher diese unter verschiedenen Links (also im Normalfall verschiedene Dateien, wobei du allerdings auch GET-Parameter verwenden könntest) anzubieten.
    Im Moment verwende ich eine Datei und arbeite mit verschiedenen GET-Parameter.


    Zitat Zitat von Roin Beitrag anzeigen
    Eine Bitte habe ich allerdings an dich, die auch für andere Threads hilfreich sein könnte.
    Wenn du Fragen so nach der Reihe beantwortest oder irgendwo zu ein Statement abgeben möchtest, verwende die Zitat-Funktion um auf den entsprechenden Beitrag eines anderen Nutzers hinzuweisen. Es ist nicht zwingend notwenig, dass du so zitierst, dass auch der Nutzername dabei steht (was allerdings schöner wäre), allerdings hilft ein Zitat ungemein den Zusammenhang deines Beitrags zu verstehen.
    Bitte beachte dabei allerdings bitte, dass du keinen Full-Zitate machst, wenn der zitierte Beitrag aus mehr als einer Aussage besteht. Zitiere nach Möglichkeit immer nur einzelne Aussagen, oder trenne das Zitat in sinnvolle Abschnitte ein.

    Spoiler: 

    Ich hoffe, ich durfte diesen Hinweis an dieser Stelle geben, da ich dies bisher meistens nur von Moderatoren gesehen habe... Falls nicht, bitte ich natürlich um einen Hinweis und Entschuldigung ;-)
    Ich entschuldige mich, normalerweise verwende ich die Zitatfunktion auch, aber diese Antwort habe ich von meinem Handy aus geschrieben, da war es mir zu umständlich.


    Zitat Zitat von Exterminans Beitrag anzeigen
    Diese Annahme ist falsch, im Gegenteil sogar. Wenn du die Seiten rein aus PHP-Datein generierst die auf der Festplatte liegen, so liegt der Zeitaufwand dafür ungefähr bei ca. 0-1ms. In einem so simplen Fall wie bei dir, dauert alleine der Aufruf der Funktion mysql_connect() schon länger, als die restliche Generierung der Seite zusammen, mysql_query() ist was den Zeitaufwand angeht ebenfalls nicht ganz unkritisch.
    Schon wieder etwas gelernt. Dann werde ich in Zukunft möglichst wenig auf DBs zurückgreifen.

    Zitat Zitat von Exterminans Beitrag anzeigen
    preg_replace() ist jetzt allerdings auch nicht unbedingt das Mittel der Wahl wenn du damit nur Inhalte in das Template einfügen willst. Wesentlich einfacher ist dabei der folgende Ansatz:
    PHP-Code:
    <?php
    // seite.php
    $header "Ich bin die Überschrift";
    $content "Ich bin der Content.<br/>Und enthalte ganz toll viel HTML.";
    for(
    $i 0$i 10$i++) {
        
    $conentent .= $i <br/>";
    }
    $content .= "Ich kann auch mit PHP erzeugt werden<br/>";

    // Eine SEHR hilfreiche Funktion!
    ob_start();
    echo 
    "Dieser Text hier wird nicht direkt ausgegeben<br/>";
    ?>
    Auch dieser Text hier wird nicht so im Browser erscheinen<br/>
    <?php
    // Die nicht ausgegebenen Inhalte der $content-Variable hinzufügen
    $content .= ob_get_contents();
    // Notwendig, damit danach der Text wieder an den Browser ausgegeben wird
    ob_end_clean();

    include(
    'template.php');
    PHP-Code:
    <?php
    // template.php
    ?>
    <html>
        <head>
            <title><?php echo $header?></title>
        </head>
        <body>
            <h1><?php echo $header?></h1>
            <div><?php echo $content?> </div>
        </body>
    </html>
    So habe ich zu erst begonnen. Ich habe es jedoch wieder verworfen, da man in einem PHP-String die Sonderzeichen speziell behandeln muss. Bei vielen DIVs und Ähnlichem ist dies meiner Meinung nach etwas umständlich. Gibt es dafür auch noch ein Trick oder etwas wie man dies ohne grosse Probleme hin bekommt

    Zitat Zitat von Exterminans Beitrag anzeigen
    Wenn du dann ein bisschen mehr Erfahrung mit PHP gesammelt hast, kannst du dir dann ja auch mal ein paar MVC-Frameworks anschauen, da wird das System dann noch mal deutlich verfeinert.
    Danke für den Tipp, ich werde bei Gelegenheit diese Frameworks mal anschauen.

  4. #24
    Nerd

    Board:Crew

    Avatar von Kugelfisch23
    Registriert seit
    Oct 2007
    Ort
    Im Ozean
    Beiträge
    16.811

    Standard Re: PHP Formular Check

    Zitat Zitat von xX_MiKE Beitrag anzeigen
    Ich habe es jedoch wieder verworfen, da man in einem PHP-String die Sonderzeichen speziell behandeln muss. Bei vielen DIVs und Ähnlichem ist dies meiner Meinung nach etwas umständlich. Gibt es dafür auch noch ein Trick oder etwas wie man dies ohne grosse Probleme hin bekommt
    Du könntest entweder (wie Exterminans vorgeschlagen hat) explizites Output-Buffering, einsetzen und dann den PHP-Kontext verlassen - nutze ob_start() zur Erstellung eines Buffers, führe dann die Ausgaben durch (diese landen dann im Output-Buffer), lese den Buffer über ob_get_contents() aus und lösche ihn über ob_end_clean() - oder du nutzt eine Syntax für String-Literale, bei der möglichst wenigen Zeichen eine spezielle Bedeutung zukommt.

    Insbesondere ist dazu die durch doppelte Anführungszeichen (") beschränkte Syntax wenig geeignet. Passender wäre die durch einfache Anführungszeichen (') beschränkte Syntax (problematische Zeichen: ', \) oder in aktuellen PHP-Versionen die Nowdoc-Syntax. Siehe auch http://php.net/manual/en/language.types.string.php.

    Unabhängig davon musst du natürlich Daten (d.h. Inhalte, welche kein (X)HTML-Markup darstellen sollen) vor ihrer Ausgabe im (X)HTML-Kontext passend maskieren, was bereits an Roins Beispiel zurecht kritisiert wurde. Dazu eignet sich PHPs htmlspecialchars()-Funktion. Tust du dies nicht, verursacht dies nicht nur leicht Probleme, sondern führt auch zu sicherheitsrelevanten Schwachstellen, insbesondere wird es dadurch u.U. möglich, beliebigen JavaScript-Code im Kontext deiner Website zur Ausführung zu bringen (Cross-Site Scripting, XSS).

  5. #25
    Mitglied

    (Threadstarter)


    Registriert seit
    Mar 2011
    Ort
    Switzerland
    Beiträge
    36

    Standard Re: PHP Formular Check

    Zitat Zitat von Kugelfisch23 Beitrag anzeigen
    Du könntest entweder (wie Exterminans vorgeschlagen hat) explizites Output-Buffering, einsetzen und dann den PHP-Kontext verlassen - nutze ob_start() zur Erstellung eines Buffers, führe dann die Ausgaben durch (diese landen dann im Output-Buffer), lese den Buffer über ob_get_contents() aus und lösche ihn über ob_end_clean() - oder du nutzt eine Syntax für String-Literale, bei der möglichst wenigen Zeichen eine spezielle Bedeutung zukommt.
    Das klingt sehr interessant, aber ich habe noch nie mit Output-Buffering gearbeitet. Aber ich werde es mir mal näher anschauen

    Zitat Zitat von Kugelfisch23 Beitrag anzeigen
    Unabhängig davon musst du natürlich Daten (d.h. Inhalte, welche kein (X)HTML-Markup darstellen sollen) vor ihrer Ausgabe im (X)HTML-Kontext passend maskieren, was bereits an Roins Beispiel zurecht kritisiert wurde. Dazu eignet sich PHPs htmlspecialchars()-Funktion. Tust du dies nicht, verursacht dies nicht nur leicht Probleme, sondern führt auch zu sicherheitsrelevanten Schwachstellen, insbesondere wird es dadurch u.U. möglich, beliebigen JavaScript-Code im Kontext deiner Website zur Ausführung zu bringen (Cross-Site Scripting, XSS).
    Vielen Dank für eure Tipps. Ich denke sie haben mir sehr geholfen.

  6.  
     
     
Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •