Seite 1 von 1
Fehlermeldung bei Registrierung
Verfasst: 28.11.2010 13:26
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?
Re: Fehlermeldung bei Registrierung
Verfasst: 28.11.2010 13:39
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
Re: Fehlermeldung bei Registrierung
Verfasst: 28.11.2010 13:42
von toddy
Ich habe jetzt mal die Datei vom PHP 3.0.7 Pl1 genommen, damit funktioniert es.....
Re: Fehlermeldung bei Registrierung
Verfasst: 07.12.2010 15:49
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?
Re: Fehlermeldung bei Registrierung
Verfasst: 07.12.2010 21:16
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
Re: Fehlermeldung bei Registrierung
Verfasst: 08.12.2010 05:04
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);
}
Re: Fehlermeldung bei Registrierung
Verfasst: 08.12.2010 12:21
von Mahony
Hallo
Nein, nicht ersetzen - sondern davor einfügen.
Grüße: Mahony
Re: Fehlermeldung bei Registrierung
Verfasst: 09.12.2010 01:58
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
*/