/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
At gemme en .txt-fil og derefter vise den ~
Fra : Frederik Wordenskjol~


Dato : 24-05-06 14:24

Hejsa!

Jeg er igang med et stort projekt. Bl.a. skal vi have en
release-liste på vores side, som venligst er udlånt af Gamebits.
Den skal altså i princippet copy/pastes...

Da vi er mange skribenter, kan alle ikke logge ind på phpMyAdmin
og tilføje koden (det er også for besværligt), så derfor har jeg
lavet en side hvor koden blot skal sættes ind, og derefter gemmes
i databasen.

Hvis jeg benytter mig af et <text-field> får jeg en fejlmeddelse
der lyder nogenlunde således: "Request URI TOO LONG"...

Fair nok. jeg laver et <input type="file">. Derefter gemmes filen
ganske rigtigt i en "BLOB".

Problemet er når jeg skal hente filen igen... Det eneste der
kommer frem er navnet på den tekst-fil jeg har uploadet. Det er
et område af PHP jeg aldrig rigtigt har været inde på før, så
håber der er nogen der kan hjælpe.

Upload sker her (ingen misbrug tak ;) ):
http://www.xgamez.frac.dk/releaseliste_update.php

Releaselisten skulle gerne kommer frem her:
http://www.xgamez.frac.dk/releaseliste.php

Ingen kommentar til webhotel! Det bliver blot brugt til test af
PHP funktioner... :)
Sig endelig til hvis i skal bruge flere informationer... Måske
kildekoden?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Martin (24-05-2006)
Kommentar
Fra : Martin


Dato : 24-05-06 18:40

Frederik Wordenskjold wrote:
> Hejsa!

Hej

> Da vi er mange skribenter, kan alle ikke logge ind på phpMyAdmin
> og tilføje koden (det er også for besværligt), så derfor har jeg
> lavet en side hvor koden blot skal sættes ind, og derefter gemmes
> i databasen.

Så laver man da et administrationsmodul, hvor man kan
tilføje/slette/ændre forskellige releases :)

>
> Hvis jeg benytter mig af et <text-field> får jeg en fejlmeddelse
> der lyder nogenlunde således: "Request URI TOO LONG"...

I <form>, der bør du nok bruge <form method="post"> istedet for ingen
method.

method="get" (som er default, hvis den ikke er sat) er begrænset til et
lavt antal (kan ikke huske det nøjagtige)
men method="post" har op til 8mb på de fleste servere, og 8mb ren tekst
er PÆNT meget :)

>
> Fair nok. jeg laver et <input type="file">. Derefter gemmes filen
> ganske rigtigt i en "BLOB".
>
> Problemet er når jeg skal hente filen igen... Det eneste der
> kommer frem er navnet på den tekst-fil jeg har uploadet. Det er
> et område af PHP jeg aldrig rigtigt har været inde på før, så
> håber der er nogen der kan hjælpe.

Du kan prøve at lege med
file_get_contents($file);
fx. bare skrive echo file_get_contents($file);

Men hvorfor ikke ligge det hele i en database?

Bent Stigsen (24-05-2006)
Kommentar
Fra : Bent Stigsen


Dato : 24-05-06 21:03

Martin wrote:
> Frederik Wordenskjold wrote:
>
[snip]
>> Hvis jeg benytter mig af et <text-field> får jeg en fejlmeddelse
>> der lyder nogenlunde således: "Request URI TOO LONG"...
>
>
> I <form>, der bør du nok bruge <form method="post"> istedet for ingen
> method.
>
> method="get" (som er default, hvis den ikke er sat) er begrænset til et
> lavt antal (kan ikke huske det nøjagtige)

Det er sådan lidt alt efter hvad man kører. Har ikke lige adgang til
en IIS, men mener at kunne huske det var ret lavt (under 2048, hvis
jeg husker rigtigt).
Med Apache er det vist alt efter hvem der har kompileret skidtet. Jeg
har Apache 1.3.33 og 2.0.54 kørende på en WinXP, hvor grænsen i begge
tilfælde lader til at være 8177 bytes. Min Fedora 4 med Apache 2.0.54
fejler ved 4075 bytes.

