EMail und SPAM

goach
Beiträge: 15
Registriert: Mo 16. Aug 2004, 19:05
Wohnort: Wien
Kontaktdaten:

Email Adressen verschleiern (Obfuscator für Anti-SPAM)

Beitrag von goach » Mi 7. Jun 2006, 10:43

jwulfes hat geschrieben:Die Frage, wie man die Email Adresse schützen kann ist aber immer noch nicht beantwortet.
Die Adresse mit UTF konvertieren, in eine include Datei packen, und diese Include Datei im Editor (html Modus) einbinden, geht auch nicht, weil der PHP Eintrag auch nicht angenommen wird.
Also ich hab mich mal von Tim Williams' (http://www.u.arizona.edu/~trw/spam/spam.htm) email obfuscator inspirieren lassen und folgenden Hack eingebaut ( contenido 4.6.8 ):

Code: Alles auswählen

// in contenido/includes/functions.con2.php (ab Zeile 491 eingefügt)
	// ersetze '<a href=...me@email.com  ... </a>' durch JavaScript Code
	$js_tpl='<script type=\\\"text/javascript\\\" language=\\\"javascript\\\">
	<!--
		 {     document.write(String.fromCharCode(%s))
		  }
	-->
	</script>
	<noscript>
	Sie m&uuml;ssen JavaScript im Browser aktivieren, um diese Email-Adresse zu sehen!
	</noscript>';
	
	preg_match ( '/<a[^>]*?href.*?mailto:[\S]+@DEINE_DOMAIN_REGEX[^>]*?>.*?<\/a[^>]*?>/i', $code, $mt );
	
	foreach ( $mt as $m )
	{
		$jsch='';
		$mc=stripslashes(stripslashes($m));
		for ( $i=0; $i<strlen($mc); $i++ )
		{
			$jsch .= ($jsch>''? ',': '') . ord($mc[$i]);
		}
		$code = str_replace ( $m, sprintf($js_tpl, $jsch), $code );
	}
... und DEINE_DOMAIN_REGEX ersetzen mit z.B.

Code: Alles auswählen

meine-domain\.com
Mit der Änderung werden alle E-Mail-Links vor der Ausgabe durch den Browser gefiltert und durch JavaScript-Code ersetzt. Damit gibts keine E-Mail Adressen im Klartext mehr zu sehen, allerdings schauen User mit deaktiviertem JavaScript durch die Finger :-(
Bei mir funktionierts ganz gut, zu beachten ist, dass vorher alle Artikel mit E-Mailadressen neu gespeichert werden müssen (Alternative: Tabelle con_code leeren), weil der Code neu generiert werden muss. Später kann man beliebige Änderungen im Backend machen, der JavaScript-Code wird automatisch aktualisiert. :-)

rzwei
Beiträge: 65
Registriert: Mo 28. Feb 2005, 17:02
Wohnort: Isartal
Kontaktdaten:

Beitrag von rzwei » Mo 19. Jun 2006, 10:05

Hallo,

ich bin die Sache etwas anders angegangen und kodiere die mail-Adressen in der front_content in hexadezimalen ASCII-Code.
Ob das alle mail-Robots abhält, weiß ich zwar nicht, aber es sollte einige ausschliessen.

Dazu in der front_content.php nach

Code: Alles auswählen

if ($cfg["debug"]["codeoutput"])
			{
				echo "<textarea>".htmlspecialchars($code)."</textarea>";
			}
			
diesen Code einfügen:

Code: Alles auswählen

			ob_start();
        	eval("?>\n".$code."\n<?php\n");
			$str_all = ob_get_contents();
			ob_end_clean();

			$pattern = '/[_a-z0-9:]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-z0-9]{2,4})/';

			preg_match_all ($pattern, $str_all, $mailtext); 
			
			foreach($mailtext[0] as $email_now) {
				$strEncodedEmail = "";
				for ($i=0; $i < strlen($email_now); $i++) {
					$strEncodedEmail .= "&#".ord(substr($email_now,$i)).";";
				}
				$str_all = str_replace($email_now, $strEncodedEmail, $str_all); 
			}
			
			print ($str_all);
