Bestimmte Zeichen aus allen Beiträgen löschen
Bestimmte Zeichen aus allen Beiträgen löschen
Hallo,
ich stelle in meinem Forum fest, dass über 1.000 Male dieser Code in Beiträgen auftaucht:
" onclick="window.open(this.href);return false;
Diese Zeichen stammen nur aus alten Beiträgen und sie befinden sich direkt hinter externen Links. Ist es möglich diese Zeichen in phpmyadmin in einem Zuge zu entfernen? Kann mir bitte jemand sagen wie ich das anstellen kann?
ich stelle in meinem Forum fest, dass über 1.000 Male dieser Code in Beiträgen auftaucht:
" onclick="window.open(this.href);return false;
Diese Zeichen stammen nur aus alten Beiträgen und sie befinden sich direkt hinter externen Links. Ist es möglich diese Zeichen in phpmyadmin in einem Zuge zu entfernen? Kann mir bitte jemand sagen wie ich das anstellen kann?
Re: Bestimmte Zeichen aus allen Beiträgen löschen
Hallo
Du könntest das hier mal ausprobieren: viewtopic.php?f=85&t=162049
Mache aber vorher ein Backup der Datenbank.
Du könntest das hier mal ausprobieren: viewtopic.php?f=85&t=162049
Mache aber vorher ein Backup der Datenbank.
- Mahony
- Ehemaliges Teammitglied
- Beiträge: 12179
- Registriert: 17.11.2005 22:33
- Wohnort: Ostfildern Kemnat
- Kontaktdaten:
Re: Bestimmte Zeichen aus allen Beiträgen löschen
Hallo
Oder du versuchst es mal damit
Einfach als replace.php abspeichern, anschließend hochladen und im Browser aufrufen.
Anschließend nicht vergessen, das Sript wieder vom Webspace zu löschen.
Grüße: Mahony
Oder du versuchst es mal damit
Code: Alles auswählen
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
still_on_time();
$batch_size = 100;
$sql = 'SELECT COUNT(post_id) as cnt
FROM ' . POSTS_TABLE . '
WHERE post_text ' . $db->sql_like_expression($db->get_any_char() . '</URL>" onclick="window.open(this.href);return false;' . $db->get_any_char());
$result = $db->sql_query($sql);
$affected = (int) $db->sql_fetchfield('cnt');
if (set_time_limit(0))
{
echo 'Successfully disabled execution time<br />';
}
else
{
echo 'Unable to disable execution time limit. You may need to run this script again.<br />';
}
echo '<br />';
echo 'Updates needed: ' . $affected . '<br />';
echo 'Running updates in batches of ' . $batch_size . '<br />';
flush();
// Counting basically holds the amount of rows processed.
$counting = -1;
$batch_time = 0;
$_sql = 'SELECT post_id, post_text
FROM ' . POSTS_TABLE . '
WHERE post_text ' . $db->sql_like_expression($db->get_any_char() . '</URL>" onclick="window.open(this.href);return false;' . $db->get_any_char());
$skip_rows = 0;
while ($counting === -1 || ($counting >= $batch_size && still_on_time()))
{
$result = $db->sql_query_limit($_sql, $batch_size, $skip_rows);
// Now handle the rows until time is over or no more rows to process...
$counting = 0;
while ($counting === 0 || still_on_time())
{
$row = $db->sql_fetchrow($result);
if (!$row)
{
// move to the next batch
break;
}
$message = str_replace('</URL>" onclick="window.open(this.href);return false;', '</URL>', $row['post_text']);
$sql_update = array(
'post_text' => $message,
'post_checksum' => md5($message),
);
$sql = 'UPDATE ' . POSTS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_update) . ' WHERE post_id = ' . $row['post_id'];
$db->sql_query($sql);
$counting++;
$skip_rows++;
}
$db->sql_freeresult($result);
}
if (still_on_time() && $counting < $batch_size)
{
echo 'Finished processing ' . $skip_rows . ' rows.';
exit;
}
else
{
echo 'Rows completed: ' . $skip_rows . '<br />Rows remaining: ' . ($affected - $skip_rows) . '<br /><br />This script will resume in 5 seconds';
echo '<meta http-equiv="refresh" content="5;" />';
}
Anschließend nicht vergessen, das Sript wieder vom Webspace zu löschen.
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.
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Re: Bestimmte Zeichen aus allen Beiträgen löschen
Hallo,
danke für eure Hilfe. Die erste Variante von Kirk hat leider nicht funktioniert. Ich vermute deshalb nicht, wegen den vielen Sonderzeichen in meinem Code. Wenn ich normale Wörter ohne Sonderzeichen ersetzen will, dann funktioniert der Code.
@ Mahony
Wo muss ich denn bei deinem Beispiel den neuen Text eingeben? Eventuell unter "$row['post_text']);" - Hier anstelle von post_text? Muss ich den neuen Text insgesamt nur einmal eingeben?
danke für eure Hilfe. Die erste Variante von Kirk hat leider nicht funktioniert. Ich vermute deshalb nicht, wegen den vielen Sonderzeichen in meinem Code. Wenn ich normale Wörter ohne Sonderzeichen ersetzen will, dann funktioniert der Code.
@ Mahony
Wo muss ich denn bei deinem Beispiel den neuen Text eingeben? Eventuell unter "$row['post_text']);" - Hier anstelle von post_text? Muss ich den neuen Text insgesamt nur einmal eingeben?
- Mahony
- Ehemaliges Teammitglied
- Beiträge: 12179
- Registriert: 17.11.2005 22:33
- Wohnort: Ostfildern Kemnat
- Kontaktdaten:
Re: Bestimmte Zeichen aus allen Beiträgen löschen
Hallo
Du musst nichts eingeben. Der Text
ist schon im Script enthalten und wird auch mittels dem Script aus der Datenbank gelöscht.
Grüße: Mahony
Du musst nichts eingeben. Der Text
Code: Alles auswählen
" onclick="window.open(this.href);return false;
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.
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Re: Bestimmte Zeichen aus allen Beiträgen löschen
Ja das habe ich gesehen, ich dachte ich muss den neuen Text irgendwo eingeben.
Den Rooth Path muss ich nur einmal eingeben, sonst nix mehr - richtig? ((defined('PHPBB_ROOT_PATH')))
Den Rooth Path muss ich nur einmal eingeben, sonst nix mehr - richtig? ((defined('PHPBB_ROOT_PATH')))
- Mahony
- Ehemaliges Teammitglied
- Beiträge: 12179
- Registriert: 17.11.2005 22:33
- Wohnort: Ostfildern Kemnat
- Kontaktdaten:
Re: Bestimmte Zeichen aus allen Beiträgen löschen
Hallo
Grüße: Mahony
NEIN, du musst NICHTS ändern an dem Script - nur hochladen, aufrufen und fertig.Lizardx hat geschrieben:Den Rooth Path muss ich nur einmal eingeben, sonst nix mehr - richtig? ((defined('PHPBB_ROOT_PATH')))
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.
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Re: Bestimmte Zeichen aus allen Beiträgen löschen
Ok, habe es grade hochgeladen doch es kommt diese Fehlermeldung:
Fatal error: Call to undefined method dbal_mysql::get_any_char() in /www/htdocs/wxxxf5ac/forum/replace.php on line 12
Ich vermute mal, es klappt nicht aufgrund der vielen Sonderzeichen? Was mich ausserdem stutzig macht ist in diesem Code:
Fatal error: Call to undefined method dbal_mysql::get_any_char() in /www/htdocs/wxxxf5ac/forum/replace.php on line 12
Ich vermute mal, es klappt nicht aufgrund der vielen Sonderzeichen? Was mich ausserdem stutzig macht ist
Code: Alles auswählen
</URL>
Code: Alles auswählen
</URL>" onclick="window.open(this.href);return false;
- Mahony
- Ehemaliges Teammitglied
- Beiträge: 12179
- Registriert: 17.11.2005 22:33
- Wohnort: Ostfildern Kemnat
- Kontaktdaten:
Re: Bestimmte Zeichen aus allen Beiträgen löschen
Hallo
Das Script ist für phpBB 3.2.2
Welche phpBB - Version hast du im Einsatz?
P.S. Und welche PHP-Version verwendest du?
Grüße: Mahony
Das Script ist für phpBB 3.2.2
Welche phpBB - Version hast du im Einsatz?
P.S. Und welche PHP-Version verwendest du?
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.
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Re: Bestimmte Zeichen aus allen Beiträgen löschen
ich habe die Version phpBB 3.0.12 und die php Version 5.5.38-nmm3