jordanwb Posted August 29, 2008 Share Posted August 29, 2008 I'm trying to improve PHProxy that available here by using mcrypt. A few months ago I asked a question regarding encryption methods. I was pointed to this page, I'm trying to implement those two functions (made a modification to the params). Now I put those to functions plus a key generator into a separate file called encryption.php Now in PHProxy's index.php on the third line I put include "encryption.php"; to include those three functions. But I get this error: Fatal error: Cannot redeclare linencrypt() (previously declared in /var/www/localhost/htdocs/proxy/encryption.php:3) in /var/www/localhost/htdocs/proxy/encryption.php on line 9 I searched php.net and it doesn't have a record of linencrypt or lindecrypt. On line 9 in encryption.php is a closing curly bracket. Also if I go to the file directly I don't get the error. encryption.php: <?php function linencrypt($pass, $key) { $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); //get vector size on ECB mode $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); //Creating the vector $cryptedpass = mcrypt_encrypt (MCRYPT_RIJNDAEL_256, $key, $pass, MCRYPT_MODE_ECB, $iv); //Encrypting using MCRYPT_RIJNDAEL_256 algorithm return $cryptedpass; } // <- This is line 9 function lindecrypt($pass, $key) { $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $decryptedpass = mcrypt_decrypt (MCRYPT_RIJNDAEL_256, $key, $pass, MCRYPT_MODE_ECB, $iv); //Decrypting... return rtrim($decryptedpass); } function GenerateRandomKey ($length) { // start with a blank password $password = ""; // define possible characters $possible = "0123456789abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; // set up a counter $i = 0; // add random characters to $password until $length is reached while ($i < $length) { // pick a random character from the possible ones $char = substr($possible, mt_rand(0, strlen($possible)-1), 1); // we don't want this character if it's already in the password if (!strstr($password, $char)) { $password .= $char; $i++; } } // done! return $password; } ?> I want to implement this encryption so that for each session a different key is used so that the encrypted site url isn't retrieved. I'm running Gentoo Linux 2008.0 with PHP Version 5.2.26-r6 Link to comment https://forums.phpfreaks.com/topic/121798-solved-a-function-is-trying-to-redeclare-itself-on-top-of-itself/ Share on other sites More sharing options...
akitchin Posted August 29, 2008 Share Posted August 29, 2008 could it be that you're including the file twice? Link to comment https://forums.phpfreaks.com/topic/121798-solved-a-function-is-trying-to-redeclare-itself-on-top-of-itself/#findComment-628361 Share on other sites More sharing options...
jordanwb Posted August 29, 2008 Author Share Posted August 29, 2008 I did think of that but no I did not. I searched Gentoo Portage for mcrypt: http://gentoo-portage.com/Search?search=mcrypt perhaps I need to install mcrypt or libmcrypt? Link to comment https://forums.phpfreaks.com/topic/121798-solved-a-function-is-trying-to-redeclare-itself-on-top-of-itself/#findComment-628363 Share on other sites More sharing options...
PFMaBiSmAd Posted August 29, 2008 Share Posted August 29, 2008 You are either including the file twice or it is inside of a loop. Post your code. Link to comment https://forums.phpfreaks.com/topic/121798-solved-a-function-is-trying-to-redeclare-itself-on-top-of-itself/#findComment-628364 Share on other sites More sharing options...
jordanwb Posted August 29, 2008 Author Share Posted August 29, 2008 The file that the maker of PHProxy wrote is 1100+ lines of code. Here's the first couple of dozen: <?php // I added from here include "encryption.php"; session_start (); if (empty ($_SESSION['mcrypt_key'])) { $_SESSION['mcrypt_key'] = GenerateRandomKey (32); } // To here /* +-----------------+------------------------------------------------------------+ | Script | PHProxy | | Author | Abdullah Arif | | Last Modified | 5:27 PM 1/20/2007 | +-----------------+------------------------------------------------------------+ | This program is free software; you can redistribute it and/or | | modify it under the terms of the GNU General Public License | | as published by the Free Software Foundation; either version 2 | | of the License, or (at your option) any later version. | | | | This program is distributed in the hope that it will be useful, | | but WITHOUT ANY WARRANTY; without even the implied warranty of | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | GNU General Public License for more details. | | | | You should have received a copy of the GNU General Public License | | along with this program; if not, write to the Free Software | | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | +------------------------------------------------------------------------------+ */ error_reporting(E_ALL); What about the mcrypt libraries for Gentoo: http://gentoo-portage.com/Search?search=mcrypt Link to comment https://forums.phpfreaks.com/topic/121798-solved-a-function-is-trying-to-redeclare-itself-on-top-of-itself/#findComment-628365 Share on other sites More sharing options...
jordanwb Posted August 29, 2008 Author Share Posted August 29, 2008 Damn I'm an idiot. I was including the file twice but I didn't know it. There are two PHProxy files: index.php and index.inc.php I put the include it both files. But what I didn't know is that index.php included index.inc.php Link to comment https://forums.phpfreaks.com/topic/121798-solved-a-function-is-trying-to-redeclare-itself-on-top-of-itself/#findComment-628376 Share on other sites More sharing options...
Andy-H Posted August 29, 2008 Share Posted August 29, 2008 Use include_once Link to comment https://forums.phpfreaks.com/topic/121798-solved-a-function-is-trying-to-redeclare-itself-on-top-of-itself/#findComment-628379 Share on other sites More sharing options...
jordanwb Posted August 29, 2008 Author Share Posted August 29, 2008 Yes well. I replaced base64encode and base64decode with linencode and lindecode (respectively) as well as added a key and it works. I think. Link to comment https://forums.phpfreaks.com/topic/121798-solved-a-function-is-trying-to-redeclare-itself-on-top-of-itself/#findComment-628386 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.