Alles was mit Programmierung zu tun hat.

[PHP] Passwort generieren

Hi,

da ich auch das ab und zu brauche und jedes mal eine gute Funktion suche… hier meine Gedächtnissstütze :-)

$pwZeichen = 'wertzupasdfghkyxcvbnmWERTZUPLKJHGFDSAYXCVBNM23456789';
srand ((double)microtime()*1000000);
for($i = 0; $i < 5; $i++) {
$passwort .= substr( $pwZeichen, (rand()%(strlen ($pwZeichen) ) ), 1);
}

In der Variable $pwZeichen sind alle Zeichen aufgeführt die in dem Passwort verwendet werden. srand startet den Zufallsgenerator (sonst würde das Passwort aus ein und dem selben Zeichen bestehen ;-)
Die ‘for’-Schleife bestimmt wieviele Zeichen das Passwort hat. Hier 5. Du kannst den Wert aber auch verändern. Und zu guter letzte werden die Zeichen hintereinander in die Variable $passwort geschrieben.

Das wars schon ;-)

[PHP] Nur Buchstaben und Zahlen im String lassen

Nachdem ich diesen Schnipsel heute zum bestimmt 10 mal gesucht habe wird es jetzt Zeit ihn endlich mal hier zu verewigen.

Ihr kennt das vielleicht… da hat man einen String – egal ob einen Dateinamen beim Dateiupload oder eine Usereingabe in einem Textfeld – und dort stehen Sachen drin die man einfach sooo nie wollte.

Bestes Beispiel war heute eine Kundin die mir Mitteilte das sie Bilder in ein Systemhochladen wollte und die Bilder werden einfach nicht angenommen. Beim Blick auf den Dateinamen im Ordner wurde mir klar warum der Browser nix anzeigte… der Dateiname lautete: “1_tr352&amp;3 web2 the hill Da3 DSC03254.jpg”…
Genau für soetwas ist die folgende Funktion wundervoll… sie macht daraus einfach “3_1tr352amp3web2thehillDa3DSC03254.jpg”… gut, immer noch nicht schön… aber besser und der Browser kommt mit klar.

Anderes, einfacheres Beispiel… der User gibt irgendwo “bla(§blub1.- Dß?3äüö” ein (warum auch immer)… die Funktion macht daraus “blablub1D3”.

Man kann natürlich auch noch andere Zeichen zulassen, wie z.B. Umlaute, Leerzeichen, Punkt, Komma, etc. Was man möchte.

Hier nun die Funktion:

$String = preg_replace('/[^a-z0-9]/', '', $String); //nur kleine Buchstaben und Zahlen

$String = preg_replace('/[^a-zA-Z0-9]/', '', $String); //kleine und grosse Buchstaben und Zahlen

$String = preg_replace('/[^a-zA-Z0-9äÄöÖüÜß]/', '', $String); //kleine und grosse Buchstaben, Umlaute und Zahlen

$String = preg_replace('/[^a-zA-Z0-9äÄöÖüÜß., ]/', '', $String); //kleine und grosse Buchstaben, Umlaute, Komma, Punkt, Leerzeichen und Zahlen

FavIcon erstellen – Schnell, kostenlos und Online

Kurzes Update vorweg: FavIcon-Script jetzt zu kaufen -> Favicon Generator. Betreiben Sie einen eigenen FavIcon-Service auf Ihrer Homepage und lassen Sie ihre Kunden ihr eigenes Favicon erstellen.

Hallo zusammen,

es gibt mal wieder was neues in meiner Softwaresammlung.

Jeder kennt diese kleinen Icons neben der Internetadresse im Browser (siehe oben im Browser). “FavIcon” ist der Name des kleinen Icons das dazu beiträgt das eine Internetseite etwas mehr individuell wird. Aber der eigentliche Zweck ist die Favoritenliste… daher auch der Name “Favoriten Icon“… kurz “Favicon”. Jeder der mit der Favoritenliste arbeite weiß, wenn man einmal 100 Favoriten gespeichert hat dann kann man schon mal eine weile suchen bis man den gesuchten Link gefunden hat. So kam wohl mal jemand auf die Idee ein kleines Icon zu basteln und dieses in der Liste mit zu speichern, damit hat man eine visuelle Orientierungshilfe und findet den gewünschten Link schneller.

Das Problem was ich mit den Icons immer habe ist das es sich um ein spezielles Dateiformat handelt. Nämlich das “*.ico”-Format. Das dumme dabei ist das nur spezielle Programme dieses Format erstellen können und auch damit umgehen können. Nicht einmal Profisoftware wir Photoshop kann ein simples Favicon erstellen. Vielleicht zu simpel für Adobe??

Auf der anderen Seite gibt es aber sogar Webseiten die anbieten kostenlos, per Skript, ein Favicon aus einer Bilddatei zu erstellen. Also kann es nicht sooo schwierig sein, wenn selbst ein PHP-Skript diese Icons erstellen kann. Und die Fähigkeiten von PHP-Skripten sind doch begrenzter als Offline-Software.

Nun habe ich mir letztens bei eBay selbst ein Favicon-Script gekauft. Der Preis war gut und ich benötige es ja selbst des öfteren um Icons für meine oder Kunden-Webseiten zu erstellen.

Natürlich ist es nicht nur für mich gedacht, jeder soll und kann es nutzen wenn er es braucht. Einfach eine eigene Bilddatei hochladen, optional einen Text eingeben und abschicken. Das Skript erstellt das Favicon (in verschiedenen Varianten) und es sofort runtergeladen werden. Das wars, keine Anmeldung nötig, absolut kostenlos, nur 2 Eingabefelder. Simpel und einfach. ;)

