Ereignis Plugins werden nicht angezeigt

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
lauterunfug
Regular
Posts: 54
Joined: Wed Mar 16, 2005 9:26 am

Ereignis Plugins werden nicht angezeigt

Post by lauterunfug »

hallo

erst mal einmal mehr ein dickes Lob an die Macher von Serendipity! Hammer-Blog-Tool!!

Zu meinem Problem:
Wenn ich im Adminbereich auf "Plugins verwalten" klicke, werden mir nur die "Seitenleisten Plugins", nicht aber die "Ereignis Plugins aufgelistet und auch nicht die versteckten "Seitenleisten Plugins".

Ich verwende Serendipity 1.0-beta2 und PHP 4.3.10-16, vorher war es aber 0.8x.

Dieses Phänomen tritt nicht auf, wenn ich die folgende Zeile vom Inhalt der PHP-Box (noch installiert aus der älteren s9y-Version) entferne:

include_once('/..../public_html/referrer/log.php');

Also muss dieses log.php den Fehler verursachen.
Aber wieso, weiss ich nicht.

das log.php:

Code: Select all

<?php
/*
 * referers.php (c) plebian.com 1999-2004
 *
 * log.php
 * Log referrers into the page.  This script will need to be included on every page you wish to include referrer tracking.
 */

if(basename($_SERVER['SCRIPT_NAME'])=='log.php')
{
	exit;
}

require_once('/..../referrer/config.php');

if($block_head_put&&($_SERVER['REQUEST_METHOD']=='HEAD'||$_SERVER['REQUEST_METHOD']=='PUT'))
{
	exit;
}


if(!empty($_SERVER['HTTP_REFERER'])&&!preg_match("!$block!i",$_SERVER['HTTP_REFERER']))
{
	preg_match('!^https?://([a-zA-Z\-_\.0-9]+)!',addslashes(htmlspecialchars($_SERVER['HTTP_REFERER'],ENT_QUOTES)),$ref);
	$ref=$ref[1];

	if(!empty($ref))
	{
		$parts=explode('.',$ref);
		$size=count($parts);

		if($size==2||$size==3&&$parts[1]=='co'&&strlen($parts[2])==2)
		{
			$ref='www.'.join('.',$parts);	
		}
		elseif($parts[0]!='www'&&$subdomain_sub) // elseif($subdomain_sub)
		{
			preg_match('!\.([a-zA-Z\-_0-9]+\.[a-zA-Z]+(\.[a-zA-Z]{2})?)$!',$ref,$new);
			
			if(substr_count($subdomain_sub,$new[1]))
				$ref='www.'.$new[1];
		}

		$x_ip=addslashes(trim($_SERVER['HTTP_X_FORWARDED_FOR']));
		$c_ip=addslashes(trim($_SERVER['HTTP_CLIENT_IP']));


		if(!is_banned())
		{
			mysql_query("insert into TW_referers (url,hitsout,time,ip,x_ip,c_ip) values ('$ref',0,'".time()."','{$_SERVER['REMOTE_ADDR']}','$x_ip','$c_ip')");
		}
	}
}

function is_banned()
{
	global $ref,$ban_time,$x_ip,$c_ip;

	// fix by neonbubble - www.neonbubble.com
	$xip=(empty($x_ip))?'x':$x_ip;
	$cip=(empty($c_ip))?'x':$c_ip;

	$c=mysql_query("select time from TW_referers where (ip='{$_SERVER['REMOTE_ADDR']}' or x_ip='$xip' or c_ip='$cip') and url='$ref' order by id desc limit 1"); 
    $d=mysql_fetch_object($c); 
    if(is_object($d)) 
    { 
        if($d->time>time()-($ban_time*60)) 
            return true; 
    } 
    return false; 
}
?>
Die PHP-Box funktioniert sonst ohne Probleme. Auf der Homepage (www.lauterunfug.ch) wird die PHP-Box korrekt dargestellt und dieses php-Script ausgeführt.

Eine Idee, wo das Problem liegen könnte?

Ich hoffe, ich konnte mein Problem verständlich schildern....

mfg
tom
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Ereignis Plugins werden nicht angezeigt

Post by garvinhicking »

Hi!

Leider ist es schwierig, für serendipity fremde, eingehackte Komponenten support zu leisten.

