Hier ein paar Codeschnipsel die Dir vielleicht weiterhelfen können.

[PHP] Subdomainweiche / Subdomain per Script

Hallo zusammen,

heute habe ich mal etwas spezielles für euch. Sicher ist die Methode etwas veraltet, aber dennoch für den ein oder anderen von nutzen.

Es geht, wie schon der Titel sagt, um Subdomains. Jeder kennt das sicher, man hat eine Domain – wie z.B. “www.meineseite.de” – und möchte dort z.B. ein Forum installieren. Um damit aber nicht die Hauptdomain zu belasten möchte man es auf einer Subdomain einrichten – z.b. “forum.meineseite.de”. Es gibt für Subdomains noch viel mehr Verwendungsmöglichkeiten… aber ich denke jeder weiß was ich meine.

Heutzutage gibts wohl in den meisten Webspaceangeboten zig echte Subdomains dazu und man hat keinen Bedarf an meiner Lösung. Aber falls doch mal jemand noch einen uralt Webspace haben sollte der diese Möglichkeit nicht gegeben bekommt… es gibt vielleicht eine Lösung :)

Ich persönlich habe diese Weiche entwickelt für ein Projekt bei dem jeder User eine eigene Subdomain bekommt. Und da es viele werden sollen wäre das eine heiden Arbeit für jeden User ins System zu gehen und per Hand eine Subdomain anzulegen… also habe ich mir eine kleine Schummelei ausgedacht (die es vielleicht schon oft gibt, dazu habe ich mal nicht gegoogled und selbst gebastelt ;) )

Also, dann starten wir mal. Das Problem hatten wir schon kurz… ich möchte Subdomains anlegen ohne jedes mal per Hand ins System zu müssen. Wenn User “xyz” seine Subdomain “xyz.meineseite.de” aufruft dann soll er die Inhalte seiner Subdomain sehen und nicht meine Hauptseite.
Und so tricksen wir ein bisschen…

<?php
Erst einmal PHP-Tag öffnen… aber normalerweise wird diese Weiche in eine Script eingebaut und er ist Überflüssig.
if ($_SERVER[“SERVER_NAME”] != “localhost”) {
Dann eine Abfrage ob lokal gearbeitet wird. Lokal können wir keine Subdomains aufrufen da wir ja nicht “www.meineseite.de” aufrufen sondern einen lokalen Pfad… also darf die Weiche da nicht aktiv sein.
$SubDom = “.meineseite.de”;
$Subdomain = str_replace($SubDom, “”, $_SERVER[“SERVER_NAME”]);
$Subdomain = trim(strtolower($Subdomain));

So, das ist sie eigentlich. Was wird da gemacht. Erst einmal übergeben wir unseren Domainnamen an die Variable “$SubDom”. Natürlich ohne “www” aber mit dem ersten “.”. In der zweiten Zeile ersetzen wir dann einfach unser “.meineseite.de” in der Servervariable “SERVER_NAME” mit nichts. ;) In der Servervariable steht immer die aufgerufene URL… z.B. “xyz.meineseite.de”.
Als Beispiel: Der User ruft die URL “xyz.meineseite.de” auf. Diese steht nun in der Variable “SERVER_NAME” und wir ersetzen in dieser Variable unsere $SubDom-Variable mit nichts. Das heißt: “xyz.meineseite.de” – “.meineseite.de” = “xyz”… In der Variable “$Subdomain” steht nun also unsere Subdomain. Wir wissen wo der User hin will… und damit können wir jetzt arbeiten.

Man könnte jetzt in einer Datenbank (in der man Userdaten und evtl. zugehörigen Subdomainnamen gespeichert hat) nachschauen ob es die Subdomain überhaupt gibt. Man könnte den User jetzt irgendwohin umleiten, ihm eine andere Seite anzeigen (seine Subdomainseite natürlich) oder oder oder…