Det er vist frit valg...
[quote - RFC2616]
The HTTP protocol does not place any a priori limit on the length of a
URI.
[...]
Note: Servers ought to be cautious about depending on URI lengths
above 255 bytes, because some older client or proxy
implementations might not properly support these lengths
[end quote]


/Bent

[snip]

Benny Nissen (24-05-2006)
Kommentar
Fra : Benny Nissen


Dato : 24-05-06 21:04

Bent Stigsen ramte sit keyboard den 24-05-2006 22:02 og fik dette ud af det:
> [snip] Min Fedora 4 med Apache 2.0.54
> fejler ved 4075 bytes.

Kører Fedora ikke 2.2.x i nyeste version ?

--
Benny Nissen
www.bennynissen.dk

Bent Stigsen (24-05-2006)
Kommentar
Fra : Bent Stigsen


Dato : 24-05-06 21:19

Benny Nissen wrote:
> Bent Stigsen ramte sit keyboard den 24-05-2006 22:02 og fik dette ud af
> det:
>
>> [snip] Min Fedora 4 med Apache 2.0.54
>> fejler ved 4075 bytes.
>
>
> Kører Fedora ikke 2.2.x i nyeste version ?
>

Jo, Fedora 5 kommer med en Apache 2.2.0. Jeg har ikke prøvet den
endnu, så jeg kan ikke sige om det er ændret med hensyn til maskimal
længde på en URI.

/Bent

Benny Nissen (24-05-2006)
Kommentar
Fra : Benny Nissen


Dato : 24-05-06 21:39

Bent Stigsen ramte sit keyboard den 24-05-2006 22:19 og fik dette ud af det:

> Jo, Fedora 5 kommer med en Apache 2.2.0. Jeg har ikke prøvet den endnu,
> så jeg kan ikke sige om det er ændret med hensyn til maskimal længde på
> en URI.

Det tør jeg så heller ikke lige nu, men kan teste det på min server i
morgen.
Den kører Fedora Core 5 på en Dual Pentium II 400 Mhz med 1 Gb Ram og en
håndfuld SCSI diske i Raid. Kører faktisk forbløffende godt


--
Benny Nissen
www.bennynissen.dk

Bent Stigsen (24-05-2006)
Kommentar
Fra : Bent Stigsen


Dato : 24-05-06 23:41

Bent Stigsen wrote:
> Martin wrote:
>> Frederik Wordenskjold wrote:
>>
> [snip]
>>> Hvis jeg benytter mig af et <text-field> får jeg en fejlmeddelse
>>> der lyder nogenlunde således: "Request URI TOO LONG"...
>>
>>
>> I <form>, der bør du nok bruge <form method="post"> istedet for ingen
>> method.
>>
>> method="get" (som er default, hvis den ikke er sat) er begrænset til
>> et lavt antal (kan ikke huske det nøjagtige)
>
> Det er sådan lidt alt efter hvad man kører. Har ikke lige adgang til en
> IIS, men mener at kunne huske det var ret lavt (under 2048, hvis jeg
> husker rigtigt).
> Med Apache er det vist alt efter hvem der har kompileret skidtet. Jeg
> har Apache 1.3.33 og 2.0.54 kørende på en WinXP, hvor grænsen i begge
> tilfælde lader til at være 8177 bytes. Min Fedora 4 med Apache 2.0.54
> fejler ved 4075 bytes.

Hov, havde helt glemt jeg havde en proxy imellem. Det var Squid, der
brokkede sig ved de 4075 bytes. Apache 2.0.54 på Fedora 4 fejler ved
8177 bytes som de andre versioner.

/Bent

Martin (24-05-2006)
Kommentar
Fra : Martin


Dato : 24-05-06 23:51

