php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 23-07-2007, 21:29
pPanther
 Newbie
Links : Onlinestatus : pPanther ist offline
Registriert seit: Jul 2007
Beiträge: 12
pPanther ist zur Zeit noch ein unbeschriebenes Blatt
Question fatal error

Bis jetzt dachte ich, dass ich die OOP mit PHP 5 ganz gut verstanden habe.
Aber nun habe ich ein Problem, woraus ich einfach nicht schlau werde:

Bei einem neuen Eintrag ins GB, Forum usw. wird das in einer extra Tabelle (Aktuell) eingetragen. Auf den gewünschten Seiten lese ich die Tabelle aus, und der User sieht auf einmal, was es so neues gibt. Damit keine Verwirrung entsteht und die Daten in meinem "Aktuell Modul" sofort verfügbar sind und auch angezeigt werden, lade ich die Seite nach einem Eintrag mit Javascript neu.

Dieses wird über eine einfache Methode erledigt.


SUBMENUEPUNKT wird schon weit vorher definiert, und der Wert kommt aus einer Tabelle. In der Tabelle habe ich quasi meine ganze Navigation.
Die Methode queryHolen() liefert mir den aktuellen Query-String der aktuellen Seite, den ich dann weiterverarbeiten kann, z.B. in einen Link
PHP-Code:
protected function seiteNeuLaden($menuepunkt SUBMENUEPUNKT$query ''){

    echo 
'<script type="text/javascript" language="javascript">
          /*<![CDATA[*/
          location.href=\'' 
$this->queryHolen($menuepunktfalsefalse,
      
true'&') . $query '\';
          /*]]>*/
          </script>'
;

  } 
Rufe ich nun diese Methode auf erhalte ich einen fatal_error:
PHP-Code:
Fatal errorUsing $this when not in object context in /[Pfadangabe]/class.Basis.php on line 325 
Zeile 325 ist genau die Zeile wo $this->queryHolen() aufgerufen wird.
Nun habe ich versucht mich schlau zu machen, und anscheinend heißt der Fehler, dass ich versuche $this außerhalb einer Klasse aufzurufen. Allerdings befinde ich mich in der Klasse Basis und beide Methoden sind in der Klasse Basis definiert. In diesem Fall wird die Methode allerdings von einer Kindklasse aus ausgerufen.


Momentan stehe ich echt auf der Leitung was den Fehler angeht.
Kann mir bitte jemand helfen bzw. einen Tipp geben was da los ist?


Edit: in der Zeile location.href... hat er mir 2 \ unterschlagen. Aber das Problem ist ja bereits bekannt....

Geändert von pPanther (23-07-2007 um 21:33 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 23-07-2007, 21:36
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Du redest von KindKlasse? Wie ist deine Klassenstruktur aufgebaut?
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3 (permalink)  
Alt 23-07-2007, 21:41
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Die Kindfunktion ist nicht zufällig static?
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #4 (permalink)  
Alt 23-07-2007, 21:51
pPanther
 Newbie
Links : Onlinestatus : pPanther ist offline
Registriert seit: Jul 2007
Beiträge: 12
pPanther ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Generell habe ich eine Basisklasse (class.Basis.php) in der sind grundlegende Methoden verankert die man so gut wie überall brauchen kann. Von der Basisklasse werden so gut wie alle anderen Klassen abgeleitet.
z.B ne Interaktiv Klasse, die ist für das Prüfen von Benutzereingaben usw.
Dazu habe ich noch ne SQL Wrapper Klasse und noch mehrere andere Klassen für verschiedene Seiten.
class.Gaestebuch
class.Forum usw.

Die ganzen Klassen werden über die index.php bei bedarf (__autoload) geladen und instanziert. Also meine ganze Seite läuft nur über die index.php.
Natürlich werden sämtliche relevanten Daten geprueft und maskiert/demaskiert

Der Betrachter sieht sozusagen eine HP in "Modulbauweise". Jedes Modul wird eben individuell mit dem richtigen Inhalt gefuellt und danach platziert. Modul Login, Modul Aktuell usw.


Um es das ganze vielleicht besser zu verstehen: Ich habe mir vor ein paar Monaten ein Buch über professionelles HP entwickeln gekauft. Darin erläutert der Autor Schriff für Schritt den Aufbau einer HP. Die HP liegt auf einer CD bei und darf frei verwendet werden. Ich habe dieses "Projekt" genützt, um mal endlich "richtig" PHP zu lernen und endlich die OOP zu kapieren.
Und nun bin ich ordentlich am Ausbauen. Bis jetzt lief ja alles wunderbar.


Sollte jemand noch mehr Infos brauchen, bitte melden. Ich kann auch gerne die relevanten Klassen verlinken.


Hier ein Link, wo man die HP in ihrer Version 1.0 sehen kann (Autorenseite)
webflips.de
Mit Zitat antworten
  #5 (permalink)  
Alt 23-07-2007, 21:57
pPanther
 Newbie
Links : Onlinestatus : pPanther ist offline
Registriert seit: Jul 2007
Beiträge: 12
pPanther ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von tontechniker
Die Kindfunktion ist nicht zufällig static?

Doch public static.

Hier ein Auszug aus der Klasse Aktuell (Kindklasse von Basis)
PHP-Code:
public static function neuerEintrag($dbh$Titel$Kategorie SUBMENUEPUNKT){
.......
.......
// falls das Modul linksseitig liegt, wird Seite nach neuem Eintrag neu geladen, um
    // Eintrag gleich sichtbar zu machen.
    
if(Basis::modulseite(AKTUELL$dbh) == 'links'){
      
Basis::seiteNeuLaden();
    } 
Mit Zitat antworten
  #6 (permalink)  
Alt 23-07-2007, 21:59
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von pPanther
Hat das public static was zu bedeuten?
http://www.php.net/manual/de/language.oop5.static.php:
Zitat:
Auf statische Eigenschaften kann nicht durch das Objekt mittels des Pfeiloperators -> zugegriffen werden.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #7 (permalink)  
Alt 23-07-2007, 22:10
pPanther
 Newbie
Links : Onlinestatus : pPanther ist offline
Registriert seit: Jul 2007
Beiträge: 12
pPanther ist zur Zeit noch ein unbeschriebenes Blatt
Standard

MHM, wie kann sowas passieren? Ich hab echt keine Ahnung wie das static da hingekommen ist.

static rausgenommen und schon läufts.


Danke!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:21 Uhr.