Kategorien
WordPress

Webseiten Input Feld deaktivieren in WordPress Kommentaren

Wenn man nicht will, dass Spammer und Suchmaschinenoptimierer Ihre Kommentare mit Links zu Ihrer Webseite hinterlassen, sollte man entweder

  • die Freischaltung der Kommentare von Hand übernehmen (Einstellungen->Diskussion == muss jeder Kommentar von einem Administrator überprüft werden.->Häckchen)
  • einen Spam Filter wie Akismet benutzen, der allerdings nur für private Zwecke (ohne Werbung) kostenlos ist
  • oder die Eingabe von Webseiten in das entsprechende Input-Feld der Kommentare verhindern

Dazu muss einfach folgender Code wie folgt auskommentert werden in der wp-includes/comment-templates.php (ca. Zeile 1522):

    $fields =  array(
        'author' => '<p>' . '<label for="author">' . __( 'Name' ) . '</label> ' . ( $req ? '<span>*</span>' : '' ) .
                    '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
        'email'  => '<p><label for="email">' . __( 'Email' ) . '</label> ' . ( $req ? '<span>*</span>' : '' ) .
                    '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
//        'url'    => '<p><label for="url">' . __( 'Website' ) . '</label>' .
//                    '<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>',
    );

Die Variante schützt einen wahrscheinliche nicht vor Pings.

Kategorien
CSS

Cross Browser kompatibeles CSS mit YAML

Wer eine Chance haben will, dass seine Webseite in allen gängigen Browsern gleich aussieht, der ist gezwungen ein CSS Framework zu benutzen, welches die Unterschieder eine einzelnen Browser ausgleicht, wie z.B: YAML.

Sehr konfortabel ist auch der YAML Builder, mit dem verschiedene Layouts mit 1,2 oder 3 Spalten erstellt werden können.

Einbindung von YAML

  1. Als erstes müssen aus dem yaml source Ordner und die Ordner js und yaml in das Projektverzeichnis kopiert werden.
  2. Dann wird im YAML Builder das Layout zusammengeklickt und Get Code ausgewählt..
  3. Der HTML Code kommt in die index-Datei (oben rechts mit der Maus über das Dokument und dann copy to clipboard ).
  4. Die my_layout.css kommt in das Verzeichnis /css (muss angelegt werden). Das ist wichtig, weil sonst die Pfade nicht stimmen. Folgende Dateistruktur muss am Ende enstehen:

Kategorien
iPhone/iOS

erste iPhone App im App Store

Am Samstag war es soweit, meine erste App hat es in den App Store geschafft: CD Ankauf ZeeDee.

Der Warteprozess auf Aufnahme in den App Store und das Testen durch Apple gingen ziemlich schnell: Montag abend habe ich die App mit dem Application Loader hochgeladen, am Freitag kam die Nachricht, dass jetzt getestet wird und am Samstag früh wurde die App in den App Store gestellt. Meine App Store Wartezeit betrug also nur ca. 5 Tage, was absolut ok ist.

Zur App: Ich muss nicht sagen, dass diese App alle Apps revolutionieren wird und alle anderen Apps überflüssig macht. In Zukunft brauch man nur noch die CD Ankauf App und der Rest kann weg. Dadurch entfällt nerviges rumwischen auf dem Display um auf seine letzte App Auswahl Seite zu gelangen. 🙂

Kategorien
iPhone/iOS

iTunes Connect nicht im App Store zu finden

Nach Veröffentlichung meiner ersten App Cd Ankauf ZeeDee, wollte ich mir die App zum Tracken der App Verkäufe/Downloads downloaden: iTunes Connect Mobile.

Dabei hat ich das Problem, dass ich Sie im App Store auf meinem iPhone nicht finden konnte:

20110829-101738.jpg

Der Ausweg war, über mein iTunes auf dem PC/MAC die App zu suchen, wo ich sie finden konnte und von dort aus zu installieren. Einfach iPhone anschließen, in iTunes auf „Gratis App“ klicken und danach synchronisieren, falls nötig.

 

Kategorien
MySQL PHP

Strings speichern in MySQL und Sicherheit

Um einen String abzuspeichern mit unbekanntem Inhalt, sollte immer die PHP Funktion mysql_real_escape_string verwendet werden:

$mystring = mysql_real_escape_string($mystring );