Das Ganze kann man auch in die modRewrite-Version von Stese einbauen, dann sieht der Code so aus:

Code: Alles auswählen

			// edit by stese - ModRewrite
			ob_start();
        	eval("?>\n".$code."\n<?php\n");
			$str_all = ob_get_contents();
			ob_end_clean();

			// mod rewrite is activated
			if ( $cfg['mod_rewrite']['use'] == 1 ) {
				// ok let it beginn, start mod rewrite class
				$str_all = preg_replace("/([\"|\'|=])front_content\.php(.?|.+?)([\"|\'|>])/ie", "stripslashes('\\1'.ModRewrite::build_new_url('\\2').'\\3')", $str_all);
			}
			
			// edit by rzwei
			$pattern = '/[_a-z0-9:]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-z0-9]{2,4})/';

			preg_match_all ($pattern, $str_all, $mailtext); 
			
			foreach($mailtext[0] as $email_now) {
				$strEncodedEmail = "";
				for ($i=0; $i < strlen($email_now); $i++) {
					$strEncodedEmail .= "&#".ord(substr($email_now,$i)).";";
				}
				$str_all = str_replace($email_now, $strEncodedEmail, $str_all); 
			}
			// end edit rzwei
			
			print ($str_all);
Ich bin mir nicht sicher, ob das Suchmuster das beste ist, aber es funktioniert bei mir.
Für Verbesserungsvorschläge wäre ich aber sehr dankbar.

Grüße
rzwei

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen » Di 19. Sep 2006, 09:40

Das ist wirklich Super! Leider gibt es einen Nachteil. wenn man das VPTransformation-Plugin installiert hat muss man in dieser Datei folgenden Code einfügen:
/
* geändert für vpTransformationen - Start */
cInclude("includes", "functions.transformations.php");
ob_start();
eval("?>\n".$code."\n<?php\n");
$exec_php_str = ob_get_contents();
ob_end_clean();
$exec_php_str = Transform($exec_php_str);
echo $exec_php_str;
/* geändert für vpTransformationen - Ende */
Bei mir wird dann mein Teaser zweimal ausgegeben! Vielleicht gibt es dafür eine Lösung! Wenn ich den VPTransformations-Code entferne klappt alles super!

Vielen Dank!

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen » Di 19. Sep 2006, 09:56

Habe eine Lösung gefunden:

Zur besseren Übersichtlichkeit habe ich den kompletten Code von der Zeile ca. 921 bis zum Ende aufgelistet:

Code: Alles auswählen

			if ($cfg["debug"]["codeoutput"])
			{
				echo "<textarea>".htmlspecialchars($code)."</textarea>";
			}
			
			
			// edit by stese - ModRewrite
			ob_start();
        	/* geändert für vpTransformationen - Start */
			cInclude("includes", "functions.transformations.php");
			ob_start();
			eval("?>\n".$code."\n<?php\n");
			$exec_php_str = ob_get_contents();
			ob_end_clean();
			$exec_php_str = Transform($exec_php_str);
			echo $exec_php_str;
			/* geändert für vpTransformationen - Ende */
			$str_all = ob_get_contents();
			ob_end_clean();
			
			// mod rewrite is activated
			if ( $cfg['mod_rewrite']['use'] == 1 ) {
				$sseStarttime = getmicrotime();
				
				// edit 060603 - anchor hack
				$str_all = preg_replace_callback(
						"/<a([^>]*)href\s*=\s*[\"|\']#(.?|.+?)[\"|\']([^>]*)>/i", 
						create_function( '$arr_matches' , 'return ModRewrite::rewrite_html_anchor($arr_matches);' ),
						$str_all
				);
				
				// ok let it beginn, start mod rewrite class
				// $str_all = preg_replace("/([\"|\'|=])front_content\.php(.?|.+?)([\"|\'|>])/ie", "stripslashes('\\1'.ModRewrite::build_new_url('\\2').'\\3')", $str_all);
				$str_all = preg_replace_callback(
						"/([\"|\'|=])front_content\.php(.?|.+?)([\"|\'|>])/i", 
						create_function( '$arr_matches' , 'return $arr_matches[1] . ModRewrite::build_new_url($arr_matches[2]) . $arr_matches[3];' ),
						$str_all
				);
				// edit by rzwei
         $pattern = '/[_a-z0-9:]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-z0-9]{2,4})/';

         preg_match_all ($pattern, $str_all, $mailtext);
         
         foreach($mailtext[0] as $email_now) {
            $strEncodedEmail = "";
            for ($i=0; $i < strlen($email_now); $i++) {
               $strEncodedEmail .= "&#".ord(substr($email_now,$i)).";";
            }
            $str_all = str_replace($email_now, $strEncodedEmail, $str_all);
         }
         // end edit rzwei
				$sseEndtime = getmicrotime();
			}
			print ($str_all);
			//print "\n\n<!-- time needet: " . ($sseEndtime - $sseStarttime) . " seconds -->";
			// end edit
		}

	}
	else
	{

		if ($contenido)
		{
			eval ("?>\n".$code."\n<?php\n");

		}
		else
		{
			if ($error == 1)
			{
				echo "Fatal error: Could not display error page. Error to display was: 'No contenido session variable set. Probable error cause: Start article in this category is not set on-line.'";
			}
			else
			{
				header($errsite);
			}
		}

	}

}

