Team Modul: Email Adresse via Ascii Zeichen ausgeben

Begonnen von Toasti, 03 Juli 2007, 19:54:18

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Toasti

Kurzerklärung: Ich will Ascii Text satt Reintext im Quellcode sehen  :gruebel:
Vernünftige Erklärung:

Hi,
ich hab das Team Modul (was ich Klasse finde!) ziemlich stark umgebaut.

Statt der Email Adresse, ist dort nun auch nur noch ein Email Link zu sehen.
Das hilft mir leider noch nicht weiter, denn im Quelltext ist die Mail ja noch zu lesen.
Letztendlich boykottieren meine User das ganze wieder, weil sie mit der Veröffentlichung der Mail nicht zufrieden/einverstanden sind.

Nun dachte ich: Ich schreib einfach statt Reintext die Asciizeichen rein. Schön, so erscheinen sie dann auch in der SQL Datenbank, nicht jedoch im Quelltext.

Was müsste ich ändern, damit die Ascii Zeichen auch im Quelltext ausgegeben werden?
Hat da jemand eine Idee?

Mein Quelltext jetzt:
<a href="mailto:blabla@bla.de">Email</a>
Der Quelltext wie ich ihn gerne hätte:
<a href="mailto:&#98;&#x6C;&#x61;&#x62;&#x6C;&#x61;&#x40;&#98;&#x6C;&#x61;&#x2E;&#100;&#101;">Email</a>

Vielen Dank schonmal
Toasti

.


P.S.:
So genauer betrachtet müsste ich sogar vll. nur um folgenden If Eintrag der Team index.php ein "string chr ( int $ascii )" einbauen?
Wenn ja, wie müsste das dann aussehen (bin schon eine echte Php Niete...)

Code (Wie es bisher aussieht) Auswählen
if ($row['email']) {
        $nospam = $row['email'];
        $nospam = str_replace("@", "<em> at </em>", $nospam);
        $nospam = str_replace(".", "<em> dot </em>", $nospam);
        echo "<table valign=\"top\" width=\"100%\" align=\"left\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"50%\">&nbsp;</td><td><font class=\"tiny\"><a href=\"&#109;&#97;&#105;&#108;&#116;&#111;&#58;".$row['email']."\">"._TEAMEMAIL."</a></font></td></tr></table><br>\n";
    }

JoergK

#1
Nach einigen erfolglosen Selbstversuchen bin ich dann beim googeln erfolgreich gewesen.  :bigsmile:

Zunächst bauste Dir am Anfang der /modules/Team/index.php
zwischen
$GLOBALS['index'] = $vkp28;
und
function showDetail() {

diese function ein
function str2ascii($string)
{
    $ascii = "";
    for($charcounter = 0; $charcounter < strlen($string); $charcounter++)
    {
        $ascii .= "&#".ord($string[$charcounter]).";";
    }
    return $ascii;
}


Dann änderste die Zeile
echo "<table valign=\"top\" width=\"100%\" align=\"left\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"50%\">&nbsp;</td><td><font class=\"tiny\"><a href=\"&#109;&#97;&#105;&#108;&#116;&#111;&#58;".$row['email']."\">"._TEAMEMAIL."</a></font></td></tr></table><br>\n";

in das
$nospam2 = str2ascii($row['email']);
echo "<table valign=\"top\" width=\"100%\" align=\"left\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"50%\">&nbsp;</td><td><font class=\"tiny\"><a href=\"&#109;&#97;&#105;&#108;&#116;&#111;&#58;".$nospam2."\">"._TEAMEMAIL."</a></font></td></tr></table><br>\n";


Mit dieser Änderung gibste wieder, wie gewohnt, die Email-Addy ganz normal ins Formular ein (und so stehts dann auch inner DB). In der Seitenausgabe (Quelltext) stehen jedoch mit der obigen Änderung nur noch die ASCII-Codes drinne.  ;)
Gruß,
Jörg


Nobody is perfect ... so don't call me Nobody

Toasti

 :thumbup:
Yes, Dein Ansatz hat auf Anhieb geklappt.
Mein Ansatz dagegen war zwar nicht Falsch, aber hatte in der Ausführung wohl Defizite, sprich: War halt Bullshit³  :heu:

By the way,
beim Googlen dazu habe ich vorhin gelesen, das diese Möglichkeit sich vor Spam zu schützen nicht mehr funktionieren würde. Das mag sein.

Zum Vergleich habe ich derzeit mal beide Methoden auf meiner Seite und stelle fest:
Unveränderte Mailangabe im Quelltext: 150 Spammails in 3 Tagen
Geänderte Mailangabe im Quelltext mit mailto: 1 Spammail in 10 Tagen
Geänderte Mailangabe im Quelltext inkl. dem mailto in Ascii: ? (hab ich grade erst eine Eingebaut)

Ein ähnliches Verhalten stelle ich auf einer anderen Website von mir schon seit ca 2 Jahren fest.

Danke Dir!

FrankySZ


Hi Toast, hi @ll,

hab deinen Thread leider zu spaet gesehen ... aber nur mal so gefragt ... waere die pragmainterne function  mxPrepareToDisplay()  nicht das gleiche und etwas einfacher zu verwenden gewesen   :gruebel:

siehe zB modules/Userinfo/view.php ca, Zeile 148

<a href=\"mailto:" . mxPrepareToDisplay($uinfo['email']) . "\"><b>" . mxPrepareToDisplay($uinfo['email']) . "</b></a>

die email steht in diesem Fall zwar im <b> bereich aber da kann ja auch nen Name rein, und im Quelltext erscheinen dann der gewuenschten Ascii Text statt der lesbaren emailaddy ....
greets Franky

Toasti

Naja, vom <b> könnte man sich ja Fix trennen. Nur glaube ich nicht, das diese Funktion klappen könnte, da doch das User Modul und das Team Modul verschiedene Einträge in der SQL haben. Somit würde wohl die Funktion im Team Modul wirkungslos bleiben, oder?

FrankySZ


Hi ;)

probiers doch einfach mal mit:

<a href=\"mailto:" . mxPrepareToDisplay($row['email']) . "\"><b>hier irgendwas</b></a>

du kannst zwischen den () nach mxPrepareToDisplay doch so ziemlich jeden sqlwert eintragen und in der db vom Teammodul werden die emails doch eh normal gespeichert ....

hab das zwar nicht mit dem Teammodul getestet, verwende die function aber in etlichen eigenen Modulen ...
greets Franky

Toasti

habs mal getestet:
im quelltext steht dann folgendes:
<a href="mailto:kontak&#116;&#064;&#102;okuswerk.de"><b>hier irgendwas</b></a>

hm... nicht ganz so prickelnd, oder?

FrankySZ

#7
im Grunde genommen nur nen paar ascii weniger als in der Version oben ... aber imho voellig aussreichend .... da die spambots ja schon beim ersten ascii-code stolpern ...

ansonsten koennte man ja den Bereich der function in der mx_api erweitern/aendern ... ab ca. Zeile 259

denn der neue Code von JoergK is ja nur in deinem Teammodul, in der Userinfo etc findet ja auch die function Anwendung ...

Vorteil waere dann die Verwendung einer pragmainternen function die ueberall mit so ziemlich dem gleichen code aufgerufen werden kann ...
greets Franky

Toasti

Jepp
Wie man es auch machen mag, beiden Varianten funktionieren und man darf sich also für eine der beiden Entscheiden. Und genau das finde ich am Wichtigsten.

FrankySZ


da kann ich dir nur zustimmen ...
deswegen hatte ich ja auch " ... nur mal  so gefragt... " ;)
greets Franky