[PHP] Größe einer Variable

perpetuum.mobile

Grand Admiral Special
Mitglied seit
06.02.2003
Beiträge
2.849
Renomée
21
Standort
Hinter dir!
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.
 
Was für eine Variable ist es denn? Für Strings gibts entsprechende Funktionen und für Arrays auch.
 
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?
 
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.
 
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...)
 
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.
 
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.
 
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:
Code:
php_value upload_max_filesize 1M
und testest das ganze mit folgendem php-script:
PHP:
<?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)
 
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:
Code:
php_value upload_max_filesize 1M
und testest das ganze mit folgendem php-script:
PHP:
<?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.
 
Zurück
Oben Unten