if (file_exists("config.after.php"))
{
	@ include ("config.after.php");
}

function IP_match($network, $mask, $ip)
{

	bcscale(3);
	$ip_long = ip2long($ip);
	$mask_long = ip2long($network);

	#
	# Convert mask to divider
	#
	if (ereg("^[0-9]+$", $mask))
	{
		/// 212.50.13.0/27 style mask (Cisco style)
		$divider = bcpow(2, (32 - $mask));
	}
	else
	{
		/// 212.50.13.0/255.255.255.0 style mask
		$xmask = ip2long($mask);
		if ($xmask < 0)
			$xmask = bcadd(bcpow(2, 32), $xmask);
		$divider = bcsub(bcpow(2, 32), $xmask);
	}
	#
	# Test is IP within specified mask
	#
	if (floor(bcdiv($ip_long, $divider)) == floor(bcdiv($mask_long, $divider)))
	{
		# match - this IP is within specified mask
		return true;
	}
	else
	{
		# fail - this IP is NOT within specified mask
		return false;
	}
}

if (isset ($savedlang))
{
	$lang = $savedlang;
}
page_close();

?>

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Email Adressen verschleiern (Obfuscator für Anti-SPAM)

Beitrag von stefkey » Di 17. Jul 2007, 12:17

@goach:

Wenn man nun mehrere Mandanten in einer Contenido-Installation verwaltet würde das bedeuten das alle Mandanten die gleiche Email Adresse erhalten, oder?

Ich meine wenn ich in der contenido/includes/functions.con2.php meinedomain.de reinschreibe gilt das für alle Mandanten. Also würden quasi nur bei einem Mandant die richtigen eMailadressen angezeigt werden.

Gibt es da vielleicht eine andere Lösung mit Javascript?


Grüße,
stefkey

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Beitrag von stefkey » Di 17. Jul 2007, 15:07

@goach:

okay, ich kann zwar kein PHP aber ich vermute das das script nur email Adressen mit DEINE_DOMAIN_REGEX ersetzt.

Wie gesagt, toll wäre wenn man das pro Mandanten einstellen könnte!

Noch ein Problem:

Es wird nur die 1. Adresse auf der HMTL-Seite ersetzt, ist das noch ein Bug oder soll das so sein?

Grüße
stefkey

PS Hab auch was endeckt: Da steht:
preg_match ( '/<a[^>]*?href.*?mailto:[\S]+@frauenselbsthilfe\.de[^>]*?>.*?<\/a[^>]*?>/i', $code, $mt );

Wenn ich jetzt das rote > weg mache, kann sogar nach dem Email Link noch was stehen! :) Selbst rausgefunden, aber keine Ahnung! :roll:

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen » Di 4. Sep 2007, 15:17