Ich würde dich bitten, mal in dieser Datei erstmal alles auszukommentieren, und dann nach und nach von oben beginnend die ienzelnen teile zu aktivieren, um dann zu schauen wo genau in der datei das problem liegt.

Hast du bei jedem require/include befelh auch immer die volle Pfadangabe gemacht?

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
lauterunfug
Regular
Posts: 54
Joined: Wed Mar 16, 2005 9:26 am

Post by lauterunfug »

Hab deinen Rat befolgt und, zumindest teilweise, Erfolg gehabt:

Das 'fremde' Script arbeitet auch mit einer mySQL-Tabelle:
Dieses log.php included ein config.php (siehe code), in welchem wiederum ein mysql_config.php included wird.

Somit vermute ich, dass im Adminbereich bei der Darstellung der Plugins alles OK ist, bis er zu dieser PHP-Box kommt und die mysql-Verbindung umstellt wegen diesem Include und dann die folgenden Komponenten nicht mehr aus der s9y-Datenbank ausliest.

Tönt das für dich auch logisch?

Wie könnte eine Abhilfe aussehen?

Was mir spontan einfällt: in der PHP-Box nach
include_once('/..../public_html/referrer/log.php');

einfach die s9y-Datenbankverbindungen nochmals laden.
hab mal nach diesem include noch
include_once('/....public_html/serendipity_config.inc.php');
eingefügt. Das bringt aber nix.
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Das klingt logisch. Führe dann mal nach dem include deines codes ein "serendipity_db_connect()" aus. Damit stellt s9y dann wieder eine DB-Verbindung zu sich selbst her.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
lauterunfug
Regular
Posts: 54
Joined: Wed Mar 16, 2005 9:26 am

Post by lauterunfug »

Wenn ich dich richtig verstehe, einfach:

Code: Select all

include_once('/home/usr/lauterunfug/public_html/referrer/log.php');
serendipity_db_connect();
> das löst das Problem leider nicht.

Falls du grad noch was auf Lager hast, bin ich dir natürlich dankbar. Aber ich kann auch mit diesem Fehler leben - ich kommentiere einfach jeweils den inclue_once aus, wenn ich Ereignis-Plugins editieren möchte...

Allgemeine Frage noch zur PHP-Box: wird die mit der neuen Version offiziell nicht in Spartacus angeboten?
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Hhm, wenn das connektieren danach nicht klappt, weiß ich leider auch nicht so bescheid, da müsste ich das hier selber probieren wozu mir derzeit leider einfach die zeit fehlt...

Welches Plugin genau meinst Du mit PHP-Box? serendipity_event_external? Oder das "PHP Nugget" plugin? Ersteres gibts in spartacus, zweiteres gab und wird es offiziell nie geben.

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
lauterunfug
Regular
Posts: 54
Joined: Wed Mar 16, 2005 9:26 am

Post by lauterunfug »

Ich werd mal selber versuchen, eine Lösung zu finden. Würde die hier dann posten.

Zu deiner Frage:
im Plugin serendipity_plugin_phpbox.php steht:

v 1.0 2004/06/22 13:45:48 garvinhicking Exp

von dir?
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Korrekt, dieses Plugin gab es nie und wird es nie geben. :-)

Wenn Du die Lösung zu dem Scriptproblem findest, die würde mich dann interessehalber auch interessieren. ;)

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
lauterunfug
Regular
Posts: 54
Joined: Wed Mar 16, 2005 9:26 am

Post by lauterunfug »

Korrekt, dieses Plugin gab es nie und wird es nie geben. Smile
hab auch keine Ahnung, wie ich diesen Plugin gekriegt habe ;-)

:?: Gründe, dass es den nicht gibt/geben wird :?:

-> Sicherheitsbedenken?
-> Bugs?
-> ???
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Ja, die gründe findest du im forum, such mal nach "phpbox" oder "php nugget". Es sind Sicherheitsbedenken, da ein solches Plugin a.) dreckig ist und b.) von Benutzern/Redakteuren zu Code Injections genutzt werden kann.

Es ist wesentlich sinnvoller, ein eigenes Plugin für die Einbindung von PHP Code zu schreiben; das geht schnell und ist dann auch zuverlässig und besser wartbar. :)

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Post Reply