Wichtig ist auf jeden fall das der Server alle(!!) Anfragen auf eine Domain umleitet… sonst funktioniert das nicht. Ruft man “xyz.meineseite.de” auf dann muss der Server das gleiche Script aufrufen als wenn man “www.meineseite.de” aufruft. Also alle Inputs müssen auf das selbe Verzeichnis verweisen. Ich weiß nicht wie die Hostinganbieter das Handhaben… da hilft nur eins, ausprobieren.

Aber um das Script erst einmal abzuschließen:
if ($Subdomain == “forum”) {
Wurde die Domain “forum.meineseite.de” eingegeben? Möchte der User also ins Forum…
include_once(./forum.php);
Wir includen die Forumsdatei. Man könnte hier auch eine Weiterleitung zum Forum machen. Wie gesagt, die möglichkeiten sind groß und verschieden.
} else {
header(“Location: http://www.meineseite.de”);
exit;

Wenn die Subdoamin nicht “forum” ist dann ist die URL-Eingabe des Users ungültig und wir schicken ihn auf die Hauptdomain mit “www”.
}
?>

So, das war der Codeschnippsel für die Subdomainweiche. Schlicht, einfach und wirkungsvoll. Sicher bei weitem kein ersatz für eine echte Subdomain. Aber dafür greifen wir hier nicht ins System direkt ein. Die Subdomains sind im nu angelegt und auch im nu wieder gelöscht. Die Einbindung der Unterseiten ist sicherlicht etwas komplizierter und auch ein FTP für den User ist nicht soo einfach machbar… aber sonst find ichs ne super Lösung. :)

Und man kann es auch an seine Bedürfnisse anpassen. Mit ein bisschen basteln ist auch ein FTP kein Problem. Das hier ist nur ein Denkanstoß ;)

In Aktion könnte das dann so aussehen: [Subdomain Service]

Wer Verbesserungen und/oder Anregungen hat… immer her damit :)

Gruß
Gordon


Hinweis: Die Verwendung meiner Codeschnipsel erfolgt auf eigene Gefahr! Ich übernehme auch keine Garantie auf Funktionstüchtigkeit (jeder Server ist anders konfiguriert. Bei Problemen können Sie hier aber gern einen Kommentar schreiben und wir suchen eine Lösung. ;)

[PHP] Informationen über PHP und den Server

Hallo zusammen,

ein sehr wichtiges Werkzeug bei der Programmierung ist die PHP-Funktion “phpinfo()“. Sie wird immer wieder gebraucht wenn man etwas über den Server, die Konfiguration, Variablen und änliches wissen möchte.

Wie gebraucht man es? Ganz einfach… entweder eine neue Datei erstellen oder in eine bestehende (am besten ganz oben) einbauen:

<?php
phpinfo();
exit;
?>

Das war es auch schon. Ruft man diese Datei nun auf gibt PHP alles raus was er “weiß”. Einfach mal ausprobieren, man kann damit nichts kaputt machen ;)

Möchte man zum Beispiel wissen ob Apache mit dem mod_rewrite-Modul compiliert ist… phpinfo (diese Information steht ganz oben mit). Oder ob bestimmte Module includiert sind… phpinfo(). Auch informationen über die aktuelle Seite werden ausgegeben… z.B. welche IP der Besucher hat und noch wichtiger, in welcher $_SERVER-Variablen diese gespeichert ist. Welche Variablen (POST, GET, COOKIE) übergeben bzw. gespeichert sind.

Aber wie gesagt, einfach ausprobieren… es sind nur informationen… man kann nichts kaputt machen oder verändern. ;)

Gruß
Gordon


Hinweis: Die Verwendung meiner Codeschnipsel erfolgt auf eigene Gefahr! Ich übernehme auch keine Garantie auf Funktionstüchtigkeit (jeder Server ist anders konfiguriert. Bei Problemen können Sie hier aber gern einen Kommentar schreiben und wir suchen eine Lösung. ;)