Übrigens hier ist der Code für die 4.6.15 MR ohne VpTransformation.

Code: Alles auswählen

// edit by stese - ModRewrite
		ob_start();
        	eval ("?>\n".$code."\n<?php\n");
				$strAll = ob_get_contents(); 
         ob_end_clean(); 
          
         // mod rewrite is activated 
         if ( $cfg['mod_rewrite']['use'] == 1 ) { 
            $sseStarttime = getmicrotime(); 
             
            // edit 060603 - anchor hack 
            $strAll = preg_replace_callback( 
                  "/<a([^>]*)href\s*=\s*[\"|\']#(.?|.+?)[\"|\']([^>]*)>/i", 
                  create_function( '$arr_matches' , 'return ModRewrite::rewrite_html_anchor($arr_matches);' ), 
                  $strAll 
            ); 
             
            // ok let it beginn, start mod rewrite class 
            // $str_all = preg_replace("/([\"|\'|=])front_content\.php(.?|.+?)([\"|\'|>])/ie", "stripslashes('\\1'.ModRewrite::build_new_url('\\2').'\\3')", $str_all); 
            $strAll = preg_replace_callback( 
                  "/([\"|\'|=])front_content\.php(.?|.+?)([\"|\'|>])/i", 
                  create_function( '$arr_matches' , 'return $arr_matches[1] . ModRewrite::build_new_url($arr_matches[2]) . $arr_matches[3];' ), 
                  $strAll 
            ); 
            // edit by rzwei 
         $pattern = '/[_a-z0-9:]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-z0-9]{2,4})/'; 

         preg_match_all ($pattern, $strAll, $mailtext); 
          
         foreach($mailtext[0] as $email_now) { 
            $strEncodedEmail = ""; 
            for ($i=0; $i < strlen($email_now); $i++) { 
               $strEncodedEmail .= "&#".ord(substr($email_now,$i)).";"; 
            } 
            $strAll = str_replace($email_now, $strEncodedEmail, $strAll); 
         } 
         				
		// remove fucking tinymce single quote entities:
		$strAll = str_replace("'", "'", $strAll);
Halt zwischen
// edit by stese - ModRewrite
und
// remove fucking tinymce single quote entities:
$strAll = str_replace("'", "'", $strAll);
MfG Steffen

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen » Fr 22. Feb 2008, 18:35

Habe diesem Spam-Schutz in einer 4.6.23 MR in der cms/front_content.php eingebaut. In meiner Version nutze ich auch die VPTransformation.

Einfach folgenden Code in der cms/front_content.php der 4.6.23 MR suchen:

Code: Alles auswählen

			/*
			 * That's it! The code of an article will be evaluated.
			 * The code of an article is basically a PHP script which is cached in the database.
			 * Layout and Modules are merged depending on the Container definitions of the Template.
			 */
			
			// edit by stese - ModRewrite
			ob_start();
        	eval ("?>\n".$code."\n<?php\n");
			$strAll = ob_get_contents();
			ob_end_clean();
			
			// mod rewrite is activated
			if ( $cfg['mod_rewrite']['use'] == 1 ) {
				$sseStarttime = getmicrotime();
				
				// edit 060603 - anchor hack
				$strAll = preg_replace_callback(
						"/<a([^>]*)href\s*=\s*[\"|\'][\/]#(.?|.+?)[\"|\']([^>]*)>/i", 
						create_function( '$arr_matches' , 'return ModRewrite::rewrite_html_anchor($arr_matches);' ),
						$strAll
				);
				
				// remove fucking tinymce single quote entities:
				$strAll = str_replace("'", "'", $strAll);
				
				// IE hack with wrong base href interpretation 
				$strAll = preg_replace ( "/([\"|\'|=])upload\/(.?|.+?)([\"|\'|>])/ie", "stripslashes('\\1${str_base_uri}upload/\\2\\3')", $strAll );
				
				// ok let it beginn, start mod rewrite class
				$strAll = preg_replace_callback(
						"/([\"|\'|=])front_content\.php(.?|.+?)([\"|\'|>])/i", 
						create_function( '$arr_matches' , 'return $arr_matches[1] . ModRewrite::build_new_url($arr_matches[2]) . $arr_matches[3];' ),
						$strAll
				);
				$sseEndtime = getmicrotime();
			} else {
				// anchor hack for non modrewrite websites
				$strAll = preg_replace_callback(
						"/<a([^>]*)href\s*=\s*[\"|\'][\/]#(.?|.+?)[\"|\']([^>]*)>/i", 
						create_function( '$arr_matches' , 'return ModRewrite::contenido_html_anchor($arr_matches, $GLOBALS["is_XHTML"]);' ),
						$strAll
				);
			}
			print ($strAll);
			// print "\n\n<!-- modrewrite generation time: " . ($sseEndtime - $sseStarttime) . " seconds -->";
			// end edit
		}
	}
