E-Mail Adressen verschlüsseln - Fehler in den Logs

Fragen rund um PHP,HTML,CSS und MySQL

E-Mail Adressen verschlüsseln - Fehler in den Logs

Beitragvon Oliver.Kreischer » 5. Mai 2011, 07:58

Hallo Zusammen,

wenn ich den PHP Schnipsel zum verschlüsseln der E-Mails in meinem Template nutze werde beim Aufruf der Webseite zwei Fehlermeldungen ins Logfile geschrieben. Entferne ich den Code bleibt das Error-Log clean :-)

Hat vielleicht jemand von Euch einen Lösungsvorschlag?

(PHP 5.3.6, MySQL 5.08, REX 4.3.2)

PHP Snippet:
Code: Alles auswählen
      /*     E-Mail Adressen verschlüsseln
      ***********************************/

         if (!$REX['REDAXO']) rex_register_extension('OUTPUT_FILTER', 'rdx4908_encrypt_emails');

         function rdx4908_encrypt_emails($params) {
            return preg_replace_callback('/(mailto:)?([a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4}|museum))/im',rdx4908_encrypt_callback,$params['subject']);
         }
         function bla() {
         }
         function rdx4908_encrypt_callback($match) {
           $encrypted_email_address = '';
            for($i=0; $i < strlen($match[2]); $i++) {
               $encrypted_email_address .= '&#'.ord(substr($match[2], $i, 1)).';';
            }
            if($match[1][0]) return $match[1] . $encrypted_email_address . '" class="email'; //hier ggfalls den Klassennamen ändern
            else return $encrypted_email_address;
         }


Log Einträge:
Code: Alles auswählen
[Thu May 05 08:52:02 2011] [error] [client xxx.xxx.x.xxx] PHP Notice:  Use of undefined constant rdx4908_encrypt_callback - assumed 'rdx4908_encrypt_callback' in /xxx/xxx/xxx/redaxo/include/classes/class.rex_article_base.inc.php(388) : eval()'d code(3) : eval()'d code on line 128
[Thu May 05 08:52:02 2011] [error] [client xxx.xxx.x.xxx] PHP Notice:  Uninitialized string offset: 0 in /xxx/xxx/xxx/redaxo/include/classes/class.rex_article_base.inc.php(388) : eval()'d code(3) : eval()'d code on line 138


LG
Oliver
http://kreischer.de - "It's very simple - you read the protocol and write the code." - Bill Joy
Benutzeravatar
Oliver.Kreischer
 
Beiträge: 1821
Registriert: 16. Dez 2004, 23:03
Wohnort: Feldafing

Re: E-Mail Adressen verschlüsseln - Fehler in den Logs

Beitragvon Thomas.Blum » 5. Mai 2011, 09:44

Hej Oli,

steht doch alles in den Logs.

rdx4908_encrypt_callback wird als Konstante angesehen die nicht definiert wurde.

Schreib das Callback in Anführungszeichen, dann passt es.

vg Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Re: E-Mail Adressen verschlüsseln - Fehler in den Logs

Beitragvon Oliver.Kreischer » 5. Mai 2011, 09:56

Hallo Thomas,

danke für die Antwort.

Meinst Du es so?
Code: Alles auswählen
...eum))/im','rdx4908_encrypt_callback',$params...['

Oder so
Code: Alles auswählen
...eum))/im',"rdx4908_encrypt_callback",$params...['


Beides ändert leider nichts..

LG
Oliver
http://kreischer.de - "It's very simple - you read the protocol and write the code." - Bill Joy
Benutzeravatar
Oliver.Kreischer
 
Beiträge: 1821
Registriert: 16. Dez 2004, 23:03
Wohnort: Feldafing

Re: E-Mail Adressen verschlüsseln - Fehler in den Logs

Beitragvon Thomas.Blum » 5. Mai 2011, 10:26

Ob Single- oder Doublequote ist egal.

