Zum Inhalt springen

Error Meldung bei TYPO3 Install Tool / Call to undefined method com::GetRandom()

Erstellt am 15. August 2010 · 2 Antworten · letzte Antwort am 4. September 2010

Tags: PHP, Frage

andreas1982 ·

Hallo, ich möchte gerne TYPO3 4.4 mit dem TYPO3 Install Tool installieren. Wenn ich auf Continue drücke bekomme ich folgende Fehlermeldung:

Fatal error: Call to undefined method com::GetRandom() in C:\xampp\htdocs\typo3\t3lib\class.t3lib_div.php on line 1590

Ich hab das ganze local in xampp (Version 1.7.1) laufen.

Kann mir jemand weitehelfen warum ich diese Fehlermeldung bekomme?

Gruß

Zapper ·

Sry for the reply in english..

I can confirm the error upon install, and i found the same error when i try to run index.php in main dir.

Fatal error: Call to undefined method com::GetRandom() in C:\Inetpub\wwwroot\typo3test\t3lib\class.t3lib_div.php on line 1590

From what i can see in the code, there is a call to CAPICOM if the system is windows, CAPICOM is not mandetory installation!! and should not be required from the code.

	/**
	 * Returns a string of highly randomized bytes (over the full 8-bit range).
	 *
	 * @copyright	Drupal CMS
	 * @license		GNU General Public License version 2
	 * @param		integer  Number of characters (bytes) to return
	 * @return		string   Random Bytes
	 */
public static function generateRandomBytes($count) {
		$output = '';
			// /dev/urandom is available on many *nix systems and is considered
			// the best commonly available pseudo-random source.
		if (TYPO3_OS != 'WIN' && ($fh = @fopen('/dev/urandom', 'rb'))) {
			$output = fread($fh, $count);
			fclose($fh);
		} elseif (TYPO3_OS == 'WIN') {
			if (class_exists('COM')) {
				try {
					$com = new COM('CAPICOM.Utilities.1');
					$output = base64_decode($com->GetRandom($count, 0));
				} catch(Exception $e) {
					// CAPICOM not installed
				}
			}
			if ($output === '' && version_compare(PHP_VERSION, '5.3.0', '>=')) {
				if (function_exists('mcrypt_create_iv')) {
					$output = mcrypt_create_iv($count, MCRYPT_DEV_URANDOM);
				} elseif (function_exists('openssl_random_pseudo_bytes')) {
					$isStrong = null;
					$output = openssl_random_pseudo_bytes($count, $isStrong);
						// skip ssl since it wasn't using the strong algo
					if ($isStrong !== TRUE) {
						$output = '';
					}
				}
			}
		}

Is there a workaround CAPICOM?

thx
Zap

devx ·

Capicom mittels regsrv32 registrieren (Adminrechte notwendig)

Konsole:
regsvr32 Pfad/zur/capicom.dll

Falls noch nicht installiert, dann könnt ihr diese über das Microsoft SDK mit herunterladen / installieren: Download Capicom