und durch diesen ersetzen:

Code: Alles auswählen

			/*
			 * That's it! The code of an article will be evaluated.
			 * The code of an article is basically a PHP script which is cached in the database.
			 * Layout and Modules are merged depending on the Container definitions of the Template.
			 */
			 
			// MIT VPTRANSFORMATION + EMAIL-SPAM-SCHUTZ
           // edit by stese - ModRewrite
            ob_start();
            eval ("?>\n".$code."\n<?php\n");
            $strAll = ob_get_contents();
            ob_end_clean();
			
            /*  Transformations - IVP - start */
                   cInclude("includes", "functions.transformations.php");
                   $strAll = Transform($strAll);
		    /*  Transformations - IVP - ende */
			
			// mod rewrite is activated
			if ( $cfg['mod_rewrite']['use'] == 1 ) 
			{
				$sseStarttime = getmicrotime();
				
				// edit 060603 - anchor hack
				$strAll = preg_replace_callback(
						"/<a([^>]*)href\s*=\s*[\"|\'][\/]#(.?|.+?)[\"|\']([^>]*)>/i", 
						create_function( '$arr_matches' , 'return ModRewrite::rewrite_html_anchor($arr_matches);' ),
						$strAll
				);
				
				// remove fucking tinymce single quote entities:
				$strAll = str_replace("'", "'", $strAll);
				
				// IE hack with wrong base href interpretation 
				$strAll = preg_replace ( "/([\"|\'|=])upload\/(.?|.+?)([\"|\'|>])/ie", "stripslashes('\\1${str_base_uri}upload/\\2\\3')", $strAll );
				
				// ok let it beginn, start mod rewrite class				
				$strAll = preg_replace_callback( "/([\"|\'|=])front_content\.php(.?|.+?)([\"|\'|>])/i",
                  create_function( '$arr_matches' , 'return $arr_matches[1] . ModRewrite::build_new_url($arr_matches[2]) . $arr_matches[3];' ), $strAll);
				// EMAIL-SPAM-SCHUTZ - start - edit by rzwei
					 $pattern = '/[_a-z0-9:]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-z0-9]{2,4})/';
			
					 preg_match_all ($pattern, $strAll, $mailtext);
					 
					 foreach($mailtext[0] as $email_now) 
						 {
							$strEncodedEmail = "";
							for ($i=0; $i < strlen($email_now); $i++) 
								{
									$strEncodedEmail .= "&#".ord(substr($email_now,$i)).";";
								}
							$strAll = str_replace($email_now, $strEncodedEmail, $strAll);
							$sseEndtime = getmicrotime();
						 }
				   // EMAIL-SPAM-SCHUTZ - ende - edit by rzwei
				   // Nachfolgende Zeile liegt in Originaldatei an dieser Stelle (auskommentiert, da schon aufgerufen in der EMAIL-SPAM-SCHUTZ-ERWEITERUNG)
				   // $sseEndtime = getmicrotime();
			} else {
				// anchor hack for non modrewrite websites
				$strAll = preg_replace_callback( "/<a([^>]*)href\s*=\s*[\"|\'][\/]#(.?|.+?)[\"|\']([^>]*)>/i", 
			create_function( '$arr_matches' , 'return ModRewrite::contenido_html_anchor($arr_matches, $GLOBALS["is_XHTML"]);' ), $strAll);
			}
							// EMAIL-SPAM-SCHUTZ fuer NICHT-ModRewrite-SEITEN - start - edit by rzwei
					 $pattern = '/[_a-z0-9:]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-z0-9]{2,4})/';
			
					 preg_match_all ($pattern, $strAll, $mailtext);
					 
					 foreach($mailtext[0] as $email_now) 
						 {
							$strEncodedEmail = "";
							for ($i=0; $i < strlen($email_now); $i++) 
								{
									$strEncodedEmail .= "&#".ord(substr($email_now,$i)).";";
								}
							$strAll = str_replace($email_now, $strEncodedEmail, $strAll);
						 }
				   // EMAIL-SPAM-SCHUTZ fuer NICHT-ModRewrite-SEITEN - ende - edit by rzwei
			     print ($strAll);
			// print "\n\n<!-- modrewrite generation time: " . ($sseEndtime - $sseStarttime) . " seconds -->";
			// end edit
		}
	}
