Seite 12 von 153

Verfasst: 09.06.2007 16:05
von nickvergessen
hast du dann nen Link zum Board?

Verfasst: 09.06.2007 16:41
von rhooba

Verfasst: 09.06.2007 16:45
von nickvergessen
und die functions_wwh.php dazu?

Verfasst: 09.06.2007 16:56
von rhooba
Ich hab das RC2 eingebaut! Ich denke daran lags. Ich hab einfach die funktions_wwh.php nach includes hochgeladen. Das reicht doch, oder?

LG
Detlev

Verfasst: 09.06.2007 18:17
von nickvergessen
jap, das sollte reichen.

Verfasst: 09.06.2007 22:07
von Dr.Death
Öhm, ich bekomme Fehlermeldungen, wenn ich die neue includes/functions_wwh.php benutze:
[phpBB Debug] PHP Notice: in file /includes/functions_wwh.php on line 115: Undefined index: user_ip
Du machst kurz vorher eine Abfrage:

Code: Alles auswählen

// bots need to get a extra handle
$sql = " SELECT u.user_type, u.user_id, u.user_lastvisit, u.user_allow_viewonline, w.id
	FROM " . USERS_TABLE . " u, " . WWH_TABLE . " w
	WHERE u.user_type = 2
	AND u.user_id <> 1
	AND u.user_lastvisit > $timestamp_cleaning";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
Dort fragst Du alles ab, ausser die user_ip.

Willst aber über das array $row die user_ip eintragen -->
$sql = "INSERT INTO `" . WWH_TABLE . "` (`ip`, `id`, `viewonline`, `last_page`) VALUES ('" . $row['user_ip'] . "', '" . $row['user_id'] . "', '" . $row['user_allow_viewonline'] . "', '" . $row['user_lastvisit'] . "')";
Die dürfte an dieser Stelle aber leer sein, daher auch die "Fehlermeldung", wenn man den Debug Modus an hat !


Anmerkungen:
Die message_die brauchst Du nicht mehr. Dafür gibt es das "Backtrace" ;-)

Aus:

Code: Alles auswählen

	if ( !$db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, 'Could not delete Entry from WWH-Table: Case3', '', __LINE__, __FILE__, $sql);
	}
Mach einfach:

Code: Alles auswählen

$db->sql_query($sql)
Dann noch folgendes:
Halte Dich etwas mehr an die Coding Guidelines, SQL .
http://area51.phpbb.com/docs/coding-guidelines.html#sql
Punkte: sql_build_array():
usw.

Ah, nochwas: Du verwendest in einigen Abfragen :

Code: Alles auswählen

WHERE u.user_type = 2
Besser wäre es wenn du die definierten Constanten ( siehe constants.php ) für den Usertyp verwenden würdest. Nicht jeder Coder weiss was usertyp 2 ist

-->

Code: Alles auswählen

WHERE u.user_type = ' . USER_IGNORE . '

Code: Alles auswählen

define('USER_NORMAL', 0);
define('USER_INACTIVE', 1);
define('USER_IGNORE', 2);
define('USER_FOUNDER', 3);

Verfasst: 10.06.2007 08:48
von nickvergessen
Dr.Death hat geschrieben:Öhm, ich bekomme Fehlermeldungen, wenn ich die neue includes/functions_wwh.php benutze:
[phpBB Debug] PHP Notice: in file /includes/functions_wwh.php on line 115: Undefined index: user_ip
1.Fix
finde:

Code: Alles auswählen

// bots need to get a extra handle
$sql = " SELECT u.user_type, u.user_id, u.user_lastvisit, u.user_allow_viewonline, w.id
   FROM " . USERS_TABLE . " u, " . WWH_TABLE . " w
   WHERE u.user_type = 2
   AND u.user_id <> 1
   AND u.user_lastvisit > $timestamp_cleaning";
So sollte die Abfrage stimmen:

Code: Alles auswählen

// bots need to get a extra handle
$sql = ' SELECT u.user_type, u.user_id, u.user_ip, u.user_lastvisit, u.user_allow_viewonline, w.id
   FROM ' . USERS_TABLE . ' u, ' . WWH_TABLE . ' w
   WHERE u.user_type = ' . USER_IGNORE . '
      AND u.user_id <> 1
      AND u.user_lastvisit > '.$timestamp_cleaning;
Dr.Death hat geschrieben:

Code: Alles auswählen

	if ( !$db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, 'Could not delete Entry from WWH-Table: Case3', '', __LINE__, __FILE__, $sql);
	}
Mach einfach:

Code: Alles auswählen

$db->sql_query($sql)
Hab ich 12mal gemacht ;)(macht 36 Zeilen weniger Code)
Dr.Death hat geschrieben:

Code: Alles auswählen

WHERE u.user_type = 2
Besser wäre es wenn du die definierten Constanten ( siehe constants.php ) für den Usertyp verwenden würdest. Nicht jeder Coder weiss was usertyp 2 ist

Code: Alles auswählen

WHERE u.user_type = ' . USER_IGNORE . '
hab ich jetzt auch gemacht.
Dr.Death hat geschrieben:Dann noch folgendes:
Halte Dich etwas mehr an die Coding Guidelines, SQL .
http://area51.phpbb.com/docs/coding-guidelines.html#sql
Punkte: sql_build_array():
Absätze hab ich mal berücksichtigt Das mit "Common DBAL methods" ist aber auch so ne Sache für sich, egal... werd meinen Code mal daraufhin durcharbeiten. Genauso die ' und " Regeln...

Verfasst: 10.06.2007 09:21
von Dr.Death
Kleine Korrektur noch:

Wenn man "single quotes" benutzt, müssen $variablen ausserhalb von den single quotes stehen.

Die SQL Abfrage muss demnach so aussehen:

Code: Alles auswählen

$sql = ' SELECT u.user_type, u.user_id, u.user_ip, u.user_lastvisit, u.user_allow_viewonline, w.id 
   FROM ' . USERS_TABLE . ' u, ' . WWH_TABLE . ' w 
   WHERE u.user_type = ' . USER_IGNORE . ' 
      AND u.user_id <> 1 
      AND u.user_lastvisit > ' . $timestamp_cleaning ;

Verfasst: 10.06.2007 09:22
von nickvergessen

Verfasst: 10.06.2007 09:29
von sopi
Eine ganz blöde Frage (sorry dass ich nicht alle 12 Seiten gelesen habe)
Aber wenn ich das richtig sehe, dann ist das (auch) ein Mod für phpBB3RC2.
Wie kann das sein?
Ich sehe im downloadbereich nur die Version phpBB3RC1 :o
Danke für jedwede Art von Antwort
lg
sopi