Bent Stigsen wrote:
> Det er sådan lidt alt efter hvad man kører. Har ikke lige adgang til en
> IIS, men mener at kunne huske det var ret lavt (under 2048, hvis jeg
> husker rigtigt).
> Med Apache er det vist alt efter hvem der har kompileret skidtet. Jeg
> har Apache 1.3.33 og 2.0.54 kørende på en WinXP, hvor grænsen i begge
> tilfælde lader til at være 8177 bytes. Min Fedora 4 med Apache 2.0.54
> fejler ved 4075 bytes.

Ja, men stadigvæk er post langt større

8mb = 8388608 bytes :)

Og vi kender jo ikke den uploadede fils størrelse, men hvis den er over
8mb, så står der dæleme meget i den.

Bent Stigsen (25-05-2006)
Kommentar
Fra : Bent Stigsen


Dato : 25-05-06 18:57

Martin wrote:
> Bent Stigsen wrote:
>> Det er sådan lidt alt efter hvad man kører. Har ikke lige adgang til
>> en IIS, men mener at kunne huske det var ret lavt (under 2048, hvis
>> jeg husker rigtigt).
>> Med Apache er det vist alt efter hvem der har kompileret skidtet. Jeg
>> har Apache 1.3.33 og 2.0.54 kørende på en WinXP, hvor grænsen i begge
>> tilfælde lader til at være 8177 bytes. Min Fedora 4 med Apache 2.0.54
>> fejler ved 4075 bytes.
>
> Ja, men stadigvæk er post langt større
>
> 8mb = 8388608 bytes :)
>
> Og vi kender jo ikke den uploadede fils størrelse, men hvis den er over
> 8mb, så står der dæleme meget i den.

Mjaa. Jeg kommenterede nu bare på begrænsningen af længden på en URL,
ikke om hvorvidt GET i en form var godt nok til formålet, hvilket det
nok mest per definition ikke er, men om folk følger det, er jeg ikke
så krakilsk med. Det er mest nøjagtige størrelser, definitioner eller
enheder, jeg kan være lidt pedantisk med, men ikke altid.

/Bent

Frederik Wordenskjol~ (26-05-2006)
Kommentar
Fra : Frederik Wordenskjol~


Dato : 26-05-06 17:49

Undskyld den lidt sene response på jeres svar, men har haft lidt travlt med
diverse studenter-eksaminer! :D

Martin > Det hele ligger skam i en database og jeg bruger method="post" i
min <form>
Filen fylder ikke mere en 10 KB, så det burde ikke være der problemet
ligger. Tror løsningen er den kode du nævner til sidst og den vil jeg da
forsøge mig med.

Tak for hjælpen, jeg vender tilbage når jeg noget nyt...

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Frederik Wordenskjol~ (28-05-2006)
Kommentar
Fra : Frederik Wordenskjol~


Dato : 28-05-06 18:48

$DB= mysql_query('SELECT * FROM diverse' ,$connect);

while ($release = mysql_fetch_row($DB))
{
$upload = $release[1];
echo file_get_contents($upload);
}

Når denne kode køres, får jeg en fejlmeddelse om at den pågældende fil ikke
findes på serveren. Men den skal jo bare vise indholdet af filen? Jeg forstår
det ikke... Hvad gør jeg forkert?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Peter Brodersen (29-05-2006)
Kommentar
Fra : Peter Brodersen


Dato : 29-05-06 23:08

On 28 May 2006 17:48:06 GMT, Frederik Wordenskjold
<frederik@wordenskjold.FJERN.dk> wrote:

>Når denne kode køres, får jeg en fejlmeddelse om at den pågældende fil ikke
>findes på serveren. Men den skal jo bare vise indholdet af filen? Jeg forstår
>det ikke... Hvad gør jeg forkert?

Skaf nogle fiere informationer. Fx:

print $upload;

Så kan du se, hvad den reelle værdi/sti er, og ikke blot hvad du
formoder er den reelle værdi af $upload.

--
- Peter Brodersen
Ugens værktøj - Find vej: www.findvej.dk

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste