Suche nach Beiträgen von Usern mit Namen mit einem Buchstabe

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
honk_alert
Mitglied
Beiträge: 152
Registriert: 02.10.2005 08:12

Suche nach Beiträgen von Usern mit Namen mit einem Buchstabe

Beitrag von honk_alert »

Die Suche ergibt dann keine Ergebnisse, obwohl die Leute natürlich auch was geschrieben haben...

mfg
honk
Benutzeravatar
honk_alert
Mitglied
Beiträge: 152
Registriert: 02.10.2005 08:12

Beitrag von honk_alert »

hallo? :-?
Benutzeravatar
honk_alert
Mitglied
Beiträge: 152
Registriert: 02.10.2005 08:12

Beitrag von honk_alert »

weiß hier denn gar keiner was dazu?
Benutzeravatar
hagily
Mitglied
Beiträge: 1139
Registriert: 25.08.2005 22:05
Wohnort: Schweinfurt
Kontaktdaten:

Beitrag von hagily »

Hi!
Beachten
Folgende Tabellen bei dir weden leer sein:
_search_results
_search_wordlist
_search_wordmatch

Deshalb installierst du diesen mod:
http://phpbbhacks.com/download/434

Der stellt diese Tabellen wieder her.
Felix
Benutzeravatar
honk_alert
Mitglied
Beiträge: 152
Registriert: 02.10.2005 08:12

Beitrag von honk_alert »

Kann man diese Tabellen auch in phpmyadmin auffüllen? Und was hat das mit meinem Problem zu tun?

Im übrigen sind die nicht leer...hab grad nachgeschaut...
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag von cYbercOsmOnauT »

Das Problem ist wegen folgender Zeilen im search.php (Normal Zeilen 200-203)

Code: Alles auswählen

				if (preg_match('#^[\*%]+$#', trim($search_author)) || preg_match('#^[^\*]{1,2}$#', str_replace(array('*', '%'), '', trim($search_author))))
				{
					$search_author = '';
				}
Der zweite Teil dieser If-Abfrage prüft, ob die Eingabe des Usernamens 1 oder 2 Zeichen hat, wenn ja, wird der Username (ohne * gezählt) auf '' (also nichts) gesetzt. Dies dient wohl dazu das man z.B. durch eine Suche nach *e* als Usernamen die Performance des Boards in die Knie zwingt weil "unendlich viele" Results herauskommen.

Gruß,
Tekin
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
Benutzeravatar
honk_alert
Mitglied
Beiträge: 152
Registriert: 02.10.2005 08:12

Beitrag von honk_alert »

danke für die antwort! wie muss ich das jetzt modifizieren und viel wichtiger, würdest du sagen, dass ich es modifizieren sollte? Wenn nicht, kann ich dann Usernamen mit 1-2 Buchstaben deaktivieren irgendwo?
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag von cYbercOsmOnauT »

Wieviele User mit solchen superkurzen Nicks hast Du denn? Wenn es nur einige sind, ändere ihren Nick zu längeren und schreib ihnen eine EMail.

Im includes/functions_validate.php führe folgende Änderung durch:

SUCHE NACH

Code: Alles auswählen

$username = phpbb_clean_username($username);
DARUNTER FÜGE EIN

Code: Alles auswählen

if ( strlen($username) < 3 )
{
    return array('error' => true, 'error_msg' => $lang['Username_disallowed']);
}
Wenn nun einer einen Usernamen registrieren will, der weniger als 3 Zeichen beinhaltet, bekommt er die Fehlermeldung, dass dieser Username verboten ist.

Grüße,
Tekin

Einen kleinen Hinweis kann ich mir nicht verkneifen (man möge mir verzeihen):

Die Suche nach Usernamen hat nichts mit den Tabellen phpbb_search_results phpbb_search_wordlist phpbb_search_wordmatch zu tun. Den Beweis kann jeder sehen, der sich die search.php einmal ansieht.

Zuerst

Code: Alles auswählen

				$sql = "SELECT user_id
					FROM " . USERS_TABLE . "
					WHERE username LIKE '" . str_replace("\'", "''", $search_author) . "'";
Womit man die user_id's sammelt, die zu dem gesuchten Usernamen (mit Wildcards) passen.
Dann

Code: Alles auswählen

				$sql = "SELECT post_id 
					FROM " . POSTS_TABLE . " 
					WHERE poster_id IN ($matching_userids)";
die Posting_id der Postings die zu den gefundenen user_id's (also Usern) gehören. Am Ende liest das Script "nur noch" entweder die Topic-Titel oder halt einen Teil des Postingtextes aus der DB und gibt diesen aus.

Finito
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
Benutzeravatar
honk_alert
Mitglied
Beiträge: 152
Registriert: 02.10.2005 08:12

Beitrag von honk_alert »

Ok,

das ist die eine Möglichkeit - aber wie kann ich die Suche auch für Leute mit einem Benutzernamen zulassen? Wo muss ich dann was ändern? Danke schon mal für deine Mühe!
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag von cYbercOsmOnauT »

Wieviele User mit so kurzen Nicks hast Du denn?

ÄNDERE

Code: Alles auswählen

            if (preg_match('#^[\*%]+$#', trim($search_author)) || preg_match('#^[^\*]{1,2}$#', str_replace(array('*', '%'), '', trim($search_author)))) 
einfach in

Code: Alles auswählen

            if (preg_match('#^[\*%]+$#', trim($search_author)))
Ob Du Dir (und Deinem Board) damit einen Gefallen tust, wage ich zu bezweifeln.

Tekin
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“