Wenn man eine Zahl mit führenden Nullen versehen will, wie z.B. 001, dann bietet sich die Funktion str_pad an:
$nummer3stellig = str_pad(1, 3, 0, STR_PAD_LEFT);
PHP Probleme,Tipps und Tricks
Wenn man eine Zahl mit führenden Nullen versehen will, wie z.B. 001, dann bietet sich die Funktion str_pad an:
$nummer3stellig = str_pad(1, 3, 0, STR_PAD_LEFT);
Wenn man nicht will, dass Spammer und Suchmaschinenoptimierer Ihre Kommentare mit Links zu Ihrer Webseite hinterlassen, sollte man entweder
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.
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.
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:
CodeIgniter hat aufgrund der Sichheitsprobleme von Get-Variablen dieses standmäßig deaktiviert, d.h. sie werden überschrieben beim Starten der Webseite.
Ein Möglichkeit GET-Variablen trotzdem zu nutzen und gleichzeitig suchmaschinenfreundliche URLs zu erzeugen ist:
$this->uri->segment(3)
Dieser Befehl gibt bei einer URL namens:http://www.foo.de/1/2/3/ den Wert 3 zurück.
Der Vorteil ist, dass keine Namen-Wert-Paare mehr in der URL befindlich sind, sondern nur noch die Werte, was die Länge der URL verkürzt und sehr seo freundlich ist. Der Nachteil ist, dass die Reihenfolge sich natürlich verändern kann und es dann zu Problen kommt.
Um einen RESTful Service in CodeIgniter einzubauen, nutzt man am besten die sehr gute Bibliothek von Phil Sturgeon, vielen Dank dafür!
Ich habe mich leider mit dem White Screen of Death bei Code Igniter rumschlagen müssen und folgende Lösung gefunden: Die Bibliothek in der neusten Version 2.4 funktioniert nicht mit CodeIgniter 1.7x. Es sollte die Version 2.2 der Bibliothek installiert werden.
Um das zu überprüfen, kann die Versionsnummer von CodeIgniter in der Datei system/codeigniter/CodeIgniter.php herausgefunden werden.
Wenn der REST-Service läuft, sollte man übrigends die folgende Zeile in der REST_controller.php abändern,damit deutsche Umlaute und Sonderzeichen korrekt ohne Error : Entity ‚ouml‘ not defined usw. angezeigt werden:
Zeile 693
$value = htmlspecialchars(html_entity_decode($value, ENT_QUOTES, 'UTF-8'), ENT_QUOTES, "UTF-8");
Codeignitor macht einem das debuggen nicht einfach, weil bei einem normalen printf oder var_dump() Ausgaben die komplette Seite nicht geladen wird und es nur einen Serverfehler zurückgibt. Deshalb wird der Entwickler gezwungen, sein Projekt ordentlich zu debuggen, es gibt mehrer Möglichkeiten:
Die Installation von FirePHP in Codeignitor ist sehr gut hier beschrieben.
Die Debug Informationen können mit folgendem Code in der Firebug Konsole ausgegeben werde:
$this->firephp->log('Message');
Der sehr gute Codeigniter Profiler kann mit dem folgenden Befehl aktiviert werden:
$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate");
$this->output->set_header("Cache-Control: post-check=0, pre-check=0");
$this->output->set_header("Pragma: no-cache");
$this->output->enable_profiler(TRUE);
Damit die eigene Meinung auf der ganzen Welt ankommt und nicht nur der eigen Freundeskreis von der verbalen Ergüssen genervt wird, bieten sich Katalogdienste an, die automatisch angepingt werden, wenn neue Artikel zur Verfügung stehen. Diese Dienste nehmen dann ihre Texte in ihre Suchmaschinen und Webseiten auf. Dabei muss beachtet werden, dass die richtigen Katalogdienste ausgewählt werden, weil Google gern Artikel bei anspruchlosen abstraft.
Eingefügt werden können diese Dienste unter Einstellungen->Schreiben->Update Services.
Eine Übersicht ist bei WordPress erhältlich.
Bei einer Fehlermeldung wie
Das Verzeichnis xyz/uploads kann nicht angelegt werden. Ist das übergeordnete Verzeichnis durch den Server beschreibbar?
Sollte nicht wie oft geraten, die Schreibrechte der Ordners wp-content auf 777 gesetzt werden, sondern ein Verzeichnis namens uploads in diesem Ordner angelegt werden und dieser dann mit chmod 777 Rechten ausgestattet werden, weil sich ansonsten große Sicherheitslücken auftuen.