Bedeutung: define('IN_PHPBB', true);

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Bedeutung: define('IN_PHPBB', true);

Beitrag von Dungeonwatcher »

Moin! :cool:

Was bedeutet/bewirkt eigentlich diese Zeile in den PHP Dateien:

Code: Alles auswählen

define('IN_PHPBB', true);
Ich habe einen User der es schafft mir beim posten neuer Nachrichten bei genau dieser Zeile in der posting.php diese Fehlermeldung zu fabrizieren:
PHP Fatal error: Maximum execution time of 120 seconds exceeded in ...\Forum\posting.php on line 23
Bye
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Die Fehlermeldung kann nicht auf diese Zeile basieren, denn eine Konstante zu definieren ist mit einer Webumgebung kaum messbar schnell durchgeführt.
Die Zeile hilft dazu auch auf sehr einfachem Wege das gesamte Forum sehr weit abzusichern, erhöht also die Sicherheit ungemein, sofern der hiermit aufgebaute Schutz an keiner Stelle unterbrochen wird.

Um nun den Fehler bei Deinem User zu prüfen, müsste ich nun schon genau wissen, was er genau gemacht hat. Die Zeile 23 mit dieser Konstantendefinition ist jedenfalls nicht die wirkliche Ursache für das Timeout!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Hi! :cool:

Soetwas dachte ich mir schon. thnx.

Was den User betrifft, er versuchte eine Datei hochzuladen (Attachment Mod). Diese war knapp 70MB groß und lt. Einstellung auch in dieser Größe erlaubt (max. 150MB lt. PHP und Mod). Ich habe dies lokal getestet, da klappt es problemlos. Woran verschluckt sich Forum? Am zu langen UL vom User? Das kann ich mir nicht recht vorstellen, denn ein UL von diesem User mit knapp 60MB dauerte ca. 25min und klappte auch.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Bedenke, daß das Hochladen einer Datei ins Internet, gerade einer solch grossen Datei, eine Menge Zeit in Anspruch nimmt.
Neben der Post- und Upload-Grösse, die in PHP eingestellt sind, muss man auch das Timeout für die Ausführungszeit von Scripten berücksichtigen.
120 Sekunden reichen da auch sicher nicht aus, um 70 MB hochzuladen.
Dafür wäre selbst DSL 16000 schon nur sehr knapp ausreichend...
Lokal ist das dagegen klar kein Thema, da die Datei ja nur von A nach B kopiert wird ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Verständnisfrage:

Gehe ich jetzt recht in der Annahme, das beim hochladen einer Datei in einer Nachricht, die gesamte Zeit des ULs entscheidend ist und solange das PHP Script aktiv ist? Warum klappte dann ein UL mit einer Zeit von ca. 25min problemlos? ^6
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Warum klappte dann ein UL mit einer Zeit von ca. 25min problemlos?
Zufall?
PHP läuft in der Regel nach 30 Sekunden (bei Dir nach 120 Sek.) bei einem Script-gesteuerten Upload in ein Timeout.
Wenn aus irgend einem Grund PHP so eingerichtet wurde (geht irgendwie, habe ich zumindest mal wo gelesen), daß der Upload nicht zur Script-Ausführungszeit hinzuzählt, dann bliebe die eben aussen vor.
Nur ist das nicht die Regel und wenn ein grösseres Script nach 25 Minuten durchläuft: Glückwunsch! Normal ist das jedenfalls nicht.
Es kommt ja nach dem Upload ja auch noch darauf an, was weiter gemacht wird. Also ob z. B. Prüfungen auf die Datei laufen, ob diese kopiert oder verschoben wird, oder anderweitig ein Prozess die aktuelle Datei unterbricht.
Dazu kann auch der Platz für temporäre Dateien kommen, der PHP zugestanden wird (also auf der Festplatte des Servers). Auch der kann limitiert werden und ebenfalls durch andere Scripte verwendet werden!
1-5000 Möglichkeiten eben, kannst Dir da eine aussuchen ;)

