php.de

Zurück   php.de > Webentwicklung > Server, Hosting und Workstations

Server, Hosting und Workstations Server-Konfigurationsdateien (.htaccess/httpd.conf) und Arbeiten auf Serverebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.03.2011, 18:12  
Erfahrener Benutzer
 
Registriert seit: 09.02.2005
Beiträge: 256
Matthiasnet
Standard Atributte in php-Klasse nach gewisser Zeit nicht abrufbar

Hallo,

ich beschäftige mich seit einer Weile mit einem - für mich kuriosen - Fehler.
Ich habe einen Server mit Ubuntu, auf dem ich Apache2,php5,mysql,phpmyadmin installiert habe. (war erst meine zweite Serverinstallation!)
Die ersten Wochen lief der Server problemlos.
Dann vor ca 2 Wochen trat der Fehler auf ein mal auf, Attribute einer Klasse können nicht mehr ausgelesen werden.
Hier ein Beispielscript mit den Ausgaben als Kommentar daneben
PHP-Code:
class Mysql 
{
    public 
$test "hello";
    public 
$db;
    
    public function 
__construct($host$username$db_pw$db_name) {
        
$this->db mysql_connect ($host$username$db_pw);
        
mysql_select_db($db_name$this->db);
                
        
var_dump($this->db); //null
        
$db mysql_connect ($host$username$db_pw);
        
var_dump($db); //mysql reccource
        
var_dump($this->test); //null
       
}
//...

Sobald ich den Apache neu starte klappt es wieder.
Nach einigen Tagen nur noch "manchmal".
1 Woche später dann gar nicht mehr.

Aufgefallen ist es mir, dass phpMyAdmin auch nicht mehr funktionierte (und meine MySql-Klasse)

Hat jemand eine Idee woran es liegen könnte??

Grüße
Matthiasnet ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.03.2011, 18:35  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Setz dein error_reporting mal auf E_ALL | E_STRICT und versuch allgemeine Bezeichner wie "Mysql" zu vermeiden. Benutz lieber deinen eigenen Namespace entweder mit PHP 5.3.-Namespaces oder mit einem Klassenprefix: "MNet_Mysql".

In deinem Code hier sehe ich erstmal keinen Fehler - bis auf die doppelte Ausführung von mysql_connect), aber zufälliges Verhalten gibt es nicht bei PHP, zumindest ist es sehr sehr unwahrscheinlich. Wahrscheinlicher ist, dass du mit der Zeit einen Zustand erreichst (Festplatte voll, Datenbankfelder die in deinem PHP-Code einen Fehler provozieren, ..) der dann irgendwann - scheinbar zufällig - zu einem Fehler führt.
__________________
"Nuschel ich?" - "Was?"
Chriz ist gerade online   Mit Zitat antworten
Alt 10.03.2011, 18:47  
Erfahrener Benutzer
 
Registriert seit: 09.02.2005
Beiträge: 256
Matthiasnet
Standard

Ich kriege nun "Notice: Trying to get property of non-object in /var/www/forentool/includes/mysql.class.php on line 33"
Ist dann immer die Zeile, die $this->... enthält.

Die doppelte Ausführung von mysql ist nur zu testzwecken drin, um festzustellen, dass es tatsähclich an den Atributten liegt.

Momentan kriege ich den Fehler 5 min und dann wieder nicht.
Der Fehler muss iwo auf Seiten des Servers liegen.
Die Frage ist, welchen Zustand muss ich erreichen, um diesen Fehler zu kriegen?
HDD+Ram habe ich schon geprüft, beide sind zu über 70% frei.
Matthiasnet ist offline   Mit Zitat antworten
Alt 10.03.2011, 19:36  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Zeig mal den Quellcode bis einschließlich die gesamte Methode, die auf Zeile 33 fällt.
__________________
"Nuschel ich?" - "Was?"
Chriz ist gerade online   Mit Zitat antworten
Alt 10.03.2011, 20:00  
Erfahrener Benutzer
 
Registriert seit: 09.02.2005
Beiträge: 256
Matthiasnet
Standard

Kein Problem: http://87.106.177.181/test.php
In den ersten 2 Zeilen wird das Script ausgeführt, alle 5 min erscheint es wieder korrekt.
Gefolgt vom Quellcode und anschließend die möglichen Ausgaben.

Edit: bzw sobald ich apache neu starte läufts die ersten Tage wieder korrekt

