Datenschutzerklärung

PHP: str_replace -> aus " wird \"

Validome - Forum

Startseite Validome
RSS 2.0  
Sie sind nicht angemeldet. Atom 1.0  
Forum Home / Sonstige Technologien /

PHP: str_replace -> aus " wird \"

  Beitrag schreiben
Autor
Beitrag Seiten: 1
Dungeonwatcher
Mitglied

Ort: Berlin
Registriert: 08.11.2005
Beiträge: 126
Moin!

Wenn ich auf meiner Kiste Mails per PHP verschlüsseln lasse und sie anschließend wieder entschlüssel, wird aus den " leider immer ein \".

Ich kriege es einfach nicht gebacken das es auch nach dem entschlüsseln wieder ein " wird. Vielleicht hat ja einer der hiesigen Profis eine Idee. %-)

Hier mal die entsprechenden Codeschnipsel:

Code:

if ( $decrypt )
      {
         $cipher_alg = MCRYPT_RIJNDAEL_256;
         $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
         $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
         $key = "This is a very secret key";
         $decrypted_message = str_replace("<b>Um diese verschl&uuml;sselte Nachricht zu lesen, gebe das Passwort unten rechts ein und klicke dann auf den Button \"Nachricht entschl&uuml;sseln\":</b>\n\n", "", $private_message);
         $decrypted_message = str_replace("<br />", "", $decrypted_message);
         $decrypted_message = trim(mcrypt_decrypt($cipher_alg, $encryption_key, pack("H*", $decrypted_message), MCRYPT_MODE_CFB, "$iv"));
         $private_message = str_replace("\r\n", "<br />", $decrypted_message);
         $decrypted_message = str_replace("\"", "\"", $decrypted_message);
      }

bzw.

Code:

if ($encrypt)
            {
               $cipher_alg = MCRYPT_RIJNDAEL_256;
               $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
               $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
               $key = "This is a very secret key";
               $encrypted_message = str_replace("\\\"", "\"", $privmsg_message);
               $encrypted_message = str_replace("\\'", "'", $encrypted_message);
               $encrypted_message = str_replace("\\\\", "\\", $encrypted_message);
               $encrypted_message = bin2hex(mcrypt_encrypt($cipher_alg, $encryption_key, $encrypted_message, MCRYPT_MODE_CFB, "$iv"));
               $encrypted_message = wordwrap($encrypted_message, 80, "<br />", 1);
               $encrypted_message = "<b>Um diese verschl&uuml;sselte Nachricht zu lesen, gebe das Passwort unten rechts ein und klicke dann auf den Button \"Nachricht entschl&uuml;sseln\":</b>\n\n" . $encrypted_message;
               $sql = "INSERT INTO " . PRIVMSGS_TEXT_TABLE . " (privmsgs_text_id, privmsgs_bbcode_uid, privmsgs_text)
                  VALUES ($privmsg_sent_id, '" . $bbcode_uid . "', '" . $encrypted_message . "')";
            }

Erfolglos versucht habe ich schon dies:

Code:

$encrypted_message = str_replace('\\\"', '"', $privmsg_message);

Damit wird zwar das gewünschte erreicht, nur zerlegt es gleichzeitig das Quoting in den Mails.

Die magic_quotes_ Einstellungen in der PHP.INI sehen aktuell so aus:

magic_quotes_gpc = On
magic_quotes_runtime = On
magic_quotes_sybase = Off

Ich habe auch schon mit diversen Varianten von on und off experimentiert, sie haben keinerlei Einfluss auf das Ergebnis.

Bye/2


_______________________________________
Dungeon-BBS MyMinicity (http://dungeon-bbs.myminicity.com/)

12.02.2007 09:39:25
http://www.dungeon-bbs.de/forum/ Beitrag schreiben
HTMELL
Administrator

Registriert: 11.05.2006
Beiträge: 654
Hallo,
der Zauberbefehl lautet "stripslashes" -> http://www.php.net/manual/de/function.stripslashes.php


_______________________________________
mfg
Thomas Mell

www.validome.org

12.02.2007 19:53:36
  Beitrag schreiben
Dungeonwatcher
Mitglied

Ort: Berlin
Registriert: 08.11.2005
Beiträge: 126
Hi!

Ich hab's geahnt. :-/

Da muss ich wohl mal wieder um HILFE schreien, denn mir will der Syntax nicht in den Kopf. Ich will damit sagen, das ich Null Ahnung habe wie ich dies umsetzen müsste. %-)

Wer der hier Mitlesenden ist denn bereit den o.g. entsprechend zu ändern?  ;-)


_______________________________________
Dungeon-BBS MyMinicity (http://dungeon-bbs.myminicity.com/)

12.02.2007 20:14:21
http://www.dungeon-bbs.de/forum/ Beitrag schreiben
Dungeonwatcher
Mitglied

Ort: Berlin
Registriert: 08.11.2005
Beiträge: 126
Hi!

Mittlerweile habe ich die Lösung dank eines netten Users gefunden:

statt

Code:

$private_message = str_replace("\r\n", "<br>", $decrypted_message);

so

Code:

$decrypted_message = stripslashes($decrypted_message);
$private_message = str_replace("\r\n", "<br>", $decrypted_message);

Bye


_______________________________________
Dungeon-BBS MyMinicity (http://dungeon-bbs.myminicity.com/)

23.09.2007 12:40:07
http://www.dungeon-bbs.de/forum/ Beitrag schreiben
Seiten: 1   Beitrag schreiben
Wechsel zu

Valid HTML 4.01