Frage zum Transfervolumen
Mischa
- php
Hallo,
ich habe eine Frage zum Transfervolumen bei PHP. Angenommen ich habe ein PHP-Script, das wie folgt aufgebaut ist:
if ($txt=="1") {
echo "Text 1 ... blablabla";
}
if ($txt=="2") {
echo "Text 2 ... blablabla";
}
.
.
.
if ($txt=="99") {
echo "Text 99 ... blablabla";
}
if ($txt=="100") {
echo "Text 100 ... blablabla";
}
Angenommen die PHP-Datei ist 10 MB groß. Wird dann auf dem Rechner des Besuchers die volle PHP-Datei (10 MB!) geladen oder wird nur der gefragte Bereich geladen, beispielsweise der Text 99 bei if $txt=="99" (45 KB)? [Dass ich beim Upload die 10 MB hochladen muss ist klar - Es geht mir um den Download]
Ich hoffe ihr versteht, was ich meine. Und danke im voraus!
Hallo,
Da PHP auf dem Server ausgeführt wird, und nur das _ergebnis_ an den Client gesendet wird, wird er auch niemals 10MB erhalten :)
Zu deinem Skript, rein Wartungstechnisch ziemlich umständlich findest du nicht ?
kleiner tipp:
anstatt die texte in das hauptfile zu schreiben schreib sie in eigene datein. zb. 1.txt, 2.txt usw.
im php file genügt dann ein simples:
if(isset($id) && $id!=""){
readfile("/path/to/file/".$id.".txt");
}
durch die angabe des pfades innerhalb von readfile bist du auch vor evil attacken wie $id="/etc/passwd" geschützt.
lg
Ludwig
Moin,
im php file genügt dann ein simples:
if(isset($id) && $id!=""){
readfile("/path/to/file/".$id.".txt");
}
durch die angabe des pfades innerhalb von readfile bist du auch vor evil attacken wie $id="/etc/passwd" geschützt.
Noe bist du nicht. Dann schreibt man halt ../../../etc/password. Der korrekte Codeschnipsel wäre
readfile("/path/to/file/".basename($id).".txt");
oder noch besser (vorrausgesetzt du beschränkst dich wirklich auf Zahlen)
readfile("/path/to/file/".((int)$id).".txt");
Dann wird auch automatisch 0.txt eingebunden wenn etwas anderes als eine Zahl an $id übergeben wurde.
--
Henryk Plötz
Grüße aus Berlin