Finden könnt ihr den Favicon-Generator hier: Bitte klicken zum Favicon erstellen

Jetzt funktioniert er endlich. Habe geschlagene 2 Tage dran gewerkelt bis das Skript endlich funktioniert hat.
Wie gesagt, bei eBay ersteigert das gute Stück. Ich hatte ja schon 2-3 mal Skripte bei eBay ersteigert und mich hinterher geärgert. Die Programmierung war jedes mal grotten schlecht und im Endeffekt hätte man es selbst fast schneller hinbekommen. :(

Doch diesmal hatte ich die Hoffnung das es besser werden würde. Leider vergebens. Nachdem ich das Skript vom Verkäufer runtergeladen hatte und entpackt hatte wurde mir schnell klar “Ach du sch****”. Tabellen-Layout, PHP und HTML gemixt, CSS nicht ausgelagert… kurz, eine Katastrophe.

Somit bin ich schnell bei meinem Lieblings-Layouthersteller vorbei und habe mir erst einmal ein schönes CSS-Layout ausgesucht. Das dann Eingebaut und angepasst, dabei auch gleich PHP vom Layout getrennt. Nun war das Layout schick. Bei den Umbauarbeiten ist mir auch gleich aufgefallen das der Text sehr komisch zu lesen ist… ein Blick und es wurde klar: Der Text ist nicht original deutsch. Sprich eigentlich war das Skript mal in einer anderen Sprache und wurde a la Onlineübersetzer ins Deutsche übersetzt. Wer das schon mal gemacht hat weiß was ich meine.
Also auch noch die Texte neu schreiben. Waren ja zum Glück nicht so viel.

Dann war alles schick und funktionierte. Also Subdomain eingerichtet und hochgeladen. Jetzt funktionierte es aber auf einmal nicht mehr. … ????
Das Skript war nur mit Windows-Systemen kompatibel und die ZIP-Funktion funktionierte auf Linuxsystemen nicht. Super. Das war dann der 2. Tag. Den verbrachte ich dann damit die Funktionsfähigkeit auf meinem Webserver herzustellen.

Im Endeffekt habe ich das Skript nun fast komplett neu geschrieben. Aber nun funktioniert es und alles ist super. :) Ich hoffe es kommt auch ein bisschen an und die Leute nutzen es fleißig. Ich werde es des öfteren auf jeden Fall tun. :)

Was ich allerdings überlege ist den Verkäufer aus dem Copyright rauszunehmen. Denn wie gesagt, mittlerweile ist es mehr von mir erstellt als von Ihm. Wobei ich mir auch nicht sicher bin das er überhaupt der Hersteller des Skripts ist. Aber vielleicht hat er es selbst mal komplett gekauft und verkauft es jetzt nur als Lizenz weiter.
Ich werde mich da mal belesen wie sich das verhält und ihn, wenn es geht, aus dem Copyright rauskicken. Wer so eine schlampige Arbeit verkauft… naja.

Update: Ich HABE das Skript jetzt neugeschrieben. Das hat mich ja irgendwie total angebrochen. So etwas noch mit einem Link zu belohnen. Zumal der Großteil eh schon umgeschrieben werden musste und wahr. Und das Skript ist nun komplett neu geschrieben und anders was anders gemacht werden konnte. Somit hat sich das Thema erledigt und alles ist nun schick :)

www.logistic-forwarder.com – Toolsammlung für Logistiker

Mein neustes Projekt entstand aus meiner aktuellen Lage heraus. Ich arbeite seid einiger Zeit in einem Unternehmen das in der Logistikbranche tätig ist. Für mich war dies eine völlig neue Erfahrung. Ich hatte nie etwas mit dieser Branche zu tun. Nun stecke ich quasi mitten drin :)