MfG Steffen

JuePoe
Beiträge: 92
Registriert: Mi 27. Jul 2005, 13:02
Wohnort: Hamburg + Wendland
Kontaktdaten:

etwas weniger Code...

Beitrag von JuePoe » Mo 23. Jun 2008, 17:59

Meine Lösung zum HARVESTERSCHUTZ:
Dazu gibt man im Editor im Backend lediglich die Mailadresse unverlinkt ein. Davor muss ein LEERZEICHEN stehen.

Textausgabe (hier: HTML_TEXT[1]):

Code: Alles auswählen

<?php 
if(!$edit) {
$htmltext1 = "CMS_HTML[1]"; 
$htmltext1 = preg_replace_callback('|\S*?@\S*?\.\S*|', ersetzemail, $htmltext1); 
print $htmltext1;
}else{
print "CMS_HTML[1]";
}
?>
Die Funktion kommt in ein include, das Frontend-Seiten immer mit aufrufen:

Code: Alles auswählen


function ersetzemail($mtx) {
if (!empty($mtx)) {
  $res = preg_match(
    "/[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}/i",
    $mtx[0], $matches
  );

	 $emailteil = explode("@", $matches[0]);
return"
<script language=\"JavaScript\" type=\"text/javascript\">
<!--
var name = \"".$emailteil[0]."\";
var domain = \"".$emailteil[1]."\";
document.write('<a href=\\\"mailto:' + name + '@' + domain + '\\\">');
document.write(name + '@' + domain + '<\/a>');
// -->
</script>
<noscript>".$emailteil[0]." - at - ".$emailteil[1]."</noscript>
";
} #if !empty
}#function
Tags:
spam,Mailadressen,schützen,Schutz,spamsicher, robots,spider,
Zuletzt geändert von JuePoe am Mi 24. Sep 2008, 10:06, insgesamt 3-mal geändert.
dialog im netz Hamburg + Wendland

SIL
Beiträge: 12
Registriert: Sa 25. Jun 2005, 13:33
Kontaktdaten:

Beitrag von SIL » Sa 12. Jul 2008, 11:01

Hallo JuePoe,

ich habe die Funktion in functions.general.php (C-Version 4.6.24) integriert und die Textausgabe für eine bestehende Seite auf HTML2 geändert:

Code: Alles auswählen

<?php
$htmltext1 = "CMS_HTML[2]";
$htmltext1 = preg_replace_callback('|\S*?@\S*?\.\S*|', ersetzemail, $htmltext1);
print $htmltext1;
?>
Das Ganze funktioniert prima, so lange man direkt nach Eingabe der E-Mail speichert.

Eine Frage bleibt aber: Bei mir wird bei jedem Speichern der Seite (auch ohne Änderung an dem Maillink) der Code des Javascripts neu eingefügt.

Optisch sieht man das zwar nicht, aber im Quelltext sieht das dann so aus:

Code: Alles auswählen

