Archiv verlassen und diese Seite im Standarddesign anzeigen : php 4.4, global, Daten lesen via file
Hallo Leute,
habe hier ein Problem mit Datenlesen.
php: 4.4.0 mit hardening patch 0.3.2
Meine Dateien und Pfade sind im Hauptprogramm definiert,
benutzt werden sie in Functions, übergeben als global:
function init()
{ global $log0;
$belegung=file($log0);
... Anmeldemaske aus $belegung generieren
}
function einloggen($sname,$gruppe,$id)
{ global $log0;
$belegung=file($log0);
...
}
.
Problem: Das Ganze funktioniert wie ein Blinker, mal tut er's, meist nicht.
Zur Zeit ist folgender Zustand:
1. Aufruf: init(): Log0 wird eingelesen
2. Aufruf: einloggen($sname,$gruppe,$id): Log0 kann nicht gelesen werden.
Versuch:
Log0 wird im Hauptprogramm eingelesen, die daraus benötigten Daten als global übergeben, das klappt, macht das Programm aber unübersichtlich, da dieses Log nur 3 von ca 30x gebraucht wird.
Das ganze Programm hat nun mal statische Parameter, die als globals am besten repräsentiert werden.
An welchen Schrauben muss ich da drehen? php-Version und Settings sind für mich tabu.
so long,
BlueJay
du solltest als erstes versuchen das fehlverhalten zu rekonstruieren. Dabei ist es ggf. hilfreich eine fehlerbehandlung mittels "if (file_exists($file))" zu bauen.
Meist stimmt der Eindruck, dass es nur sporadisch zu fehlern kommt nicht, wenn man genau hinsieht. Ich arbeite an diesen Stellen immer mit ausgaben in den funktionen, die die fehler produzieren und "kreise" dann die eigentliche Codezeile ein...
ich arbeite auch, da es bequem ist mit dem "global" zB. für Objektvariabeln für die DB-Connection etc. und konnte dabei bisher keine Probleme festestellen.
du solltest als erstes versuchen das fehlverhalten zu rekonstruieren.
Dabei ist es ggf. hilfreich eine fehlerbehandlung mittels "if (file_exists($file))" zu bauen.
Zuerst gab es Probleme mit den Rechten, das ist gegessen.
Seitdem tritt das Verhalten auf, wie ich es nach "Blinker" beschrieben habe. Das Dingens ist da und gefüllt, nur beim Aufruf in der 2.function tut der so, als wäre das File nicht da.
Ich vermute, dass bei global die Variable irgendwie "misshandelt" wird:
im Hauptprogramm läuft ja alles ok, auch, wenn ich die Sache in der Function bei file oder fopen als "Direktstring" eingebe.
Aus $logfile1 wird durch global in der function: Notice: Undefined variable: logfi1e1 in /var/www/localhost/htdocs/s
Hat der Security Patch da Mist gebaut? Ach ja, der Server ist ein Indianer auf gentoo.
Immer noch ratlos, Blue Jay
p.s. euer neuer Editor spinnt bei [Ändern] etwas und löscht die Formatierungen. Zudem stellt er den Dateinamen im Code-Block so dar, als wäre er korrekt (logfile1)., eingepasted wurde logfi1le1, eine ähnliche Sch... wie bei mir hier.
Erst mal Entwarnung: gestern wurde unser Router von Kopf bis Fuß "modernisiert", heute morgen ist der Spuk vorbei.
Nochmal lokales/hochgeladenes file verglichen: : der hat das php-file tatsächlich während des Transfers versaut!
so long, BlueJay
Romanday
16-11-2005, 15:53
Erst mal Entwarnung: gestern wurde unser Router von Kopf bis Fuß "modernisiert", heute morgen ist der Spuk vorbei.
Nochmal lokales/hochgeladenes file verglichen: : der hat das php-file tatsächlich während des Transfers versaut!
so long, BlueJay
Wie groß ist den das File + Methode zum Dateitransver?
Es gibt auch diverse Eistellungen in der .ini für den Dateitransver.
Wie groß ist den das File + Methode zum Dateitransver?
Ich selbst arbeite mit ftp, und die Files sind so bis 1 MB, die Pakete maximal 50-60 Mb groß (waren aber zumindest bei mir nicht fällig), aber man ist ja nicht alleine hinter dem Router.
An diesem Tag war der Upload katastrophal, Webmaster schweigt sich aus! Dann hörte man ihn eine Zeitlang fluchen, dann wurde der Router geflasht, gefolgt von weiterem Stöhnen (wahrscheinlich Installation), am nächsten Tag war der Spuk verschwunden.
so long, BlueJay
Zusatzinfo:Telefonie muss der Router auch noch verkraften.
Romanday
20-11-2005, 08:18
Ich selbst arbeite mit ftp, und die Files sind so bis 1 MB, die Pakete maximal 50-60 Mb groß (waren aber zumindest bei mir nicht fällig), aber man ist ja nicht alleine hinter dem Router.
An diesem Tag war der Upload katastrophal, Webmaster schweigt sich aus! Dann hörte man ihn eine Zeitlang fluchen, dann wurde der Router geflasht, gefolgt von weiterem Stöhnen (wahrscheinlich Installation), am nächsten Tag war der Spuk verschwunden.
so long, BlueJay
Zusatzinfo:Telefonie muss der Router auch noch verkraften.
War für Packete?
50-60 MB sind a bissle viel für PHP, da ist C besser geeignet.:D
Andere Möglichkeit... User XY macht einen Upload von 1 MB in deinem
Formular. Seine Intenet Verbindung + dein Server ist zu diesem Zeitpunkt
extrem langsam. Dann wird der Prozess nach 30 Sek. (Standardeinstellung)
gekillt.
(sind zur Zeit meine lokalen Eistellungen, aber kannst ja mal in deiner
.ini nachschauen)
; Maximum size of POST data that PHP will accept.
post_max_size = 8M
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 30 ; Maximum execution time of each script, in seconds
max_input_time = 30 ; Maximum amount of time each script may spend parsing request data
memory_limit = 30M ; Maximum amount of memory a script may consume (8MB)
War für Packete?
50-60 MB sind a bissle viel für PHP, da ist C besser geeignet.:D
Mißverständnis: Die via ftp o.a. herumgeschobenen Daten sind in der 60er Größenordnung. php/http schiebt die bis 1MB-Portionen herum.
Die 50-60 MB sind ein Vollbackup oder gepackte Logfiles. Die Auswertung läuft mittlerweile über C, aber auf einem anderen Rechner, daher der Transfer, der schonmal den Router ausbremst. :) .
Andere Möglichkeit... User XY macht einen Upload von 1 MB in deinem
Formular. Seine Intenet Verbindung + dein Server ist zu diesem Zeitpunkt
extrem langsam. Dann wird der Prozess nach 30 Sek. (Standardeinstellung) gekillt.
Der Bildupload gönnt sich schon etwas mehr Zeit ;)
Es war IMHO kein Problem mit irgendwelchen Einstellungen, sondern der Router hatt bei starker Belastung schlicht und ergreifend was falsch durchgeleitet, und das nicht nur bei mir, sonst hätte der Sysop nicht einen neuen Bios-Flash angesetzt.
so long,
BlueJay
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.