[PHP] Emailadresse auf korrektheit prüfen / validieren

Hallo zusammen,

fast auf jeder Webseite gibt es ein Feld wo der Besucher seine Emailadresse eingeben soll. Ob in einem Kontaktformular, für die Anmeldung bei einem Newsletter oder für die Anmeldung zu einem Mitgliederbereich. Es gibt Anwendungen wo dies nötig ist.

Wir müssen in jedem Fall die Emailadresse prüfen. Ob Sie vom Aufbau her korrekt ist (nicht das der User ausversehen die Felder verwechselt hat und hier eine Internetadresse eingegeben hat) und wie können prüfen ob es die dazugehörige Domain überhaupt gibt. Schreibfehler in der Emailadresse können wir jedoch leider nicht prüfen… bzw. dies nur mit einem Aufwand der sich nicht mehr rentiert.

Hier eine einfache Funktion zum prüfen der Emailadresse:

function mailCheck($email) { 
	return preg_match("/^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-.]+.([a-zA-Z]{2,4})$/", $email); 
}

Bei dieser Funktion wird lediglich geprüft ob der Syntax der Emailadresse korrekt ist. Das heißt ob das “@”-Zeichen an der richtigen Stelle ist, ob eine TLD vorhanden ist. Ob die Domain vorhanden ist wird hier noch nicht geprüft.

Hier nun eine erweiterte Funktion:

function mailcheckDNS($mail) { 
	$email = htmlspecialchars($mail); 
	$r = false; 
	if(preg_match('/(.*?)@(.*?).(w){2,6}/i', $email)) { 
		$split = explode('@', $email); 
		$split2 = explode('.', $split[1]); 
		if(preg_match('/([a-z]){3,64}/i', $split2[0])) { 
			if(preg_match('/([a-z0-9!"$&/()?~#+.:_-]+){1,64}[^@]/i', $split[0])) { 
				$MXCheck = getmxrr($split[1], $mxhosts); 
				if(!empty($MXCheck)) { 
					$r = true; 
				} 
			} 
		} 
	} 
	return $r; 
}

Diese überprüft nun zusätzlich ob die Domain überhaupt existiert indem sie versucht diese zu erreichen. Ist dies möglich dann fällt die Überprüfung positiv aus, wenn nicht dann negativ.

Es gibt keinen 100%igen Emailcheck, aber was man prüfen kann das sollte man auch. Rechtschreibfehler kann man einfach nicht prüfen. Dafür könnten man z.B. den User die Emailadresse 2 mal eingeben lassen, zur Sicherheit.

Gruß
Gordon


Hinweis: Die Verwendung meiner Codeschnipsel erfolgt auf eigene Gefahr! Ich übernehme auch keine Garantie auf Funktionstüchtigkeit (jeder Server ist anders konfiguriert. Bei Problemen können Sie hier aber gern einen Kommentar schreiben und wir suchen eine Lösung. ;)

[PHP] IP-Adresse anzeigen / herausfinden

Hallo zusammen,

heute zeige ich euch wie man ganz einfach die IP-Adresse seines Besuchers rausfindet. Wozu soll das gut sein? Zum Beispiel wenn man dem Besucher diese anzeigen möchte. Aber viel mehr um sie zu speichern. Denn bei Missbrauch kann man damit den Besucher identifizieren… meistens jedenfalls. Gut, eigentlich tut dies schon der Webserver in seinen Logfiles… aber manchmal ist doppelt besser.

Also wie geht das nun… ganz einfach. Sie steht nämlich in einer Server-Variable:

<?php echo “Ihre aktuelle IP-Adresse ist: <b>”.$_SERVER[“REMOTE_ADDR”].”</b>”; ?>