Wenn es das nicht ist, müsste man das genauer untersuchen.
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Re: E-Mail Adressen verschlüsseln - Fehler in den Logs

Beitragvon Oliver.Kreischer » 5. Mai 2011, 11:18

Ne. Passt nicht.

Ist aber auch nicht drungend. Im Frontend funktioniert es.
Ich mag es nur nicht wenn irgendwo Fehler auflaufen die verhinderbar sind...

Danke sehr!
Oliver
http://kreischer.de - "It's very simple - you read the protocol and write the code." - Bill Joy
Benutzeravatar
Oliver.Kreischer
 
Beiträge: 1821
Registriert: 16. Dez 2004, 23:03
Wohnort: Feldafing

Re: E-Mail Adressen verschlüsseln - Fehler in den Logs

Beitragvon Koala » 5. Mai 2011, 19:33

Ändere mal die Funktionsanordung und setzte den Aufruf in Anführungszeichen:
Code: Alles auswählen
      /*     E-Mail Adressen verschlüsseln
      ***********************************/

         if (!$REX['REDAXO']) rex_register_extension('OUTPUT_FILTER', 'rdx4908_encrypt_emails');

         function rdx4908_encrypt_callback($match) {
           $encrypted_email_address = '';
            for($i=0; $i < strlen($match[2]); $i++) {
               $encrypted_email_address .= '&#'.ord(substr($match[2], $i, 1)).';';
            }
            if($match[1][0]) return $match[1] . $encrypted_email_address . '" class="email'; //hier ggfalls den Klassennamen ändern
            else return $encrypted_email_address;
         }
         function rdx4908_encrypt_emails($params) {
            return preg_replace_callback('/(mailto:)?([a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4}|museum))/im', 'rdx4908_encrypt_callback' ,$params['subject']);
         }
         function bla() {
         }
.
<?php print $Footer; ?>

Sven

Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!


REX_DOKU :: REX_WIKI :: REX_FAQ :: REX_WIKIPEDIA
Benutzeravatar
Koala
 
Beiträge: 1529
Registriert: 3. Okt 2005, 12:20
Wohnort: Cottbus

Re: E-Mail Adressen verschlüsseln - Fehler in den Logs

Beitragvon Oliver.Kreischer » 6. Mai 2011, 07:12

Hi Sven,

danke für die Antwort.

leider wird immernoch folgende Fehlermeldung ausgegeben:
Code: Alles auswählen
Uninitialized string offset: 0 in /xxx/xxx/xxx/redaxo/include/classes/class.rex_article_base.inc.php(388) : eval()'d code(3) : eval()'d code on line 123

Auch bekomme ich diverse Uninitialized string offset: 0 in ... Einträge wenn ich im Redaxo Backend arbeite.

Das ist doch sicherlich irgendeine PHP Einstellung die das verursacht bzw. unterbinden kann - oder?

LG
Oliver
http://kreischer.de - "It's very simple - you read the protocol and write the code." - Bill Joy
Benutzeravatar
Oliver.Kreischer
 
Beiträge: 1821
Registriert: 16. Dez 2004, 23:03
Wohnort: Feldafing

Re: E-Mail Adressen verschlüsseln - Fehler in den Logs

Beitragvon Koala » 6. Mai 2011, 22:31

Oliver.Kreischer hat geschrieben:Das ist doch sicherlich irgendeine PHP Einstellung die das verursacht bzw. unterbinden kann - oder?

Jaein. Das sind Fehler in der Programmierung.
Aber diese Ausgabe kannst du mit hilfe des Error-Reporting unterdrücken, wenn es nicht anders zu lösen ist.
.
<?php print $Footer; ?>

Sven

Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!


REX_DOKU :: REX_WIKI :: REX_FAQ :: REX_WIKIPEDIA
Benutzeravatar
Koala
 
Beiträge: 1529
Registriert: 3. Okt 2005, 12:20
Wohnort: Cottbus


Zurück zu PHP/HTML/CSS/MySQL

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron