ToonMariner Posted May 2, 2007 Share Posted May 2, 2007 hello, I am sure I had doen this before but I have hit a liit snag... I have to pass the encrypted string one one page to the next - either in a session or a hidden field. The probelm being the special characters in the string. I have used a regular expression to replace line feeds etc... like so. <?php $this->find = array ( "/\\r/" , "/\\n/" , "/\\t/" ); $this->replace = array ( 'linefeedchar' , 'newlinechar' , 'tabchar' ); $this->rfind = array ( "\r" , "\n" , "\t" ); $this->rreplace = array ( '/linefeedchar/' , '/newlinechar/' , '/tabchar/' ); // encrypting. $encrypted = mcrypt_generic($this->td, $str); return preg_replace($this->find, $this->replace,htmlentities($encrypted)); // decrypting $str = html_entity_decode(preg_replace($this->rreplace, $this->rfind,$str)); return mdecrypt_generic($this->td, $str); ?> obviously this is all in class methods - that is not the problem. The problem lies with the characters of the encryption and converting them to ones that can be passed via post/session/url and then converted backonce more. If you can spot where I am going wrong please put me right. any thanks.... Quote Link to comment Share on other sites More sharing options...
obsidian Posted May 2, 2007 Share Posted May 2, 2007 Have you tried running serialize() on it to bring it to an assignable string? Then, you can run unserialize() on the variable on the receiving end to return it to your format. Quote Link to comment Share on other sites More sharing options...
ToonMariner Posted May 2, 2007 Author Share Posted May 2, 2007 Thansk for the response obsidian. just tried it a couple of ways with and with the htmlentities and html_entity_decode but to no avail. there are still some [pre][/pre] chars in the string that I can't get to identify and the decrypion is failing miserably.... Quote Link to comment Share on other sites More sharing options...
obsidian Posted May 2, 2007 Share Posted May 2, 2007 I have a dumb question... are you initializing using mcrypt_generic_init() first? I figure you probably are, and it's just not showing in the code. Also, you don't have any trailing spaces or anything, do you? One final thought: is the charset of the retrieving page the same as that on the sending page? If you encrypt one charset and decrypt it using another, you may well come up with some unrecognizable characters. You've probably already covered all these, but I figured I'd better check them anyway. Quote Link to comment Share on other sites More sharing options...
ToonMariner Posted May 2, 2007 Author Share Posted May 2, 2007 mcrypt_generic_init() - yes... trailing spaces??? no the string is trimed before going to the encrypter... charset is teh same on bothe pages <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" /> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.