Fehlermeldung bei Registrierung

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
toddy
Mitglied
Beiträge: 291
Registriert: 08.11.2004 22:16
Wohnort: Bochum
Kontaktdaten:

Fehlermeldung bei Registrierung

Beitrag von toddy »

Hallo und einen schönen Sonntag,

ich baue gerade ein neues Forum für unsere Motorrad I.G. auf, nun habe ich ein Problem bei der Registrierung.

Wenn ich auf Registrieren klicke kommt die Seite mit den Nutzungsbedingungen, wenn ich da auf den Button "Einverstanden" (Kurze form) klicke kommt folgende Meldung

Fatal error: Call to undefined function gen_rand_string_friendly() in /var/www/web40/html/bike/includes/captcha/plugins/captcha_abstract.php on line 238


Benutzen tu ich PHP 3.0.8, mit folgenden MODS, Portal Version 1.0.6 und den Geomod 2.2.3

Es funktioniert sonst alles, nnur registrieren geht halt nicht.

Kann mir da einer weiter helfen?


Habe mal in der Datei nach der angezeigten Zeile gesucht, müsste dann diese sein

$this->code = gen_rand_string_friendly(mt_rand(CAPTCHA_MIN_CHARS, CAPTCHA_MAX_CHARS));

Is da ein Fehler drin? habe sie nie geändert?
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12179
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: Fehlermeldung bei Registrierung

Beitrag von Mahony »

Hallo
Die Funktion gen_rand_string_friendly ist neu in phpBB3.0.8
Überprüfe, ob du die aktuelle includes/funktions.php verwendest.
Es sollte sich dort (ca. Zeile 213) folgender Code finden

Code: Alles auswählen

function gen_rand_string_friendly($num_chars = 8)
{
    $rand_str = unique_id();

    // Remove Z and Y from the base_convert(), replace 0 with Z and O with Y
    // [a, z] + [0, 9] - {z, y} = [a, z] + [0, 9] - {0, o} = 34
    $rand_str = str_replace(array('0', 'O'), array('Z', 'Y'), strtoupper(base_convert($rand_str, 16, 34)));

    return substr($rand_str, 0, $num_chars);
} 
Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
toddy
Mitglied
Beiträge: 291
Registriert: 08.11.2004 22:16
Wohnort: Bochum
Kontaktdaten:

Re: Fehlermeldung bei Registrierung

Beitrag von toddy »

Ich habe jetzt mal die Datei vom PHP 3.0.7 Pl1 genommen, damit funktioniert es.....
mrgreen
Mitglied
Beiträge: 168
Registriert: 06.07.2006 02:02

Re: Fehlermeldung bei Registrierung

Beitrag von mrgreen »

Mahony, ich hab den gleichen Fehler gehabt.

Bei mir stand in der functions.php vorher...

Code: Alles auswählen

function gen_rand_string($num_chars = 8)
{
	$rand_str = unique_id();
	$rand_str = str_replace('0', 'Z', strtoupper(base_convert($rand_str, 16, 35)));

	return substr($rand_str, 0, $num_chars);
}
Das habe ich jetzt gelöscht und mit dem Code von dir ersetzt. Jetzt klappt die Reg. wieder. Muss der von mir gelöscht Code drin bleiben?
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12179
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: Fehlermeldung bei Registrierung

Beitrag von Mahony »

Hallo
mrgreen hat geschrieben: Muss der von mir gelöscht Code drin bleiben?
Die Funktion sollte so aussehen.

Code: Alles auswählen

function gen_rand_string($num_chars = 8)
{
    // [a, z] + [0, 9] = 36
    return substr(strtoupper(base_convert(unique_id(), 16, 36)), 0, $num_chars);
} 

Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
mrgreen
Mitglied
Beiträge: 168
Registriert: 06.07.2006 02:02

Re: Fehlermeldung bei Registrierung

Beitrag von mrgreen »

Also das was ich jetzt in der Datei habe...

Code: Alles auswählen

function gen_rand_string_friendly($num_chars = 8)
{
    $rand_str = unique_id();

    // Remove Z and Y from the base_convert(), replace 0 with Z and O with Y
    // [a, z] + [0, 9] - {z, y} = [a, z] + [0, 9] - {0, o} = 34
    $rand_str = str_replace(array('0', 'O'), array('Z', 'Y'), strtoupper(base_convert($rand_str, 16, 34)));

    return substr($rand_str, 0, $num_chars);
} 
soll ich ersetzen mit....

Code: Alles auswählen

function gen_rand_string($num_chars = 8)
{
    // [a, z] + [0, 9] = 36
    return substr(strtoupper(base_convert(unique_id(), 16, 36)), 0, $num_chars);
} 
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12179
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: Fehlermeldung bei Registrierung

Beitrag von Mahony »

Hallo
Nein, nicht ersetzen - sondern davor einfügen.

Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
mrgreen
Mitglied
Beiträge: 168
Registriert: 06.07.2006 02:02

Re: Fehlermeldung bei Registrierung

Beitrag von mrgreen »

OK, dann nur zur Kontrolle ob ich das richtig verstanden habe.

Ich hab ein paar mehr Zeilen Code hinzugefügt...

Code: Alles auswählen

// MySQL, SQlite, mssql, mssql_odbc, oracle
		default:
			$sql_update = 'config_value + ' . (int) $increment;
		break;
	}

	$db->sql_query('UPDATE ' . CONFIG_TABLE . ' SET config_value = ' . $sql_update . " WHERE config_name = '" . $db->sql_escape($config_name) . "'");

	if (!$is_dynamic)
	{
		$cache->destroy('config');
	}
}

/**
* Generates an alphanumeric random string of given length
*/
function gen_rand_string($num_chars = 8)
{
    // [a, z] + [0, 9] = 36
    return substr(strtoupper(base_convert(unique_id(), 16, 36)), 0, $num_chars);
}
function gen_rand_string_friendly($num_chars = 8)
{
    $rand_str = unique_id();

    // Remove Z and Y from the base_convert(), replace 0 with Z and O with Y
    // [a, z] + [0, 9] - {z, y} = [a, z] + [0, 9] - {0, o} = 34
    $rand_str = str_replace(array('0', 'O'), array('Z', 'Y'), strtoupper(base_convert($rand_str, 16, 34)));

    return substr($rand_str, 0, $num_chars);
} 

/**
* Return unique id
* @param string $extra additional entropy
*/
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“