In der Regel gilt aber: Upload-Zeit = Timeout durch PHP nach X Sekunden und Upload-Grösse setzt ebenfalls eine Grenze.
Ist ein Upload grösser oder dauert länger, gibts es eben in der Regel Fehler meist in Form von Fehlermeldungen (PHP-seitig) oder blanken Websites (Webserver/PHP).
Bei grossen Dateien sollte man daher auf einen FTP-Upload setzen. Der Attachment MOD kann das bereits, für den Download MOD will ich das noch basteln...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Hi! :cool:

Ich teste gerade das UL per FTP. Das ist allerdings etwas langwierig bei groooßen Datein. Aktuell läuft der Test UL einer ca. 80MB großen Datei mit 10KB/s. Beide Werte sind bewusst gewählt bzw. eingestellt worden. Ab ca. 75MB gab es per HTTP den Time Out und die 10KB/s habe ich gewählt um einen laaangsamen lokalen UL zu bekommen.

Hierbei fällt mir eine Unschönheit des Attachment Mods auf. Solange der UL läuft wird dies zwar im Browser angezeigt aber die Seite selber ist logischerweise nicht bedienbar. Das ist für den User jedoch nicht sofort nachvollziehbar.
Gibt es einen Mod/ein Script der in dieser Zeit einen Fortschritssbalken über die Seite legt und die Seite damit optisch als nicht benutzbar anzeigt.

Außerdem besteht die Gefahr das er dadurch in den Bereich des Session Ablauf gerät und nach dem erfolgten UL ausgeloggt ist. Letzteres lässt sich aber durch die Erhöhung der Session Zeit lösen.

Nachtrag:

Beim UL von Bilder werden nun keine Thumbnails mehr erstellt. Dafür gibt's diese PHP Fehlermeldungen:
PHP Warning: imagejpeg(): Unable to access /tmp/t00000 in ...\attach_mod\includes\functions_thumbs.php on line 215

PHP Warning: imagejpeg(): Invalid filename in ...\attach_mod\includes\functions_thumbs.php on line 215

PHP Warning: imagejpeg(): Unable to access /tmp/t00000 in ...\attach_mod\includes\functions_thumbs.php on line 215

PHP Warning: imagejpeg(): Invalid filename in ...\attach_mod\includes\functions_thumbs.php on line 215
Das betrifft die Zeile 40 in diesem Block:

Code: Alles auswählen

	if (!$used_imagick) 
	{
		$type = get_supported_image_types($type);
		
		if ($type['gd'])
		{
			switch ($type['format']) 
			{
				case IMG_GIF:
					$image = imagecreatefromgif($source);
					break;
				case IMG_JPG:
					$image = imagecreatefromjpeg($source);
					break;
				case IMG_PNG:
					$image = imagecreatefrompng($source);
					break;
				case IMG_WBMP:
					$image = imagecreatefromwbmp($source);
					break;
			}

			if ($type['version'] == 1 || !$attach_config['use_gd2'])
			{
				$new_image = imagecreate($new_width, $new_height);
				imagecopyresized($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
			}
			else
			{
				$new_image = imagecreatetruecolor($new_width, $new_height);
				imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
			}
			
			switch ($type['format'])
			{
				case IMG_GIF:
					imagegif($new_image, $new_file);
					break;
				case IMG_JPG:
					imagejpeg($new_image, $new_file, 90);
					break;
				case IMG_PNG:
					imagepng($new_image, $new_file);
					break;
				case IMG_WBMP:
					imagewbmp($new_image, $new_file);
					break;
			}

			imagedestroy($new_image);
		}
	}
Außerdem rödelt die Seite mit dem UL der o.g. 80MB Datei seit 'ner 1/4 Stunde vor sich hin, obwohl der UL längst fertig ist. Was passiert da?

Bye
Zuletzt geändert von Dungeonwatcher am Mi 08.Okt, 2008 17:37, insgesamt 2-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Was passiert da?
Keine Ahnung.
Frag mal Deinen Server...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten