FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » form - file - sumple question
Show: Today's Messages :: Polls :: Message Navigator
Switch to threaded view of this topic Create a new topic Submit Reply
form - file - sumple question [message #176443] Sat, 07 January 2012 14:06 Go to next message
Leo Decap is currently offline  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 Go to previous messageGo to next message
Jerry Stuckle is currently offline  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 Go to previous messageGo to next message
Thomas 'PointedEars'  is currently offline  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 Go to previous messageGo to next message
Thomas 'PointedEars'  is currently offline  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 Go to previous messageGo to next message
Luuk is currently offline  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 Go to previous messageGo to next message
Jerry Stuckle is currently offline  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 Go to previous messageGo to next message
M. Strobel is currently offline  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 Go to previous messageGo to next message
Leo Decap is currently offline  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 Go to previous messageGo to next message
Luuk is currently offline  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 Go to previous messageGo to next message
Jonathan Stein is currently offline  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 Go to previous messageGo to next message
alvaro.NOSPAMTHANX is currently offline  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 Go to previous message
Peter H. Coffin is currently offline  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?
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Best PHP Training | PHP Development Training | PHP Training Institute
Next Topic: Running function in the background?
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Thu Nov 28 12:16:56 GMT 2024

Total time taken to generate the page: 0.02828 seconds