PHP: Drei Gleichheitszeichen für mehr Sicherheit
Vergleiche in PHP erledigen Sie in der Regel mit zwei hintereinander gestellten Gleichheitszeichen, alsoif ($intWert == 0)Doch PHP ist nicht typensicher. Was, wenn Sie zum Beispiel if ($bFlag == true)einsetzen? Dann trifft die Bedingung zu, falls $bFlag true ist oder falls der Wert der Variablen 1 ist. Letzteres kann zu unerwünschten Problemen und schier [...]
[13.06.2006 | 0 Kommentare | 8081 Abrufe | Note 1.25 ]
VMware Workstation: Festplatten des Gastsystems vergrößern
Die Oberfläche von VMware erlaubt das Ändern sehr vieler Eigenschaften einer virtuellen Maschine. Was aber über diese GUI nicht möglich ist: Die Kapazität der Gastplatte hochdrehen. Stattdessen ist man auf die Größe festgelegt, die man beim Einrichten angegeben hat.Im Programmordner von VMware finden Sie mit dem "vmware-vdiskmanager" ein Tool, das dies [...]
[06.12.2005 | 1 Kommentare | 31477 Abrufe | Note 1.32 ]
Hackversuche gegen die Secure Shell unterbinden
Um zu verhindern, dass durch einen Hackversuch hunderte sshd-Tasks gleichzeitig gestartet werden, fügen Sie die ZeileMaxStartups 3:30:10in das Configfile/etc/ssh/ sshd_config ein. Diese Beschränkung ist effektiv, aber kompliziert: Die Werte im Beispiel bedeuten, dass 2 (= 1. Wert minus 1) unauthenticated (also im Login-Stadium befindliche) sshd-Verbindungen [...]
[25.10.2006 | 0 Kommentare | 2374 Abrufe | Note 1.40 ]
Neuerungen von MySQL 5: Stored Procedures, Trigger und Views
Mit der Version 5 ist MySQL den großen Datenbanken wie MS-SQL oder Oracle wieder ein Stück näher gerückt. Die wichtigsten neuen Fähigkeiten sollten Sie kennen, denn sie machen Ihre Programme sicherer und effizienter.Mit den Stored Procedures von MySQL können Sie Programmcode innerhalb des Datenbankservers ausführen lassen. Das macht MySQL um einiges [...]
[12.10.2006 | 3 Kommentare | 39223 Abrufe | Note 1.43 ]
PHP 5.1 und Datenbank: Einfacher Zugriff mit PDO
In PHP 5.1 ist ein Abstraktionsmodell für den Datenbankzugriff eingebaut. Seine Vorteile:- es gibt ein einheitliches Verfahren für den Zugriff auf Datenbanken statt wie bisher unterschiedliche Funktionen für unterschiedliche Datenbanken- Zusatz-Features wie "Prepared Statements" erleichtern die Verknüpfung von Daten und Variablen, sichern Zugriffe ab [...]
[14.04.2006 | 1 Kommentare | 18019 Abrufe | Note 1.45 ]
SSH-Daemon (sshd) gegen Attacken sichern
Immer wieder sehr beliebt bei pubertären Script-Kiddies scheinen Attacken auf den Secure-Shell-Daemon sshd zu sein. Dabei werden innerhalb von Sekunden hunderte von Login-Versuchen mit Standard-Usernamen wie root, ftp, admin etc. und Passworten aus dem Wörterbuch ausprobiert - frei nach dem Motto: Irgendwo wird's schon klappen. Solche Attacken sind [...]
[12.01.2006 | 0 Kommentare | 16441 Abrufe | Note 1.48 ]
Groß- und Kleinschreibung bei MySQL-Abfrage unterscheiden
Stringvergleiche sind in MySQL nicht case-sensitiv. Das bedeutet, dass vom MySQL die beiden Zeichenketten "abc" und "ABC" als identisch angesehen werden.Das ist meistens nicht störend. Manches Mal benötigt man aber einen Vergleich auf vollkommen identische Schreibweise. Dafür muss man das Schlüsselwort BINARY in den Vergleich einbauen. Hat man also [...]
[28.03.2006 | 3 Kommentare | 2675 Abrufe | Note 1.50 ]
PHP: Bequemes Debugging mit spezieller Funktionssammlung
Taucht in einem PHP-Skript ein Fehler auf, untersucht man meistens über einen echo-Befehl den Inhalt von Variablen. Handelt es sich dabei um ein Objekt oder ein verschachteltes Array, wird die Ausgabe schnell unübersichtlich - auch wenn man den Befehl print_r() dazu einsetzt.Schnelle Abhilfe bietet die Bibliothek Debuglib. Sie führt die Funktion print_a() [...]
[05.02.2008 | 0 Kommentare | 2574 Abrufe | Note 1.50 ]
Mit Javascript Formulare überprüfen
Formulare sind nur dann gut, wenn Sie richtig ausgefüllt werden. Um Fehler zu vermeiden, müssen Sie die Formulare prüfen, bevor Daten gespeichert werden. Diese Prüfung erfolgt entweder auf dem Server oder - ressourcenschonend - schon beim Client. Dazu brauchen Sie nur ein paar Zeilen Javascript.Ein simpler TestUm das Ineinandergreifen von Javascript, [...]
[14.04.2006 | 5 Kommentare | 56411 Abrufe | Note 1.55 ]
Cron: Ein Logfile für den Skript-Ablauf erzeugen
Viele Shell-Skripte laufen automatisiert ohne Benutzereingriff ab, etwa vom cron-Dämon gestartet. Da kann man sich bei einer Fehlersuche viele graue Haare ersparen, wenn das Skript-Biest über sein Tun Protokoll führt...Mit wenigen Zeilen ist das erledigt:#!/bin/sh# Zunächst der Name des LogfilesLOGFILE='/var/log/skript.log'# Die kleine Log-Funktionfunction [...]
[12.01.2006 | 2 Kommentare | 11295 Abrufe | Note 1.57 ]
MySQL: IP-Adressen komprimiert speichern
Werden IP-Adressen als Zeichenkette gespeichert, kostet das Platz. Denn um die maximale Länge einer Adresse zu berücksichtigen, braucht man 15 Zeichen.Die Funktion inet_aton(), die es seit MySQL 3.23 gibt, wandelt eine als String angegebene IP-Adresse dagegen in einen Integer-Wert um, der lediglich 4 Byte beansprucht. Sie definieren das verwendete Feld [...]
[24.11.2006 | 0 Kommentare | 4578 Abrufe | Note 1.57 ]
MySQL: Optimieren Sie Ihre Abfragen
SQL-Server wie MySQL sind keine plumpen Datenspeicher, sondern Spezialisten mit hoch entwickelten Fähigkeiten. Diese Stärken sollte man beim Einsatz mit Skriptsprachen wie PHP voll nutzen, um schnelle und elegante Anwendungen zu entwickeln.Ein Beispiel für die Wichtigkeit der richtigen Aufgabenverteilung zwischen Skriptsprache und Datenbankserver: Aus [...]
[08.10.2006 | 0 Kommentare | 27541 Abrufe | Note 1.58 ]
Javascript-Code auslagern
Zu viel Javascript in einer HTML-Seite schadet der Übersicht. Deshalb lagern Sie Javascript-Code am besten in eine oder mehrere eigene Dateien aus. Um den Code in die HTML-Seite einzubinden, verwenden Sie den folgenden Befehl:<script src="scriptname.js" language="JavaScript" type="text/javascript"> </script>Dieser Befehl bindet die Datei [...]
[28.03.2006 | 0 Kommentare | 3244 Abrufe | Note 1.60 ]
PHP: Deutsches Datumsformat erzeugen
Es gibt Fälle, wo beim Ermitteln eines Datums aus der Datenbank keine Manipulation des SQL-Befehls möglich ist. Dann muss der Datumswert in PHP auf deutsches Format getrimmt werden. Jeder MySQL-Datumswert hat als PHP-Variable den Typ "String", egal ob es sich um ein Datenbankfeld vom Typ DATE oder DATETIME handelt. PHP kann Datumsformatierungen aber [...]
[21.08.2006 | 0 Kommentare | 14989 Abrufe | Note 1.60 ]
Cron: Doppelte Script-Ausführung per LOCK vermeiden
Oft wird ein Shell-Script durch Cron regelmäßig in kurzen Abständen aufgerufen - beispielsweise um ein Logfile auszuwerten. Dabei kann es vorkommen, daß plötzlich das selbe Script zweimal oder noch öfter aktiv ist. Das führt meist zu unerwünschten Ergebnissen, bis hin zum Datenverlust - wenn etwa temporäre Dateien überschrieben werden, die aber vom [...]
[05.12.2005 | 0 Kommentare | 4358 Abrufe | Note 1.67 ]
Skype verhindert Start eines lokalen Webservers
Für jeden Webentwickler ist ein lokaler http-Server eine praktische Einrichtung. So kann man mit geringem Aufwand Applikationen testen, die nach der Fertigstellung auf den Liveserver hochgeschoben werden.Will sich nun der Webserver auf dem Desktop-System partout nicht starten lassen, kann das an einem laufenden Skype liegen. Denn das belegt in der Standardeinstellung [...]
[05.01.2006 | 1 Kommentare | 3056 Abrufe | Note 1.67 ]
ASP.NET: PDFs zusammenbauen - Geschichte einer erfolgreichen Migration
Eine meiner älteren Anwendungen dient zum Abruf von Rechnungen im PDF-Format über Internet und Fax. Der Webabruf war dabei so gelöst, dass der Kunde eine Rechnungsnummer eingeben muss, worauf sich das System die Rechnungen plus separater Anhänge im PDF-Format von einem Fileserver innerhalb des Firmennetzwerks holt, zusammenbaut und per Download zur [...]
[04.03.2006 | 0 Kommentare | 3535 Abrufe | Note 1.67 ]
PHP: Performance von Programmen messen
Sie möchten wissen, wie schnell Ihre PHP-Programme sind. Dann probieren Sie es mit ab2, dem Apache Benchmark. Falls Sie noch Apache 1.3 verwenden: Hier gibt es das gleiche Programm unter dem Namen ab. In Suse Linux und in Debian rufen Sie das Programm mit/usr/sbin/ab2auf. Als Parameter geben Sie die Seite ein, die Sie prüfen wollen, zum Beispiel/usr/sbin/ab2 [...]
[13.06.2006 | 0 Kommentare | 3286 Abrufe | Note 1.67 ]
MySQL: Zufällige Datensätze ermitteln
SQL-Datenbanken sind Meister der Ordnung. Manchmal möchte man aber bewusst zufällige Ergebnisse erzielen. Zum Beispiel ist es für ein Content Managent System ein nettes Feature, wenn man in Kurzform eine zufällige Auswahl von Artikel präsentiert bekommt. Bei MySQL ist so ein Ergebnis einfach zu erzielen. Der Befehl ORDER BY bekommt als weitere Angabe [...]
[13.06.2006 | 1 Kommentare | 7997 Abrufe | Note 1.67 ]
PHP: Debugging im Skript ein und ausschalten
Ein Weg, PHP-Skripte zu debuggen ist, im Code echo-Statements unterzubringen. Die geben dann den aktuellen Wert einer Variablen aus. Auch die Funktion var_dump() ist beliebt, um den Inhalt von Arrays anzusehen. Das Problem ist nur: wenn man später vergisst, die Debug-Information zu löschen, sieht der Nutzer Dinge, die ihn vielleicht nichts angehen. [...]
[21.08.2006 | 1 Kommentare | 3788 Abrufe | Note 1.67 ]
PHP: Eigene Fehlermeldungen erzeugen
Damit kein Fehler unbemerkt bleibt, bringt PHP einige Verfahren mit, um Error-Meldungen zu erzeugen. Je nach PHP-Version kommen unterschiedliche Verfahren zum Einsatz, um Fehlermeldungen zu erzeugen. In PHP 4 gibt es nur trigger_error() oder - gleichwertig - user_error(). Mit PHP 5 kommen zusätzlich die aus Java und C# bekannten try...catch-Konstruktionen [...]
[09.10.2006 | 0 Kommentare | 7188 Abrufe | Note 1.67 ]
Simple XML: Schnelles Einlesen und Verarbeiten von XML-Dateien
Seit PHP 5 ist die Erweiterung SimpleXML eingebaut. Wie der Name schon sagt, macht sie die Arbeit mit XML-Dateien besonders einfach. Nehmen wir eine kurze XML-Datei wie diese:<?xml version="1.0"?><sitelist> <site> <url>http://www.strassenprogrammierer.de</url> <tags>PHP MySQL Python Ruby</tags> </site> [...]
[12.10.2006 | 0 Kommentare | 2151 Abrufe | Note 1.67 ]
Eingabeformulare mit komfortabler Fehlerbehandlung programmieren
Nutzer mögen Eingabeformulare nicht, weil sie oft schwer und unangenehm zu bedienen sind. Sie als Programmierer haben aber die Möglichkeit, Benutzern den Umgang mit Formularen so angenehm wie möglich zu machen. Ein Beispielprogramm zeigt, wie es geht. Zu Beginn überprüft das Programm, ob das $_POST-Array mehr als 0 Einträge hat. Falls ja, übergibt es [...]
[25.10.2006 | 0 Kommentare | 4552 Abrufe | Note 1.67 ]
PHP: Führende Nullen auffüllen
Sie möchten eine Zahl mit führenden Nullen auffüllen, zum Beispiel eine Kontonummer? Dann hilft Ihnen str_pad(), wie das folgende Skript zeigt:<?php$number = 9126443;echo str_pad($number, 10 ,'0', STR_PAD_LEFT);?>str_pad() erwartet als ersten Parameter den zu bearbeitenden String - in diesem Fall wird die Zahl implizit in einen String konvertiert. [...]
[09.11.2006 | 1 Kommentare | 31076 Abrufe | Note 1.67 ]
Tastenkürzel für HTML-Element definieren
In allen Windows-Anwendungen können Sie dem Anwender die Bedienung durch Tastenkürzel erleichtern. Das klappt auch auf Webseiten. Sie können so eine Tastenkombination definieren, mit der der Anwender zu einem HTML-Element wie einem Link oder einem Eingabefeld springt oder einen Button betätigt.Erreicht wird das durch das Attribut accesskeyim HTML-Tag. [...]
[24.11.2006 | 0 Kommentare | 1966 Abrufe | Note 1.67 ]