Mit der Zeit lernt man auch die Arbeitsschritte und Abschnitte kennen, die täglichen Sachen die man braucht und benutzt. Dazu zählen z.B. Währungsumrechner wenn man Yen in Euro umrechnen muss, Uhrzeiten weltweit um zu wissen wann die Kollegen in Houston auf Arbeit sind und man stören darf :) oder auch Telefonnummern, Landesvorwahlen, etc.pp.

Für alles haben wir eigene Seiten. Eine für die Uhrzeiten, eine für Wärhrungsumrechnung, jede Airline und jeder Courierdienst hat eine eigene Seite um das Cargo zu tracken und so weiter. Ständig ist man damit beschäftigt durch die Seiten zu surfen. Das kostet unmengen von Zeit und manchmal auch nerven.

Und so wurde die Idee geboren eine Seite zu schaffen auf der man alles auf einer Webadresse findet. Eine Seite auf der man Beträge der wichtigsten Währungen umrechnen kann, auf der man die aktuelle Uhrzeit jeden Landes anzeigen lassen kann, sämtliche trackings erledigen kann, Adressen suchen kann, die neusten Nachrichten auf einen Blick haben, an internationale Feiertage erinnert werden, etc.
Ich gehe sogar soweit zu sagen das man einiges verbinden kann.

Zum Beispiel ist ein Stocksystem geplant. Der Kunde bestellt Waren, er liefert an oder lässt abholen, die Teile werden eingetragen und irgendwann an den Empfänger weitergeleitet. Dabei gibt es verschiedene Zwischensteps. Einer davon ist Controlling. Wenn das Cargo unterwegs ist dann muss kontrolliert werden ob es angekommen ist, ob es Probeme gibt. Dazu wäre es toll wenn man über eine XML-Schnittstelle die Trackingdaten der Fluggesellschaften und Courierdienste abfragen kann. Einige bieten dieses Service an, jedoch sind erste Versuche diese zu benutzen zu dürfen fehlgeschlagen. Ich bleibe aber dran :)

Einige Sachen der Seite sind schon feritggestellt, andere sind in arbeit. Ich werde weiter daran arbeiten und hier die neusten Updates veröffentlichen.

Der Link zur Webseite ist: http://www.logistic-forwarder.com

Update 03.03.2008:

  • Update des Währungsrechners. Es können nun bis zu 10 Werte gleichzeitig um- und zusammengerechnet werden.
  • Backlink zur Übersichtsseite von den einzelnen Weltuhrzeiten (pro Land).

Update 10.03.2008:

  • Einbau einer Schnittstelle zum Export von Währungen. Zum Beispiel kann ein Shopbetreiber nun seinen Euro-Preis auch in z.B. USD anzeigen lassen. Die Schnittstelle ist online, aber kann noch Veränderungen geben. Bin noch nicht ganz zufrieden damit.
    [ Deutsche Beschreibung ] [ Beispiel ]

Update 02.10.2009:

  • Alle Flughäfen weltweit, inklusive suche und IATA-Code.
  • Ein Wissensspiel. Eine kleines Spiel in dem es darum geht Währungscodes, Flughäfencodes, Ländervorwahlen, etc. zu wissen. Nur für hartgesottene Logistker ;)

[CSS] Tooltips ohne Javascript!

Hallo zusammen,

heute mal wieder ein netter Codeschnipsel für den täglichen Einsatz :)
Wie in der Überschrift schon erwähnt, es geht um einen Tooltip ohne Javascript. Jeder kenn sicher diese kleinen Fensterchen (oder auch Sprechblase genannt) das aufgeht wenn man mit der Maus über einem Objekt steht. Ob dort nun kleine Informationen oder Hilfen angezeigt werden… der Verwendungszweck ist sehr unterschiedlich.

Meist werden diese Fenster per Javascript initialisiert. Das aber kann auch Probleme mit sich bringen. So wie ich es jetzt mitkriegen musste. Ich wollte in solch einem Javascript Tooltip ein weiteres Java (Ajax) ausführen… nicht möglich. Auch ist es per CSS schöner falls der User gar keine Javascript aktiviert hat. Und es sieht per CSS nicht schlechter aus!

Dieser Codeschnipsel ist mal nicht von mir. Zu finden ist er bei: Trent Richardson

Ich wünsche viel Spaß damit ;)

Gruß
Gordon

[Tips & Tricks] Wie fange ich an?

Hallo,

hier möchte ich mal ein paar Tips und Tricks aus meiner persönlichen Erfahrung weitergeben. Ich kann nun auf einige Jahre Programmiererfahrung zurückblicken und habe selbst viel Zeit gebraucht um ein paar wichtige Erfahrungen zu machen. Damit andere vielleicht schneller dahinter kommen wie manche Dinge besser laufen, möchte ich ein paar Eckpunkte hier aufschreiben ;)