Damit werden bösartige Strings entschärft, mit denen großer Schaden angerichtet werden kann wie:

$string = "1';DELETE FROM table WHERE 1;#";
$sql = "SELECT * FROM table WHERE id = '$string' ";

Dies kann durch die Verwendung der Funktion verhindert werden.

 

 

Kategorien
MySQL

MySQL SELECT Daten, die nicht älter als x Tage/Stunden/Minuten sind

Wenn man eine Spalte vom Typ timestamp hat und nur Daten eines bestimmten Alters selektieren will,  kann man dies in MySQL tun mit der DATE_SUB Funktion:

SELECT * FROM ... WHERE  timestamp > TIMESTAMP(DATE_SUB(NOW(), INTERVAL 2 hour))

Damit werden nur Daten selektiert, die nicht älter als eine Stunde sind. Das gleiche funktioniert bspw. auch mit Tagen:

SELECT * FROM ... WHERE  timestamp > TIMESTAMP(DATE_SUB(NOW(), INTERVAL 2 day))

und  Minuten:

.SELECT * FROM ... WHERE  timestamp > TIMESTAMP(DATE_SUB(NOW(), INTERVAL 10 minute))

Eine andere Möglichkeit wäre, PHP dafür zu benutzen, aber aus Performance Gründen sollte man immer MySQL vorziehen.

Kategorien
MySQL

MySQL Duplicate entry ‚1‘ for key ‚PRIMARY‘

Wenn man eine Fehlermeldung bekommt wie

Duplicate entry '1' for key 'PRIMARY'

Dann sollte man den Eintrag entweder mit UPDATE (beste Variante)

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;

oder einfach nichts verändern in der Datenbank entweder mit

INSERT IGNORE INTO table (a,b,c) VALUES (1,2,3)

Wobei hier auch mögliche Fehlermedlungen unterdrückt werden. Achtung!

Kategorien
MySQL

MySQL speichert immer 2147483647 ab

Die Lösung ist ganz einfach, die 2147483647 ist der maximale Wert einer int-Variablen in MySQL (231 − 1). Wenn versucht wird in eine int-Spalte einen größeren Wert zu schreiben, so speichert MySQL immer dieses Wert ab, anstelle des gewünschten, größeren Wertes. Dann sollte man den Datentyp bigint nehmen, der Zahlen bis 9223372036854775807  zulässt (signed) oder auf unsigned (nur positive Werte, reicht bis 4294967295) umstellen.

Kategorien
SEO

Google Panda Update SEO

Google hat mit seinem neusten Update ihres Ranking Algorithmusses den Kampf gegen schlechten und doppelten Inhalt aufgenommen.

Leider funktioniert das sehr gut, wie ich auf meiner Webseite wo-bin-ich-jetzt.de festellen musste. Am 12.8.2011 wurde das Update in Deutschland aktiviert und führte auf meiner Seite prompt zu einem Einbruch der Google-Besucher um -80%, weil dort ausschließlich doppelter Content von verschiedenen APIs verwendet wird.

Eingie Kriterien für schlechte Qualität von Inhalten sind

  • zu kurze Texte oder gar kein
  • keine Strukturierung der Texte mit Auszählungen und Überschrifthierachien (h1-h5)
  • einfache Keyword Wiederholungen ohne Sätze zu benutzen

Außerdem kann Google auch die Verweildauer auf der Webseite messen, wenn User über Google suchen, auf einen Link klicken und kurze Zeit später wieder zurück sind und weitersuchen. Ich habe beobachtet, dass besonders die Seiten mit schlechter Verweildauer besonders abgestrafft worden sind.

Die Lösung kann nur sein, den doppelten Inhalt zu verändern und in verschiedene Satzformen zu skripten, um einen attrativeren Content zu schaffen. Dabei muss auch auf die Eigenheiten der deutschen Sprache wie Fälle und Ein- und Mehrzahl geachtet werden.

Kategorien
PHP Zend Framework

Design Patterns im Zend Framework

Für einen Uni Vortrag habe ich mich mit den zahlreichen Design Patterns im Zend Framework beschäftigt. Folgende Themen werden beleuchtet mit Code- Beispielen:

Gliederung:

1. MVC
2. Front-Controller
3. Singleton
4. Row-Data-Gateway und Table-Data-Gateway
5. Registry

Download:

zend_framework_design_patterns