Letzte Aktualisierung: 28.09.2002

Erratum

Allgemein

Änderung der Voreinstellung

Einige der Beispiele aus dem Buch scheinen mit neueren PHP-Versionen nicht zu funktionieren, es erscheinen ständig Fehlermeldungen und Warnungen. Nähere Informationen samt Abhilfe:
Geänderte Voreinstellung von register_globals
Geänderte Voreinstellung des Error-Reportings

Keys von assoziativen Arrays in Hochkommas einschließen

Wenn auf Inhalte von assoziativen Arrays zugegriffen werden soll, müssen die Keys innerhalb der eckigen Klammern in Hochkommas eingeschlossen werden. Andernfalls melden neue PHP-Versionen Fehler (genauer: "Notice").
Streng genommen handelt es sich tatsächlich um Fehler, wenn die Keys nicht in Hochkommas eingeschlossen sind.
Beispiel:  
Notice: Use of undefined constant tag - assumed 'tag' in C:\Programme\Apache Group\Apache2\htdocs\test\php\buch2\newssystem.php on line 89

Kapitel 2

Abschnitt 2.6.2, Seite 48:

Kein wirklicher Fehler, aber offenbar habe ich nicht deutlich genug ausgeführt, daß die Programme mysqladmin und mysql unter Windows von der DOS-Eingabeaufforderung aus gestartet werden müssen. Der Start per Doppelklick auf das Piktogramm der Programme funktioniert nicht! (Unter Linux brauchen Sie keine Pfadangaben eingeben, wenn Sie MySQL von Ihren Distributions-CDs aus installiert haben.)
Öffnen Sie also eine MS-DOS-Eingabeaufforderung und starten Sie die Programme von der Kommandozeile aus. Ich gehe davon aus, daß Sie MySQL nach C:\Programme\MySQL installiert haben. Falls Sie die Datenbank in ein anderes Verzeichnis installiert haben, passen Sie die Pfadangaben entsprechend an:

  1. Öffnen Sie eine DOS-Eingabeaufforderung
  2. Anlegen der Datenbank:
    c:\programme\mysql\bin\mysqladmin -u root create php_db
  3. Mysql-User erzeugen:
    zuerst die Datenbank-Shell starten:
    c:\programme\mysql\bin\mysql -u root mysql
    nun die erste SQL-Query eingeben:
    insert into user (host,user.password) values
    ('localhost', 'apache', password('geheim'));

    nun die SQL-Query zum Freischalten des Zugriffs:
    insert into db (host,db,user, select_priv, insert_priv, update_priv,
    delete_priv, create_priv, drop_priv, grant_priv, index_priv, alter_priv)
    values ('localhost', 'php_db', 'apache',
    'Y' ,'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');
    Verlassen Sie die Datenbank-Shell mit quit
  4. Veranlassen Sie die Datenbank zum Neueinlesen der Einstellungen:
    c:\programme\mysql\bin\mysqladmin -u root reload
  5. Setzen Sie das Passwort für den Datenbank-Administrator:
    c:\programme\mysql\bin\mysqladmin -u root -p password 'new-password'

Kapitel 3

Abschnitt 3.2.3, Seite 66:

Die letzte Beispielzeile muß lauten:
 
$zeichenkette = "Hallo, liebe Leserin";
 
Nach dem Zuweisungsoperator muß ein Anführungszeichen statt eines Hochkommas stehen.

Abschnitt 3.2.6, Seite 76:

Die erste Beispielzeile muß lauten:
 
$suchmuster = "[A-Z]";
 
Das abschließende Anführungszeichen fehlte.

Abschnitt 3.2.12, Seite 103:

Bei den Funktionen next() und prev() werden zuerst die Array-Zähler erhöht bzw. vermindert und danach der Wert des nunmehr aktuellen Array-Elementes ausgegeben.
Bei:
 
$freunde = array("Jimmy", "Peter", "Birgit", "Tanja");
echo next($freunde);

 
wird somit Peter ausgegeben.

Kapitel 5

Abschnitt 5.3.1, Seite 212:

Die SQL-Query zum Erzeugen der Tabelle artikel muß lauten:
 
create table artikel(
  nummer INT UNSIGNED,
  ueberschrift TEXT,
  vorspann TEXT,
  inhalt TEXT,
  autor TEXT
);

 
Fälschlicherweise war nummer UNSIGNED INT angegeben.

Abschnitt 5.3.2, Seite 217 ff:

Die Funktion generate_number() scheint unter manchen Versionen von Betriebssystem und PHP falsche Artikelnummern zu erzeugen, wenn es für den jeweiligen Tag bereits Artikel in der Datenbank gibt.
Dieses Problem berichteten mir mehrere Leser. Leider konnte ich das Problem auf den mir zur Verfügung stehenden Maschinen (verschiedene Windows-Versionen, SuSE Linux 8.0, Linux from Scratch 3.3, Mac OS X 10.2.1) nicht nachvollziehen. Auch konnte ich keinen offensichtlichen Fehler in der Funktion finden. Im Moment kann ich deshalb für dieses Problem keine Abhilfe geben. Sorry.