<SCRIPT language=JavaScript type=text/javascript> 
<!-- 
var name = "xxxxx"; 
var domain = "muster.de"; 
document.write('<a href=\"mailto:' + name + '@' + domain + '\">'); 
document.write(name + '@' + domain + '<\/a>'); 
// --> 
</SCRIPT>
 <A  
<script language="JavaScript" type="text/javascript"> 
<!-- 
var name = "xxx"; 
var domain = "muster.de"; 
document.write('<a href=\"mailto:' + name + '@' + domain + '\">'); 
document.write(name + '@' + domain + '<\/a>'); 
// --> 
</script> 
<noscript>xxx - at - muster.de</noscript> 
 <BR><NOSCRIPT></NOSCRIPT>
Gibt es eine Möglichkeit diese Wiederholungen zu unterdrücken?

Danke und viele Grüße
SIL

JuePoe
Beiträge: 92
Registriert: Mi 27. Jul 2005, 13:02
Wohnort: Hamburg + Wendland
Kontaktdaten:

Funktion nur im Frontend ausführen lassen

Beitrag von JuePoe » Sa 12. Jul 2008, 18:14

Hallo,
die Funktion darf nur im Frontend ausgeführt werden:

Code: Alles auswählen

if(!$edit) {
$htmltext1 = preg_replace...
}
Ich ändere den Code oben ab.

Beste Grüße,
Jürgen
dialog im netz Hamburg + Wendland

SIL
Beiträge: 12
Registriert: Sa 25. Jun 2005, 13:33
Kontaktdaten:

Beitrag von SIL » So 13. Jul 2008, 13:01

Hallo Jürgen,

erst einmal vielen Dank für deine Hilfe. Leider bekomme ich die Textausgabe mit deinen Änderungen überhaupt nicht mehr ans Laufen...

Mit dieser Ausgabe in dem Original-Modul "Text HTML (2)"

Code: Alles auswählen

<?php 
if(!edit) { 
$htmltext1 = "CMS_HTML[2]"; 
$htmltext1 = preg_replace_callback('|\S*?@\S*?\.\S*|', ersetzemail, $htmltext1); 
print $htmltext1; 
} 
?>
erhalte ich sowohl im Editor, als auch im Frontend eine Seite ohne den CMS_HTML[2] Container. Das Layout wird angezeigt, aber der CMS_HTML[2] Container und dessen Inhalt nicht.

Die Variante

Code: Alles auswählen

<?php 
$htmltext1 = "CMS_HTML[2]"; 
if(!edit) { 
$htmltext1 = preg_replace_callback('|\S*?@\S*?\.\S*|', ersetzemail, $htmltext1); 
}
print $htmltext1; 
?> 
bringt mir dann den Container wieder, aber dein Script arbeitet nicht mehr...

In welche Datei fügst du bei dir die Funktion ein?

Ich habe es in der cms/front_content.php selbst, in der cms/includes/functions.include.php und vorher in der contendio/includes/functions.general.php und in der contendio/includes/functions.con2.php versucht.

Immer das gleiche Ergebnis mit der Seite ohne den entscheidenden Container im Back- und Frontend.


Viele Grüße
Ingo

Büschel
Beiträge: 16
Registriert: Di 12. Aug 2008, 14:38
Kontaktdaten:

Beitrag von Büschel » Mi 24. Sep 2008, 09:55

Hallo Jürgen,

kannst Du bitte nochmal ganauer schreiben, WO genau ich welchen Code einbinden muss?

Danke vorab,
Büschel

JuePoe
Beiträge: 92
Registriert: Mi 27. Jul 2005, 13:02
Wohnort: Hamburg + Wendland
Kontaktdaten:

Beitrag von JuePoe » Mi 24. Sep 2008, 10:04

Der Code, der mit if(!edit anfängt, kommt in ein Textausgabe-Modul (z.B. eines, das HTML_TEXT[1] verwendet).

Die Funktion kann in einer Datei stehen, die in jede Frontend-Seite eingebunden (include oder require oder cinclude) wird.

Ich hatte einen Fehler im Code: if(!edit ist falsch. Richtig: if(!$edit
Sorry.
dialog im netz Hamburg + Wendland

Gesperrt