1) Trenne immer Code und Design

Meine ersten Seiten bestanden aus reinem HTML und alles war in einer Datei… wie auch sonst. Dann kam JavaScript und CSS ins Spiel und damit die ersten, primitven, Anfänge Code auszulagern. Als ich dann mit PHP angefangen habe und diverse Bücher, Foren, Internetquellen und sonstiges dazu konsultierte, wurde der Code weiterhin in einer Datei gespeichert. Also HTML und wild dazwischen der PHP-Code.
Das erste mal, an das ich mich erinnern kann, das ich merkte das diese Art und Weise eigentlich misst ist war als ich auf einer Seite ein komplettes Layout Redesign machen wollte. Mir blieb im Prinzip nichts anderes übrig als die Seite komplett neu zu machen.
Mein Fazit heute: PHP-Code und Layout immer strickt trennen. So viel wie möglich mit CSS arbeiten (man kann fast alles im Layout damit aendern und CSS wird (sollte) immer in einer seperaten Datei gespeichert werden). Ich habe auch mal den Fehler gemacht und HTML code mit PHP erstellt und dann wiederum in das HTML-Template eingebunden… wenn möglich auch das vermeiden.

2) Arbeite Objektortientiert

Wie oben schon beschrieben habe ich frueher alles in einer Datei gehalten. Ob Funktionen, PHP-Code, HTML, CSS und Javascript. Alles in einer Datei. Warum ist das jetzt schlecht? Nehmen wir z.B. die Emailüberprüfung (also ob eine Emailadresse valid ist). Diese wird z.B. gebraucht wenn der User sich registriert. Haben wir einen Newsletter brauchen wir sie auch da. Bauen wir die Funktion in beide Dateien ein und möchten wir die Funktion einmal erweitern dann müssen wir beide Dateien ändern. Zusätzlich wird mehr Speicherplatz benötigt. Immer (!) auslagern. Prinzipell alles was mehrfach gebraucht wird… besser noch alle Funktionen und Klassen immer in externe Dateien auslagern.

Heute ist die Regel: Lagere alles aus was du kannst und was Sinnvoll ist! Das heisst alle Funktionen kommen in eine seperate Datei, Layoutheader und -footer definitv auslagern, so viel wie möglich mit CSS arbeiten (dies natuerlich in einer seperaten Datei speichern), mit Klassen arbeiten (das Thema ist sehr umfangreich), arbeiten mit Strukturen. Alles was mehrfach gebraucht wird bekommt eine Funktion… wenn nicht gar Klasse.

3) Daten die sich ändern können immer in eine (1) Variable legen

Auch hier das selbe Prinzip. Alles was sich ändern kann muss zentral in einer Variable gelagert werden. Aktuelles Beispiel: WordPress versendet (unter bestimmten Voraussetzungen) automatisch Emails. Die Absenderadresse ist fest im Code (an mehreren Stellen) eingebaut und setzt sich aus “[email protected]” und dem Domainnamen zusammen. Existiert diese Emailadresse nicht real so kann es zu Fehlern kommen… will man Sie ändern muss man in den Code. Hätte man diese in eine Variable (z.B. in der wp-config.php oder gar in der Datenbank) abgelegt waere es ein leichtes Sie zu ändern. Was ich mit dem Beispiel sagen will ist: Baue nichts in den Code ein was sich ändern kann. Besonders dann nicht wenn der Code / das Script weitergegeben werden soll.

4) Erfinde nicht jedes Rad neu

Das hier ist kein Aufruf zum Datenklau! Aber es gibt heutzutage zu (fast) jedem Thema ein Tutorial, einen Codeschnipsel, eine Anleitung oder einfach nur den eigenen Verstand. Man muss nicht für jede Funktion von vorn Anfangen und viele der Codestücke sind millionenfach erprobt und im Einsatz und damit auch fehlerfreier als die eigene Funktion vielleicht sein würde.
Somit kann man sich viel Zeit und Ärger ersparen und auf bestehende Codefragmente zurückgreifen. Sonst kann man auch gern mal bei den anderen Schauen und sich gedanken darüber machen wie die es wohl gelöst haben könnten.
Zu vielen Sachen gibt es sogar komplett fertige Systeme. Wobei ich persönlich selten komplette Systeme nutze. Wenn dann doch mal was geändert werden muss dann muss man sich erst in das Script einarbeiten und, je nachdem wie der Programmierer gearbeitet hat, kann das mitunter sehr kompliziert werden.

… to be continued.

[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. ;)