# Fehler: Trying to get property of non-object



## jdgf (1. September 2009)

Hallo,

ich bekomme auf meiner Startseite die Fehlermeldung 


> Notice: Trying to get property of non-object in /var/www/web539/html/modules/mod_arhiva/mod_arhiva.php on line 41


; sobald ich eine andere Seite aufrufe, ist sie weg.
Die Zeilen 40-42 haben folgenden Code:

```
if ($prikaz == 0) {
	$pristup = ( !$mainframe->getCfg( 'shownoauth' ) ? "\n AND access <= " . (int) $my->gid : '' );
}
```
Vorher wurde auch die Variable $my als unbekannt gemeldet. Deswegen habe ich zu Beginn des Scriptes 
	
	
	



```
$my="";
```
definert. Dadurch ist die Fehlermeldung weg.
Kann mir jemand sagen, was die Fehlermeldung bedeutet und wie das Problem zu lösen ist, da ich in php noch nicht so fit bin. Gibt es einen Link mit weiteren Infos?

Könnte es auch mit einer generellen Einstellung der Website zusammenhängen, da ich das Script auf einer anderen Seite mit demselben Code ohne Fehlermeldung verwende? 

Danke für die Hilfe und
viele Grüße, Dietmar


----------



## ZodiacXP (1. September 2009)

jdgf hat gesagt.:


> Kann mir jemand sagen, was die Fehlermeldung bedeutet und wie das Problem zu lösen ist, da ich in php noch nicht so fit bin. Gibt es einen Link mit weiteren Infos?



Die Antwort hast du  "Trying to get property of non-object". Solche Meldungen einfach übersetzen: "Versuch auf die Eigenschaft einer Variablen zuzugreifen, die kein Objekt ist". Näheres und viele andere Meldungen gibt es hier: http://www.php-fehlermeldungen.de/topicmenu1/index1.html (Dort ist der Fehler in leicht abgewandelter Form zu finden, aber auch im Zugriff auf ein "Non-Object")



jdgf hat gesagt.:


> Vorher wurde auch die Variable $my als unbekannt gemeldet. Deswegen habe ich zu Beginn des Scriptes
> 
> 
> 
> ...



Welche Fehlermeldung? Die, dass $my nicht initialisiert war oder die, dass es kein Objekt ist?

Ich behaupte, dass genau dieses $my unbekannt für den Interpreten (von PHP) ist, woraus sich der o.g. Fehler ergibt. Wird $my später als Objekt deklariert?

z.B.
	
	
	



```
$my = new Irgendwas();
```


----------



## jdgf (1. September 2009)

Hallo Zod,

danke für deine Hilfe.
Ohne meine Definition von $my lautete die andere Fehlermeldung


> Notice: Undefined variable: my in /var/www/web539/html/modules/mod_arhiva/mod_arhiva.php on line 41



Die Variable $my ist nur in der Zeile 41 notiert, daher ist sie wohl nicht als Objekt deklariert.

Das Script wird aber bei mir nicht abgebrochen, sondern funktioniert. In dem Beispiel müßte ich hinter $my = new..() doch etwas einfügen, das einer Klasse entspricht. Gibt es hier auch so etwas allgemeines wie $my = ""; 
Die Definitionen als Objekt oder Variable schließen sich doch gegenseitig aus.

Gruss, DIetmar


----------



## kuddeldaddeldu (1. September 2009)

Hi,



jdgf hat gesagt.:


> Das Script wird aber bei mir nicht abgebrochen, sondern funktioniert. In dem Beispiel müßte ich hinter $my = new..() doch etwas einfügen, das einer Klasse entspricht. Gibt es hier auch so etwas allgemeines wie $my = "";
> Die Definitionen als Objekt oder Variable schließen sich doch gegenseitig aus.



Nein, das schließt sich nicht aus. Du kannst ein Objekt in einer Variablen speichern. Es ergibt aber keinen Sinn, $my als leeren String zu definieren, wenn später im Script ein Objekt erwartet wird, das eine Eigenschaft gid hat. Wenn das ein Script ist, das du Dir irgendwo gezogen hast, solltest Du also ergründen, was das für ein Objekt ist und wo es gesetzt wird. Vielleicht hast Du irgendeinen Include vergessen?

LG


----------



## jdgf (1. September 2009)

Hallo,
vergessen kann ich nichts haben, da das Modul bei mir über Joomla installiert wurde. Ich werde mal versuchen, mit dem Autor Verbindung aufzunehmen.
Danke für euere Hilfe, ich habe in jdem Fall dazugelernt.
Gruss Dietmar


----------



## kuddeldaddeldu (1. September 2009)

Hi,



jdgf hat gesagt.:


> Hallo,
> vergessen kann ich nichts haben, da das Modul bei mir über Joomla installiert wurde.



vielleicht unterscheidet sich Deine Joomla-Installation von der der funtionierenden Seite. Du könntest erstmal schauen, was dieses Modul alles benötigt und ob das in Deiner Installation alles vorhanden ist.

LG


----------

