Seite 3 von 4

Verfasst: 15.11.2006 23:22
von studentl
also, der erste teil steht oben, in meinem post, hier die datei um die db zu reparieren (nicht schön aber von mir ^^ )

Code: Alles auswählen

<?php

// Datei: phpDbUpdate.php
// author: studentl (c)2006

 define('IN_PHPBB', true);
 $phpbb_root_path = './';
 
 // Load Configuration
 include($phpbb_root_path . "extension.inc");
 include($phpbb_root_path . "config." . $phpEx);
 include($phpbb_root_path . "includes/db." . $phpEx);
 
	
	$sql = "SELECT post_id, bbcode_uid, post_text FROM " . $table_prefix . "posts_text WHERE `post_text` LIKE '%[quote=%]%'";
	
	$result = $db->sql_query($sql);
	
	
	while  (($row =mysql_fetch_array($result)))
	{	
		$row['post_text'] = str_replace("\n", "<br />",$row['post_text']);
		$row['post_text'] = str_replace('[quote="' , '[quote:' . $row['bbcode_uid'] . '="', $row['post_text'] );
		$row['post_text'] = str_replace('"]' , '"]', $row['post_text'] );
 		$row['post_text'] = str_replace("[/quote]", "[/quote:" . $row['bbcode_uid'] . "]", $row['post_text'] );
 		
 		$name='';
 		$name = substring_between($row['post_text'], '[quote=', ']');
 		if (name != '')
			$row['post_text'] = str_replace('[quote=' . $name . ']' , '[quote:' . $row['bbcode_uid'] . '="' . $name . '"]', $row['post_text'] );
		
		$sql = 'UPDATE `' . $table_prefix . 'posts_text` SET `post_text`=\'' . $row['post_text'] . '\' WHERE `post_id` = ' . $row['post_id'] . ';';
		$db->sql_query($sql);
	}
	
	echo 'Alle Datenbankoperationen erfolgreich durchgeführt!';
	
	
	//function to get a substring between between two other substrings

function substring_between($haystack,$start,$end) {
   if (strpos($haystack,$start) === false || strpos($haystack,$end) === false) {
       return false;
   } else {
       $start_position = strpos($haystack,$start)+strlen($start);
       $end_position = 0;
       while ($end_position < $start_position)
		  $end_position = strpos($haystack,$end);
       return substr($haystack,$start_position,$end_position-$start_position);
   }
}
	
?>
diese datei in abspeichern, (zb als phpDbUpdate.php ) und dann ins rootverzeichnis des forums legen und ausführen.

danach sollte alles wieder gehen.

mfg
studentl

Verfasst: 16.11.2006 17:54
von Petra20
danke fürs posten, es tut sich aber nichts.

habe kein update gemacht, ledeglich den nur 50 zeichen mod in die functions.php eingebaut, habe auch versucht das rückgängig zu machen hilft aber nichts.

die folgende lösung die vielen geholfen hat bringt mir auch nichts: OPEN: includes/functions_post.php

FIND

Code:
$message = addslashes($message);


AFTER ADD

Code:
$message = str_replace('"', '\\"', $message);

-------------------------
meine functions_post.php

Verfasst: 16.11.2006 18:58
von Miriam
Also an der functions_post.php liegt es nicht.
Es wird eher an der bbcode.php und/oder der bbcode.tpl liegen.

Verfasst: 16.11.2006 21:05
von studentl
ihr müsst bevor ihr mein kleines tool ausführt wieder die originaldateien einspielen (am besten nochmal neu ziehen)...wenn ihr das dann macht geht es wieder ;) versprochen ;)

ps: da fehlen keine slashes, sondern die uid bei qoute ;) mehr is das net ^^

Verfasst: 16.11.2006 21:34
von Miriam
Da hast Du verdammt wahr, Student.
Es sollte nur noch geklärt werden, wieso die bbcode_uid nicht mit reingeschrieben wird.

Verfasst: 16.11.2006 23:17
von Petra20
studentl hat geschrieben:ihr müsst bevor ihr mein kleines tool ausführt wieder die originaldateien einspielen (am besten nochmal neu ziehen)...wenn ihr das dann macht geht es wieder ;) versprochen ;)

ps: da fehlen keine slashes, sondern die uid bei qoute ;) mehr is das net ^^
das bekomme ich angezeigt wenn ich es ausführe.

Warning: main(./config.php) [function.main]: failed to open stream: No such file or directory in /www/htdocs/w0063220/fanclub/phpupdate.php on line 11

Warning: main(./config.php) [function.main]: failed to open stream: No such file or directory in /www/htdocs/w0063220/fanclub/phpupdate.php on line 11

Warning: main() [function.include]: Failed opening './config.php' for inclusion (include_path='.:/usr/share/php:..') in /www/htdocs/w0063220/fanclub/phpupdate.php on line 11

Fatal error: Cannot instantiate non-existent class: sql_db in /www/htdocs/w0063220/fanclub/includes/db.php on line 60

Verfasst: 16.11.2006 23:48
von studentl
hast du das file im rootpath von deinem forum liegen?also da wo auch config.php und viewtopic.php und so weiter liegt?sieht mir irgendwie nicht so aus..

Verfasst: 17.11.2006 10:01
von Petra20
hab ich. aber die config hab ich wo anders versteckt.

Verfasst: 17.11.2006 13:14
von Miriam
Dann musst Du (natürlich)

Code: Alles auswählen

include($phpbb_root_path . "config." . $phpEx);
im Code entsprechend Deinen Vorgaben anpassen.

Verfasst: 19.11.2006 10:22
von Petra20
was schreib ich in die zeile wenn sich die config im haupt rooth aufhällt, also ein ordner vor dem forum.

... ps habe den script aber wo anders getestet, hätte nie gedacht das er funkt aber klappt wunderbar, danke das du dir so viel zeit genommen hat studentl um ih zu schreiben