Sammeltopic für kurze Codingfragen

Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!

Zu der Infoseite von „Die Mo-Mo-Manie“
  • Ich hab ein Problem mit meiner Pagination (Seitenblätterfunktion) von meinem Gästebuch. Wenn ich auf Seite 2 oder 3 gehe, gibt es mir nicht die 10 aus, die da eigentlich sein müssten, sondern alle Einträge.



    Habe eigentlich alles gründlich nach einem Tutorial ausgearbeitet, will aber nicht klappen.

  • Vielleicht den Limit-String aus Zeile 85 passend an den eigentlichen Query in Zeile 72 Anhängen?
    Ansonsten reicht es btw auch, um die Anzahl aller Einträge einer Tabelle zu bestimmen, mit der SQL-Funktion COUNT() zu arbeiten. Damit kannst dir dann deine Limit-Parameter errechnen. Will heißen: Der Query aus Zeile 72 wird erst später zum Auslesen der Daten verwendet. Zum bestimmen der Anzahl benutzt du an der Stelle nen Query mit COUNT().

  • Okay, ich habe mal die Variable $max an das Query angehangen, so wie du es gesagt hattest und dabei wahrscheinlich irgendetwas falsch gemacht. Jetzt werden mir nämlich nur die letzten 10 Einträge aus der Tabelle ausgegeben, was vermutlich an dem Limit aus der Variable liegt.



    Den COUNT()-Befehl habe ich erstmal rausgelassen.

  • Ich habe jetzt ein älteres Skript von mir bearbeitet, in dem ich mich selber nicht mehr richtig auskenne. Man kann Pokémon (für einen Tauschbasar) eintragen, welche dann in Tabellen angezeigt werden. Jetzt habe ich eine Seite hinzugefügt, in der man wählen kann, ob es ein Pokémon der 5. oder 4. Generation ist. Das wird dann per $_POST an die eigentliche Eintragungsseite weitergegeben, aber wenn man auf Absenden klickt, kommt nur der immer angezeigte Copyrighthinweis, und nicht die Eintragunsseite.
    Der wichtige Teil des Skripts:


    [PHP]<?php
    if ($page == "choose" AND isset($_POST['pw']) AND $_POST['pw'] == "dfggs" AND isset($_POST['pw2']) AND $_POST['pw2'] == "fgdfs") {
    $pw = $_POST ['pw'];
    $pw2 = $_POST ['pw'];
    echo '
    Willst du ein Pok&eacute;mon, dass sich auf einem Spielmodul der 5. oder auf einem Spielmodul der 4. Generation
    befindet, eintragen?<br />
    <br />
    <form action="?page=add" method="POST">
    <input type="radio" name="generation" value="4"><strong>4. Generation</strong><br />
    <input type="radio" name="generation" value="5"><strong>5. Generation</strong><br />
    <input type="hidden" name="pw" value="'.$pw.'"><br />
    <input type="hidden" name="pw2" value="'.$pw2.'>"<br />
    <input type="submit" value="Absenden">
    </form>';
    }
    elseif ($page == choose AND $_POST ['pw'] != "gjtrs") {
    echo '
    <strong>Error:</strong>2 Passwort falsch!<br />
    <a href="http://unkas.bplioö.net/tb">Zur&uuml;ck zur &Uuml;bersicht</a>';
    }
    // [-] Generationswahlseite
    // [+] Eintrageformular
    if ($page == "add" AND $_POST ['generation'] == "5" AND isset($_POST['pw']) AND $_POST ['pw'] == "tghs" AND isset($_POST['pw2']) AND $_POST ['pw2'] == "ghs") {
    $pw = $_POST ['pw'];
    $pw2 = $_POST ['pw2'];


    echo ' Eintragungsformulare';
    ?>[/PHP]

  • Bevor du mittels $_POST['pw'] bzw. den vergleichbaren Methoden $_GET[] und $_REQUEST[] Werte verwendest empfehle ich noch ein Test mittels isset() ob der Wert überhaupt gesetzt ist und dann der Datentyp und Inhalt dem erwartetem entspricht. Man will ja nicht unnötig Sicherheitslöcher aufmachen ;)

  • 1. Die älteren sollten aber kein Problem damit haben


    Ich dachte IE (mal ausgenommen IE9) hätte Probleme mit HTML 5 und CSS 3.


    2. Gegenfrage: Warum solltest du sie weglassen wollen?


    Naja, weil der Code somit gekürzt wird und Besucher, die die Seite per iPhone/iPad aufrufen von geringeren Ladezeiten profitieren können. Genauso habe ich in einer Zeitschrift gelesen das man die End-Tags weglassen kann (</li>, </p>, etc.), wobei dieses Thema aussagt, dass es recht wenig bringen würde den schließenden Tag wegzulassen.

  • 1. Ältere Browser, die kein HTML5 können, ignorieren glaube ich die HTML5-Tags wie <video> oder <audio>
    Der darin enthaltene Inhalt, mit Ausnahme des Inhalts der Media-Tags, sollte aber angezeigt werden.
    Selbiges gilt für CSS3


    2. Grundsätzlich kann man html, body und head weglassen, was bei älteren Versionen von HTML jedoch auch schon so war.
    Jedenfalls ist es sinnvoll, diese Tags zu schreiben, der Übersicht halber.
    Bei allen anderen Tags mit Ausnahme von <li> sollte man den End-Tag verwenden, weil der Browser sonst nicht weiß, wo ein bestimmer Bereich zu Ende ist.


    Wenn du die Ladezeiten verringern möchtest, könntest du alle Zeilenumbrüche und sonstige Formatierungen weglassen, sprich den Code in nur eine Zeile schreiben.
    Selbiges Prinzip wird z.B. auch bei jQuery verwendet, um die Ladezeiten der JS-Datei zu verringern.
    Da kann man auch ruhig alle Tags schreiben ;)

  • 2. Meinst du die 50 Bytes machen den Brei fett?


    Wurde im verlinkten Thema ausgesagt:

    Zitat

    Das Argument der Byte-Ersparnis lasse ich nicht gelten, die paar Byte im Vergleich zum üblicherweise "dicken" Content an Bildern usw. fallen nicht ins Gewicht.


    Ich wollte jetzt eigentlich nur wissen, ob das Weglassen von Tags Vorteile und/oder Nachteile für die Besucher der Seite hat.

  • Durch weggelassene Tags muss die Fehlerkorrektur des Browsers wieder bemüht werden. Je weniger der Browser zu tun hat umso schneller wird die Seite dem Benutzer auch angezeigt. Suchmaschinen können darüber hinaus auch allergisch reagieren wenn man kein valides HTML verwendet was wiederrum Auswirkung auf die Platzierung in den Suchmaschinen hat. Korrektes HTML und die Suchmaschine freut sich.


    Bei der Byteersparnis muss auch bedacht werden das fast alle Webserver heutzutage in der Lage sind den Inhalt vor dem verschicken zu komprimieren. Wenn der Webserver anständig konfiguriert ist lässt sich viel manuelle Trickserei, wird dann eh automatisch für alle Inhalte durchgeführt.

  • Noch ein Problem: Wie kann ich mittels .htaccess (mod_rewrite) sämtliche alte Adressen auf meine neue URL umleiten, sodass beispielsweise http://abc.xyz/test.php auf http://abc.lol/test.php umgeleitet wird. Es soll im Grunde genommen nur die Subdomain von den Adressen umgeschrieben werden.


    Code
    Redirect / http://www.xyz.de/