Zum Inhalt springen

Verschlüsselung von eMail-Adressen

Erstellt am 1. September 2003 · 3 Antworten · letzte Antwort am 23. September 2003

Tags: PHP, Frage

tommy_lucky ·

Ist es eigentlich möglich die eMail-Verschüsselungsfunktion von T3 auch in eigenen PHP-Scripts (KEINE Extention) zu verwenden?
Ich habe inzwiwschen alle mir bekannten Foren und Mailinglisten durchwühlt und auch die Doku, aber mir ist nicht mal ein Hinweis begegnet.
Hat jemand einen Tip für mich?

escapedPrisoner ·

Du kannst die meisten Typo3-API-Klassen in eigene PHP-Klassen einbinden - ohne dass es eine Extension sein muss.

Im Head bindest Du die externen Klassen ein:

# Zum Beispiel
require_once(PATH_t3lib."class.tslib_fe.php");
Weil Du keine Extension hast musst Du statt der Konstante PATH_t3lib den Pfad zur Klasse selbst angeben.

Habe etwas in der API gestöbert. Und etwas gefunden: 🙂

Ich kann mich auch völlig täuschen, aber ich denke diese Funktion ist wirklich zum String-verschlüsseln gedacht. Du kannst also damit auch ganz normale Texte verschlüsseln:

tslib_fe::encryptEmail ( $string, $back = 0 )

$verschluesselt = tslib_fe::encryptEmail  ( $email, $back);

Zum Verschlüsseln setzt Du $back=0. Mit $back=1 wird anscheinend wieder entschlüsselt. Musst Du aber mal ausprobieren !!

Den "Verschlüsselungsparameter" - wenn man das überhaupt verschlüsseln nennen darf - stellst Du in "spamProtectEmailAddresses" im "TSFE" ein. Bloß 0 nicht.

Wenn Du aber richtig verschlüsseln willst, dann mach das lieber mit der Standard-Unix-Verschlüsselung: crypt.
http://de.php.net/manual/de/function.crypt.php

Have Fun 😉
Daniel

tommy_lucky ·

Jepp, das war der entscheidende Tip! Vielen Dank Daniel!

Hier meine funktionierende Funktion:

require_once ("<pfad_zum_t3_verzeichnis>/tslib/class.tslib_fe.php");

/************************************************************************
* function cryptMailto($email)						*
*									*
* INPUT									*
*	$email : eMail-Adresse						*
*									*
* RETURN								*
*	$href : href-Tag mit kodierter eMail-Adresse			*
************************************************************************/

function cryptMailto($email) {
	// eMail-Adresse verschlüsseln
	$email_crypt = tslib_fe::encryptEmail('mailto:'.$email,0);
	
	// eMail-Adresse vom @ befreien
	$email_clear = str_replace("@", "(at)", $email);
	
	// Ausgabe zusammenbauen
	$href = "<a href="javascript:linkTo_UnCryptMailto('".$email_crypt."');">".$email_clear."</a>";
	
	RETURN $href;	
}