PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] Größe einer Variable



perpetuum.mobile
19.08.2004, 22:28
Hi,
also ich habe folgendes Problemchen. Ich habe eine Variable in der eine Datei abgespeichert ist. Jetzt würde ich gerne wissen wie ich die Größe der Variable rausbekomme. Also z.B. 5KB oder so. So brauch ich die Datei nicht speichern und dann erst mit filesize() nachschauen. Das soll im Prinzip so etwas wie ein Uploadlimit werden.

ShOOtist.

i_hasser
31.08.2004, 06:04
Was für eine Variable ist es denn? Für Strings gibts entsprechende Funktionen und für Arrays auch.

perpetuum.mobile
31.08.2004, 07:01
Naja, ne stinknormale Variable die per POST nen Liedtext bekommt, mehr auch nicht, also String. Ich hab mir da jetzt auch schon sowas gedacht wie Zeichen zählen und dann umrechnen auf die Größe, könnte das auch gehen?

i_hasser
31.08.2004, 09:34
Google am besten mal, bei php.net dürftest du da sicher was finden.

perpetuum.mobile
31.08.2004, 16:50
Gut danke. Jetzt kann ich wenigstens sicher sein dass ich da was finde... ( wenn es da wirklich Funktionen für gibt)

i_hasser
31.08.2004, 17:40
Hier (nach 3 Minuten :]): http://de3.php.net/manual/en/function.strlen.php

perpetuum.mobile
31.08.2004, 21:43
Original geschrieben von intel_hasser
Hier (nach 3 Minuten :]): http://de3.php.net/manual/en/function.strlen.php

Na, wie ich die Länge rausbekomme weiß ich ja auch, steht ja auch schön lesbar in selfphp. Ich will die Speichergröße, oder wieviel es als Datei auf der Platte belegen wird. (-> Uploadlimit)

GevatterBaer
31.08.2004, 23:26
1 Textzeichen ~ 1Byte

Aber wenn ich dich richtig verstehe, willst du, dass deine BEsucher Songtexte per Textfeld übertragen und du willst diese dann abspeichern. Aber wieso in Textdateien? Die Verwaltung mit einer (MySQL) Datenbank ist da wesentlich angenehmer.

perpetuum.mobile
01.09.2004, 07:16
Original geschrieben von GevatterBaer
1 Textzeichen ~ 1Byte

Aber wenn ich dich richtig verstehe, willst du, dass deine BEsucher Songtexte per Textfeld übertragen und du willst diese dann abspeichern. Aber wieso in Textdateien? Die Verwaltung mit einer (MySQL) Datenbank ist da wesentlich angenehmer.

Naja, es ist ne Anbindung über iLyrics Pro, ein Programm mit dem man die Liedtexte mit dem Lied synchronisieren kann. Und es sind Textdateien, weil ich bis vor einem 1 Jahr noch auf einem non-mysql Server zu Hause war. Da musste ich alles auf flatfile einstellen. Aber da ich jetzt in den "Genuss" von Mysql gekommen bin, könnte ich zwar umstellen, aber es braucht ziemlich viel Zeit alles neuzuschreiben. SOOOO viel Arbeit ist es mit Textdateien nun auch nicht.

Aber danke dir für die Hilfe mit "1 Textzeichen ~ 1Byte". Da kann ich jetzt wenigsten ne kleine Sicherung einbauen. (Die Software unterbindet zwar auch sehr große Uploads, aber wenn jemand einfach per HTML-Skript meine php Seite anspricht, kann er ja ohne Probleme bis zu 8 mb pro Datei ablegen...)

Procyon
01.09.2004, 12:49
Tach erstmal

es gibt in der php.ini eine Direktive die ein Upload-Limit setzt, das sind per default 2 MB, glaub ich.

perpetuum.mobile
01.09.2004, 17:26
Original geschrieben von Procyon
Tach erstmal

es gibt in der php.ini eine Direktive die ein Upload-Limit setzt, das sind per default 2 MB, glaub ich.

Ich hab gelesen bei der POST Methode sinds 8 mb... ist ja auch egal. Selbst bei 2 mb kann man den Server sehr schnell zumüllen. Und an die ini komm ich sowieso net ran. Ist irgendein Hostingangebot ausm Internet von nem Kumpel.

GevatterBaer
01.09.2004, 17:30
Frag es doch einfach per JS ab, beim Klick auf den Absenden Button. Fast jeder hat JAVA an und dann ist es schon mal eine kleine Absicherung.

Procyon
02.09.2004, 01:19
Tach erstmal


Original geschrieben von GevatterBaer
Frag es doch einfach per JS ab, beim Klick auf den Absenden Button. Fast jeder hat JAVA an und dann ist es schon mal eine kleine Absicherung.

eine unsichere Absicherung ;)

Denn man kann auch ohne Probleme Daten an ein PHP-Script schicken ohne vorher auf dem dafür vorgesehenen Formular gewesen zu sein ;) Man muss nur wissen wohin und wie die Daten geschickt werden.

========

Die php.ini-Direktive heißt upload_max_filesize (http://de3.php.net/manual/de/ini.sect.file_uploads.php) und kann nur durch die php.ini, die httpd.conf oder durch eine .htaccess-datei gesetzt werden.

Also machst du folgendes (hier gefunden: http://de3.php.net/configuration.changes)

du erstellst dir eine .htaccess-datei mit folgendem inhalt:

php_value upload_max_filesize 1M
und testest das ganze mit folgendem php-script:

<?php
header('Content-Type: text/plain');
echo(ini_get('upload_max_filesize'));
?>

oder du must statt 1M die maximale größe in bytes angeben.
und probier auch mal die direktive post-max-size (http://de3.php.net/manual/de/ini.sect.data-handling.php#ini.post-max-size)

perpetuum.mobile
02.09.2004, 07:05
Original geschrieben von Procyon
Tach erstmal



eine unsichere Absicherung ;)

Denn man kann auch ohne Probleme Daten an ein PHP-Script schicken ohne vorher auf dem dafür vorgesehenen Formular gewesen zu sein ;) Man muss nur wissen wohin und wie die Daten geschickt werden.

========

Die php.ini-Direktive heißt upload_max_filesize (http://de3.php.net/manual/de/ini.sect.file_uploads.php) und kann nur durch die php.ini, die httpd.conf oder durch eine .htaccess-datei gesetzt werden.

Also machst du folgendes (hier gefunden: http://de3.php.net/configuration.changes)

du erstellst dir eine .htaccess-datei mit folgendem inhalt:

php_value upload_max_filesize 1M
und testest das ganze mit folgendem php-script:

<?php
header('Content-Type: text/plain');
echo(ini_get('upload_max_filesize'));
?>

oder du must statt 1M die maximale größe in bytes angeben.
und probier auch mal die direktive post-max-size (http://de3.php.net/manual/de/ini.sect.data-handling.php#ini.post-max-size)

Mensch danke! Das ist genau was ist brauche!

PS: Ne JS Absicherung wäre ziemlich blöd, denn die Daten werden vom User eines Wndowsprogramms (iLyrics Pro, klickt aufs Banner in meiner Sig um es mal zu sehen) abgeschickt werden. Da passt JS nicht dazwischen.

Procyon
02.09.2004, 10:35
Tach erstmal


Original geschrieben von Shootist
Mensch danke! Das ist genau was ist brauche!

Keine Ursache

(Spam)