Was heißt das jetzt? “echo” gibt etwas aus… nämlich “Ihre aktuelle IP-Adresse ist:” und “$_SERVER[“REMOTE_ADDR”]” ist die Variable in der die IP des Besuchers gespeichert ist. Diese ist nicht 100% zuverlässig, also verlassen Sie sich bitte nicht darauf. Kommt ein Besucher über einen Proxy so wird hier die IP des Proxy-Servers gespeichert. Aber in der mehrheit ist es wirklich die richtige IP des Besuchers.

Gruß
Gordon


Hinweis: Die Verwendung meiner Codeschnipsel erfolgt auf eigene Gefahr! Ich übernehme auch keine Garantie auf Funktionstüchtigkeit (jeder Server ist anders konfiguriert. Bei Problemen können Sie hier aber gern einen Kommentar schreiben und wir suchen eine Lösung. ;)

[PHP] Einbinden von zusätzlichen Dateien in das Script (include)

Hallo,

heute möchte ich euch zeigen wie man externe / zusätzliche Dateien in ein Script einbindet.

Der große Vorteil von PHP (gegenüber z.B. HTML) ist, das man nicht alles in eine Datei quetschen muss. Besonders wenn das Script mal etwas größer und komplizierter wird, ist es von großem Vorteil bestimmte Elemente auszulagern. So behält man die Übersicht und nur so ist es möglich Objektorientiert zu arbeiten. Haben wir zum Bespiel eine Funktion die wir öfter brauchen so können wir diese in eine extra Datei schreiben und aus jedem beliebigen Script aus aufrufen.

Doch wie funktioniert das? Ganz einfach mit dem “include()”-Befehl. Es gibt dabei Grundlegend 2 verschiedene Befehle. “include()” und “include_once()”. Mit dem ersten Befehl kann man eine bestimmte Datei so oft man möchte in einem Script einbinden. Der zweite lässt die Einbindung einer bestimmten Datei in einem Script nur ein einziges mal zu, sollte ein zweites mal versucht werden die Datei zu includen gibt es einen Fehler. Was ist nun wann gut?

Schreiben wir z.B. folgende PHP-Datei:
<?php
session_start();
?>

So darf diese nur ein einziges mal in einem Script eingebunden werden, da es sonst einen Fehler gibt. Um auszuschließen das die Datei ausversehen noch ein weiteres mal aufgerufen wird benutzen wir “include_once()”.

Haben wir aber ein Logo (Bild) in eine externe Datei ausgelagert dann kann es durchaus möglich sein das wir dieses Logo an mehreren Stellen in einem Script einbinden wollen und müssen. Dann kommt “include()” zum einsatz.
Grundsatzlich ist meine Empfehlung immer include_once() zu benutzen, sofern die Datei nicht unbedingt mehrfach eingebunden werden muss. Damit ist man immer auf der sicheren Seite.

Oft sehe ich Scripte die Menüstrukturen mit “include” realisieren und dabei einen entscheidenen Fehler machen. Daher möchte ich hier kurz darauf eingehen.
Menüstrukturen mit include zu realisieren ist im grunde eine super sache, ich selbst arbeite oft damit. Aber wie schon erwähnt, immer auf die Sicherheit achten!
Also wie funktioniert es? Hier erst einmal das Beispiel wie man es NICHT machen sollte:

<?php
include($_GET[“seite”]);
?>

Was passiert hier… die Seite wird z.B. mit http://www.testdomain.de/index.php?seite=start.php aufgerufen. Das Script liest den übergebenen Wert “seite” aus und bindet diese Datei einfach in das Script ein. Das wars. Funktioniert prima werden jetzt einige sagen. Stimmt, tut es… aber was ist wenn ich jetzt folgendes Aufrufe: http://www.testdomain.de/index.php?seite=./.htaccess
Dann bekommt er, unter umständen, Informationen zu gesicht die Ihn nichts angehen. Und das wäre noch der harmloseste Fall. Hacker können damit richtig böse sachen machen!

Also gestallten wir unser Script sicherer:

<?php
if ($_GET[“seite”] == “start”) {
include_once(“start.php”);
} else {
include_once(“errorseite.php”);
}
?>

Was ist jetzt? Wir überprüfen erst einmal was in der übergebenen Variable “start” steht. Steht dort “start” drin, dann includen wir die Seite “start.php”… diese könnte aber auch “muster.html” heißen… der Besucher unserer Seite hat darin keinen Einblick mehr und wir könnten sogar ein bisschen tricksen um unsere Dateien zu verschleiern… und ein bisschen rate ich sogar dazu. ;)
Ist der Übergebene wert aber nicht “start” (also nicht von uns deklariert) dann geben wir einfach eine vordefinierte “errorseite.php” aus. Es interessiert uns nicht mehr ob da nun Müll in der Variable steht. Und sollte jetzt noch mal einer http://www.testdomain.de/index.php?seite=http://www.google.de aufrufen, dann landet er auf unserer Errorseite und fertig.

Also bitte, zu Ihrer eigenen Sicherheit, niemals die erste Version verwenden. Sicher, sie ist einfacher zu Handhaben… aber nicht nur für Sie ;)

Das Thema “include()” ist noch ein wenig umfangreicher. Aber das würde jetzt den Rahmen hier sprengen. Ich denke die Grundzüge sollten hier erklärt sein und vielleicht greife ich das Thema noch mal auf. Später.

Gruß
Gordon


Hinweis: Die Verwendung meiner Codeschnipsel erfolgt auf eigene Gefahr! Ich übernehme auch keine Garantie auf Funktionstüchtigkeit (jeder Server ist anders konfiguriert. Bei Problemen können Sie hier aber gern einen Kommentar schreiben und wir suchen eine Lösung. ;)

[PHP] Einfacher Datei-Counter

Hallo zusammen,

heute bauen wir uns einen einfachen Counter der seine Daten in einer Datei speichert. Das Prinzip ist einfach. Das Script wird beim Aufruf der Seite gestartet, öffnet eine Datei und holt den aktuellen Zählerstand, erhöht ihn um 1, gibt diesen aus und speichert den neuen (alten Stand + 1) wieder zurück in die Datei.

Und so wird es gemacht.

Als erstes der PHP-Tag, ohne den Bekanntlich nichts geht.
<?php
Dann wird der Dateiname an eine Variable übergeben (man könnte es auch direkt an den Befehl übergeben, aber so finde ich es dynamischer).
$dateiname = “counter.txt”;
Dann wird mit dem “fopen”-Befehl die Datei geöffnet. Der Parameter “r+” bedeutet hierbei das die Datei zum Lesen (read) geöffnet werden soll… das “+” heißt, wenn die Datei nicht vorhanden ist soll versucht werden sie anzulegen (Schreibrechte vorausgesetzt). Das Handle wird der Variable “$datei” übergeben.
$datei = fopen($dateiname,”r+”);
Der Dateiinhalt wird ausgelesen und an die Variable “$zaehler” übergeben, beschränkt auf 10 Zeichen. Das sollte für einen Zähler wohl reichen, wenn nicht einfach erhöhen.
$zaehler = fgets($datei, 10);
Nun wird geprüft ob überhaupt schon etwas in der Datei steht oder ob sie evtl. neu angelegt wurde. Wenn der String leer ist, dann muss er mit “0” gefüllt werden da andernfalls der nachfolgende Befehl fehlschlägt und einen Fehler verursacht.
if($zaehler == “”) {
$zaehler = 0;
}

Nun müssen wir den Counter um 1 erhöhen… sonst wäre es ja kein Counter. :) PHP macht und das zählen einfach… einfach “++” an eine Variable (mit Zahl im Inhalt) anhängen und schon wird die Zahl in der Variable um 1 erhöht. Funktioniert auch andersrum mit “–” = Zahl minus 1.
$zaehler++;
Der beste Counter nützt nix wenn er nicht auch ausgegeben wird ;) Daher hier eine die Ausgabe, kurz und schmerzlos:

echo “Du bist der “.$zaehler.” Besucher.”;
Nun müssen wir den neuen Wert natürlich auch wieder in die Datei schreiben. Vorher müssen wir den alten Wert aber löschen und den Dateizeiger auf den Anfang der Datei setzen. Das geschieht mit “rewind”:
rewind($datei);
Dann den neuen Wert mit “fwrite” in die Datei schreiben:
fwrite($datei, $zaehler);
Und natürlich Datei schließen nicht vergessen.

fclose($datei);
Zum Abschluss unseres kleinen Scriptes den PHP-Tag wieder schließen…
?>
… und fertig sind wir schon. Einfach und wirkungsvoll. Für größere Projekte zwar nicht sinnvoll… aber für den Privatgebrauch sicher zumindest ein Anfang

Gruß
Gordon


Hinweis: Die Verwendung meiner Codeschnipsel erfolgt auf eigene Gefahr! Ich übernehme auch keine Garantie auf Funktionstüchtigkeit (jeder Server ist anders konfiguriert. Bei Problemen können Sie hier aber gern einen Kommentar schreiben und wir suchen eine Lösung. ;)

[PHP] Eine einfache Datenbankverbindung und -abfrage

Hallo zusammen,

heute zeige ich euch wie man eine einfache Verbindung zu einer MySQL-Datenbank herstellt und eine Abfrage macht.

Erstellt eine leere Datei und speichert sie (z.B.) als “db.php”. Nun fügt folgende Zeilen in die Datei ein:

Erst einmal den PHP-Tag… sonst werden die PHP-Befehle nicht für voll genommen:
<?PHP
Dann werden die folgenden Variablen definiert, damit PHP weiß wo die Datenbank ist und mit welchen Daten er eine Verbindung dazu aufbauen soll.
Wo ist die Datenbank? Hostname oder IP
$db_server = ‘localhost’;
Der Datenbankname (ein Server kann ja mehrere Datenbanken verwalten.)
$db_name = ‘datenbankname’;
Der Benutzername der zugriff auf diese Datenbank hat:
$db_user = ‘benutzer’;
Und das zugehörige Passwort des Benutzers:
$db_passwort = ‘passwort’;

Nun stellen wir, über den “mysql_connect”-Befehl eine Verbindung zur Datenbank her.
$db = @ mysql_connect ( $db_server, $db_user, $db_passwort );
Wurden alle Daten richtig eingegeben dann sollte jetzt die Verbindung stehen. Sie ist dauerhaft bis sie durch “mysql_close()” wieder geschlossen wird. So muss nicht bei jeder Abfrage eine neue Verbindung aufgebaut werden.

Da wir nun die Verbindung haben können wir jetzt unsere Abfrage starten. Dazu müssen wir der Datenbank sagen was wir machen wollen. Natürlich geschieht dies in der Sprache die unsere MySQL-Datenbank auch versteht. Wir möchten jetzt einfach mal alle Datensätze aus der Tabelle “user” ausgegeben haben. Die Abfrage dazu sieht wie folgt aus:
$sql = ‘SELECT * FROM `user`’;
Und diese Abfrage übergeben wir jetzt an MySQL, mit dem Befehl “mysql_db_query”:
$result = mysql_db_query ( $db_name, $sql );

Nun sind die Ergebnisse in der Variable “$result” gespeichert, in einem Array. Damit wir diese nun auch “sehen” können geben wir sie einfach unformatiert aus:
while ( $row = mysql_fetch_row ( $result ) )
{
echo $row[0] . ‘<br>’;
echo $row[1] . ‘<br>’;
….
}

“mysql_fetch_row” übergibt ein Array (bestehend aus einem Datensatz) aus einer Abfrage in die Variable “$row”. So können wir es sichtbar machen.
Zu guter letzt schließen wir jetzt die Datenbankverbindung wieder:
mysql_close();

Und natürlich auch den PHP-Tag.
?>

Und das wars auch schon. Mehr ist nicht nötig. Naütlich war das jetzt ein simples Beispiel… aber eine erste Datenbankabfrage ;)

Gruß
Gordon


Hinweis: Die Verwendung meiner Codeschnipsel erfolgt auf eigene Gefahr! Ich übernehme auch keine Garantie auf Funktionstüchtigkeit (jeder Server ist anders konfiguriert. Bei Problemen können Sie hier aber gern einen Kommentar schreiben und wir suchen eine Lösung. ;)

[PHP] Bilddaten auslesen wie Breite, Höhe und Typ

Hallo,

PHP stellt, wie so oft, eine kleine Funktion bereit um einfach an diese Daten zu gelangen. Aber wozu braucht man das Ueberhaupt? Ganz einfach. Z.B. kann man damit die Bilddimensionen des IMG-Tags fuellen. Oder man kann damit die Dimensionen eines Image-Popups an Javascript uebergeben. Oder den MIME vorgeben. Es gibt sehr viele Anwendunsmoeglichkeiten fuer diese Funktion.

Hier ist sie:

<span class="methodname"><strong><strong>getimagesize</strong></strong></span> ( <span class="methodparam"><span class="type">string</span> <tt class="parameter">$filename</tt></span> [, <span class="methodparam"><span class="type">array</span> <tt class="parameter reference">&$imageinfo</tt></span> ] )

Und hier ein kurzes Beispiel.

<?php $img = "picture.jpg"; $iA = getimagesize($img); echo "Bildbreite: ".$iA[0]."<br>"; echo "Bildhöhe: ".$iA[1]."<br>"; echo "Imagetype: ".$iA[2]."<br>"; //JPG, GIF, etc. echo "IMG-Tag String: ".$iA[3]; //zur verwendung von IMG-Tags ?>

Gruß
Gordon


Hinweis: Die Verwendung meiner Codeschnipsel erfolgt auf eigene Gefahr! Ich übernehme auch keine Garantie auf Funktionstüchtigkeit (jeder Server ist anders konfiguriert. Bei Problemen können Sie hier aber gern einen Kommentar schreiben und wir suchen eine Lösung. ;)

[PHP] Fehlerausgabe lokal/web switchen

Hallo,

eigentlich immer ist es erforderlich sich in der Programmierungsphase die Fehlermeldungen ausgeben zu lassen um zu sehen wo und welche Fehler auftreten. Wenn das Projekt dann aber online ist dürfen diese aber nicht mehr (öffentlich) Ausgegeben werden.

Ich persönlich programmiere meine Projekte erst auf meinem lokalen Rechner und lade die Projekte dann auf den Webspace. Daher habe ich folgende Zeilen, direkt nach dem PHP-Tag (“<?php”), in meine Scripte eingebaut:

if ($_SERVER["SERVER_NAME"] == "localhost") { error_reporting(E_ALL); ini_set('display_errors', 1); } else ini_set('display_errors', 0);

Diese bewirken nun folgendes: Das Script überprüft ob das Script lokal ausgeführt wird. Wenn ja dann werden alle Fehlermeldungen von PHP ausgegeben. Wenn es nicht lokal ausgeführt wird (also auf einem öffentlichen Webspace/-server) dann wird keine Fehlermeldung mehr ausgegeben.
Im zweiten Fall sollte aber auf jeden fall eine Error-Reporting-Routine eingebaut werden um evtl. auftretende Fehler zu protokollieren.

Gruß
Gordon


Hinweis: Die Verwendung meiner Codeschnipsel erfolgt auf eigene Gefahr! Ich übernehme auch keine Garantie auf Funktionstüchtigkeit (jeder Server ist anders konfiguriert. Bei Problemen können Sie hier aber gern einen Kommentar schreiben und wir suchen eine Lösung. ;)