form - file - sumple question [message #176443] |
Sat, 07 January 2012 14:06 |
Leo Decap
Messages: 2 Registered: January 2012
Karma: 0
|
Junior Member |
|
|
Hi,
I have a form which users can fill in.
If the user hasn't filled in a required field, the form reloads after
the Submit with all the data the user has entered filled in (and the
opportunity to fill in the missing data).
I get the data through $_POST and echo the allready filled in data on
the form. Easy.
I have 1 field - type File - where the user can choose a photo to upload.
On reload of the form, I would love to see the entered data (path?)
reappear, but I can't figure out how to do this..........
Any help here would be appreciated.
Leo
|
|
|
Re: form - file - sumple question [message #176444 is a reply to message #176443] |
Sat, 07 January 2012 14:09 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 1/7/2012 9:06 AM, Leo Decap wrote:
> Hi,
>
> I have a form which users can fill in.
> If the user hasn't filled in a required field, the form reloads after
> the Submit with all the data the user has entered filled in (and the
> opportunity to fill in the missing data).
> I get the data through $_POST and echo the allready filled in data on
> the form. Easy.
>
> I have 1 field - type File - where the user can choose a photo to upload.
> On reload of the form, I would love to see the entered data (path?)
> reappear, but I can't figure out how to do this..........
>
> Any help here would be appreciated.
>
> Leo
You can't do it. For security reasons, HTTP will now allow FILE fields
to be filled in.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|
Re: form - file - sumple question [message #176445 is a reply to message #176443] |
Sat, 07 January 2012 14:39 |
Thomas 'PointedEars'
Messages: 701 Registered: October 2010
Karma: 0
|
Senior Member |
|
|
Leo Decap wrote:
> I have 1 field - type File - where the user can choose a photo to upload.
> On reload of the form, I would love to see the entered data (path?)
> reappear, but I can't figure out how to do this..........
type="file" inputs are user-write only.
PointedEars
--
Anyone who slaps a 'this page is best viewed with Browser X' label on
a Web page appears to be yearning for the bad old days, before the Web,
when you had very little chance of reading a document written on another
computer, another word processor, or another network. -- Tim Berners-Lee
|
|
|
Re: form - file - sumple question [message #176446 is a reply to message #176444] |
Sat, 07 January 2012 14:40 |
Thomas 'PointedEars'
Messages: 701 Registered: October 2010
Karma: 0
|
Senior Member |
|
|
Jerry Stuckle wrote:
> On 1/7/2012 9:06 AM, Leo Decap wrote:
>> I have 1 field - type File - where the user can choose a photo to upload.
>> On reload of the form, I would love to see the entered data (path?)
>> reappear, but I can't figure out how to do this..........
>>
>> Any help here would be appreciated.
>
> You can't do it. For security reasons, HTTP will now allow FILE fields
> to be filled in.
s/HTTP/(X)HTML/
s/now/not/
--
PointedEars
|
|
|
Re: form - file - sumple question [message #176447 is a reply to message #176444] |
Sat, 07 January 2012 14:40 |
Luuk
Messages: 329 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 07-01-2012 15:09, Jerry Stuckle wrote:
> On 1/7/2012 9:06 AM, Leo Decap wrote:
>> Hi,
>>
>> I have a form which users can fill in.
>> If the user hasn't filled in a required field, the form reloads after
>> the Submit with all the data the user has entered filled in (and the
>> opportunity to fill in the missing data).
>> I get the data through $_POST and echo the allready filled in data on
>> the form. Easy.
>>
>> I have 1 field - type File - where the user can choose a photo to upload.
>> On reload of the form, I would love to see the entered data (path?)
>> reappear, but I can't figure out how to do this..........
>>
>> Any help here would be appreciated.
>>
>> Leo
>
> You can't do it. For security reasons, HTTP will now allow FILE fields
> to be filled in.
>
I suggest you (Leo) to take a look at JavaScript, to do simple checks if
a field is filled in or not.
For the complicated checks, you might still want to use some PHP stuff
afterwards....
--
Luuk
|
|
|
Re: form - file - sumple question [message #176448 is a reply to message #176447] |
Sat, 07 January 2012 14:53 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 1/7/2012 9:40 AM, Luuk wrote:
> On 07-01-2012 15:09, Jerry Stuckle wrote:
>> On 1/7/2012 9:06 AM, Leo Decap wrote:
>>> Hi,
>>>
>>> I have a form which users can fill in.
>>> If the user hasn't filled in a required field, the form reloads after
>>> the Submit with all the data the user has entered filled in (and the
>>> opportunity to fill in the missing data).
>>> I get the data through $_POST and echo the allready filled in data on
>>> the form. Easy.
>>>
>>> I have 1 field - type File - where the user can choose a photo to upload.
>>> On reload of the form, I would love to see the entered data (path?)
>>> reappear, but I can't figure out how to do this..........
>>>
>>> Any help here would be appreciated.
>>>
>>> Leo
>>
>> You can't do it. For security reasons, HTTP will now allow FILE fields
>> to be filled in.
>>
>
> I suggest you (Leo) to take a look at JavaScript, to do simple checks if
> a field is filled in or not.
>
> For the complicated checks, you might still want to use some PHP stuff
> afterwards....
>
I don't think javascript will allow it either, Luuk. It would be a huge
security concern.
Can you imagine what hackers could do if they could put an invisible
FILE field on a page and get any file on your system without your knowledge?
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|
Re: form - file - sumple question [message #176449 is a reply to message #176443] |
Sat, 07 January 2012 15:10 |
M. Strobel
Messages: 386 Registered: December 2011
Karma: 0
|
Senior Member |
|
|
Am 07.01.2012 15:06, schrieb Leo Decap:
> Hi,
>
---cut
> I have 1 field - type File - where the user can choose a photo to
> upload.
> On reload of the form, I would love to see the entered data
> (path?) reappear, but I can't figure out how to do this..........
>
> Any help here would be appreciated.
>
> Leo
No way, as has been said.
If it were possible, you could put the element into a
display:none block, set contents to what you want (/etc/passwd in
*nix), and steal private files.
/Str.
|
|
|
Re: form - file - sumple question [message #176451 is a reply to message #176443] |
Sat, 07 January 2012 15:24 |
Leo Decap
Messages: 2 Registered: January 2012
Karma: 0
|
Junior Member |
|
|
Op 7/01/2012 15:06, Leo Decap schreef:
> Hi,
>
> I have a form which users can fill in.
> If the user hasn't filled in a required field, the form reloads after
> the Submit with all the data the user has entered filled in (and the
> opportunity to fill in the missing data).
> I get the data through $_POST and echo the allready filled in data on
> the form. Easy.
>
> I have 1 field - type File - where the user can choose a photo to upload.
> On reload of the form, I would love to see the entered data (path?)
> reappear, but I can't figure out how to do this..........
>
> Any help here would be appreciated.
>
> Leo
Hi,
thanks everyone, I was afraid that "no way" was the answer...
Leo
|
|
|
Re: form - file - sumple question [message #176452 is a reply to message #176448] |
Sat, 07 January 2012 15:24 |
Luuk
Messages: 329 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 07-01-2012 15:53, Jerry Stuckle wrote:
> On 1/7/2012 9:40 AM, Luuk wrote:
>> On 07-01-2012 15:09, Jerry Stuckle wrote:
>>> On 1/7/2012 9:06 AM, Leo Decap wrote:
>>>> Hi,
>>>>
>>>> I have a form which users can fill in.
>>>> If the user hasn't filled in a required field, the form reloads after
>>>> the Submit with all the data the user has entered filled in (and the
>>>> opportunity to fill in the missing data).
>>>> I get the data through $_POST and echo the allready filled in data on
>>>> the form. Easy.
>>>>
>>>> I have 1 field - type File - where the user can choose a photo to
>>>> upload.
>>>> On reload of the form, I would love to see the entered data (path?)
>>>> reappear, but I can't figure out how to do this..........
>>>>
>>>> Any help here would be appreciated.
>>>>
>>>> Leo
>>>
>>> You can't do it. For security reasons, HTTP will now allow FILE fields
>>> to be filled in.
>>>
>>
>> I suggest you (Leo) to take a look at JavaScript, to do simple checks if
>> a field is filled in or not.
>>
>> For the complicated checks, you might still want to use some PHP stuff
>> afterwards....
>>
>
> I don't think javascript will allow it either, Luuk. It would be a huge
> security concern.
>
> Can you imagine what hackers could do if they could put an invisible
> FILE field on a page and get any file on your system without your
> knowledge?
>
Yeah, i can imaginge, but, in the original question, it started with:
"If the user hasn't filled in a required field"
and THAT is something you can check using javascript without ANY
security issues.
--
Luuk
|
|
|
Re: form - file - sumple question [message #176491 is a reply to message #176451] |
Sun, 08 January 2012 15:41 |
Jonathan Stein
Messages: 43 Registered: September 2010
Karma: 0
|
Member |
|
|
Den 07-01-2012 16:24, Leo Decap skrev:
> thanks everyone, I was afraid that "no way" was the answer...
Well, it's a bit more complicated, but you can do something to avoid
that the user has to find the file again.
On the first POST, save the file in a temporary location and include a
hidden field with the file id in the new form, you generate.
Then you should also make a "delete" checkbox or button to let the user
remove the file again, and you must clean up the temporary files once in
a while.
Regards
Jonathan
|
|
|
Re: form - file - sumple question [message #176530 is a reply to message #176443] |
Mon, 09 January 2012 08:38 |
alvaro.NOSPAMTHANX
Messages: 277 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
El 07/01/2012 15:06, Leo Decap escribió/wrote:
> I have a form which users can fill in.
> If the user hasn't filled in a required field, the form reloads after
> the Submit with all the data the user has entered filled in (and the
> opportunity to fill in the missing data).
> I get the data through $_POST and echo the allready filled in data on
> the form. Easy.
>
> I have 1 field - type File - where the user can choose a photo to upload.
> On reload of the form, I would love to see the entered data (path?)
> reappear, but I can't figure out how to do this..........
This approach hits against two walls:
1. The $_FILES array does not contain the original path, mainly because
the browser does not send it to the server.
2. Most browsers ignore pre-filled <input type="file"> elements.
Additionally, you have no control about the uploaded file size until the
file is actually received. If you force the user to upload the file
again and it happens to be a large file, your form can become pretty
unusable.
You need to use a different technique. The simplest one is to move
successfully uploaded files to a temporary location you control and link
them to your form through a reasonably large random ID (so it cannot be
guessed) that can be transmitted through a set of <input type="hidden">
fields.
E.g., if the original $_FILES entry is this:
array(1) {
["avatar"]=>
array(5) {
["name"]=>
string(10) "Logo01.gif"
["type"]=>
string(9) "image/gif"
["tmp_name"]=>
string(27) "C:\WINDOWS\Temp\php1728.tmp"
["error"]=>
int(0)
["size"]=>
int(732)
}
}
.... you can use uniqid('tmp_') to generate a random name and save your
file as:
C:\Sites\example.com\temp\tmp_4f0aa7072cb3e
.... and add this to your form:
<input type="hidden" name="avatar[id]" value="tmp_4f0aa7072cb3e">
<input type="hidden" name="avatar[name]" value="Logo01.gif">
<input type="hidden" name="avatar[type]" value="image/gif">
When all the entered data is correct, you can move the temporary file to
its definitive location.
--
-- http://alvaro.es - Álvaro G. Vicario - Burgos, Spain
-- Mi sitio sobre programación web: http://borrame.com
-- Mi web de humor satinado: http://www.demogracia.com
--
|
|
|
Re: form - file - sumple question [message #176596 is a reply to message #176443] |
Tue, 10 January 2012 19:02 |
Peter H. Coffin
Messages: 245 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On Sat, 07 Jan 2012 15:06:10 +0100, Leo Decap wrote:
> Hi,
>
> I have a form which users can fill in.
> If the user hasn't filled in a required field, the form reloads after
> the Submit with all the data the user has entered filled in (and the
> opportunity to fill in the missing data).
> I get the data through $_POST and echo the allready filled in data on
> the form. Easy.
>
> I have 1 field - type File - where the user can choose a photo to upload.
> On reload of the form, I would love to see the entered data (path?)
> reappear, but I can't figure out how to do this..........
At this point, the file is already uploaded. THAT can be indicated,
though. The php script never even knows what the path was in the first
place, so it can't possibly pre-fill a re-display of the form.
--
A: Maybe because some people are too annoyed by top-posting.
Q: Why do I not get an answer to my question(s)?
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
|
|
|