Geändert von Matthiasnet (10.03.2011 um 20:06 Uhr).
Matthiasnet ist offline   Mit Zitat antworten
Alt 10.03.2011, 20:46  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Korrigier doch erstmal die Fehler.
__________________
"Nuschel ich?" - "Was?"
Chriz ist gerade online   Mit Zitat antworten
Alt 10.03.2011, 20:54  
Erfahrener Benutzer
 
Registriert seit: 09.02.2005
Beiträge: 256
Matthiasnet
Standard

Der Quellcode ist doch so völlig korrekt.

Die Fehler erscheinen ja genau dann, wenn der Server mir unbegreifliche Zustände erreicht und php nicht mehr korrekt funktioniert.
Matthiasnet ist offline   Mit Zitat antworten
Alt 10.03.2011, 21:22  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Du hast Seiteneffekte willst aber nicht die offensichtlichen Fehler korrigieren, oder verstehe ich dich gerade falsch?

Garbage in garbage out. Gilt nicht nur für Funktionen.

Edit: Achso, das ist nicht die echte test.php? Ja dann hat das Objekt eben diese Properties nicht mehr.
__________________
"Nuschel ich?" - "Was?"
Chriz ist gerade online   Mit Zitat antworten
Alt 10.03.2011, 21:42  
Erfahrener Benutzer
 
Registriert seit: 09.02.2005
Beiträge: 256
Matthiasnet
Standard

sry komm gerade nicht mit.
Ich rede von dem Script auf der Seite: http://87.106.177.181/test.php (neues Beispiel, unabhängig vom ersten Post, aber mit dem gleichen Fehler)

Der Quellcode noch mal hier:
PHP-Code:
class test
{
    public 
$var1 "hello";
    public 
$var2;
    
    public function 
hello() {
        
var_dump($this->var1);
        echo 
"< br>";
        
$this->var2 "world";
        
var_dump($this->var2);
    }    

Was sollte ich deiner Meinung nach ändern, damit ich "hello" und "world" ausgegeben bekomme?

Edit:
Zitat:
Zitat von Chriz Beitrag anzeigen
Ja dann hat das Objekt eben diese Properties nicht mehr.
Und warum nicht? Dürfte doch eigentlich nicht sein.
Matthiasnet ist offline   Mit Zitat antworten
Alt 10.03.2011, 22:18  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

OK hab nicht richtig draufgeschaut. Also dein Fehlerbeispiel kann so eigentlich nie auftreten. Ich glaube du kannst nicht einmal absichtlich $this ueberschreiben.

Ist das dein vollstaendiger Code?
__________________
"Nuschel ich?" - "Was?"
Chriz ist gerade online   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Nach gewisser Zeit -> Hinweisfenster erscheinen; Wie nicht im Quelltext auslesbar? Ditb JavaScript, Ajax und mehr 1 30.12.2010 22:16
3,91: UTC – So viel Zeit muss sein Nikolaus 2.0 Adventskalender 2010 5 15.12.2010 14:08
[Erledigt] Klasse aus einer anderen Klasse aufrufen Tobby PHP-Fortgeschrittene 7 14.07.2010 20:05
Vergangene Zeit anzeigen zwantE PHP Tipps 2010 8 01.07.2010 17:11
[Erledigt] Log-Datei nach gewisser Zeit leeren kalli.c0re PHP Tipps 2009 2 25.05.2009 17:33
[Erledigt] Eine klasse einbinden newWorldOrder PHP Tipps 2009 2 23.02.2009 19:32
Methode einer anderen Klasse aufrufen Luka PHP-Fortgeschrittene 15 09.11.2008 14:19
Klasse aus externer Klasse aufrufen kostja PHP Tipps 2008 8 07.08.2008 14:13
Variable aus Klasse herausbekommen GSJLink PHP Tipps 2008 7 16.02.2008 22:25
einträge automatisch nach gewisser zeit löschen nieselfriem Datenbanken 6 31.12.2007 13:33
String-Parser Klasse - was muss rein? Matze PHP Tipps 2007 2 08.04.2007 22:14
Timer um Seite nach gewisser Zeit neu zu laden havok HTML, Usability und Barrierefreiheit 3 29.04.2006 19:00
mehr als eine Klasse einbinden Alpha Centauri PHP-Fortgeschrittene 4 13.04.2006 20:56
Instanz einer Klasse in einer anderen Klasse verwenden Buhmann PHP-Fortgeschrittene 7 28.10.2005 23:12
Klasse ändern UniQ PHP Tipps 2004 5 24.08.2004 14:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php klasse aus klasse, php nach gewisser zeit

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:01 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum