|
Posted by David Haynes on 10/17/64 11:46
stathis gotsis wrote:
> "David Haynes" <david.haynes2@sympatico.ca> wrote in message
> news:Mp25g.739$jE6.350@fe17.usenetserver.com...
>> stathis gotsis wrote:
>>> Hello everyone,
>>>
>>> I am tying to come up with an elegant way to process some input data
> that
>>> come from a form. When the user hits the 'Submit' button, i want the
> form to
>>> appear again with the already entered valid data filled in and prompt
> the
>>> user to re-enter the non-valid data. If all data is valid, i will
> forward to
>>> an other .php page which enters the data into a database.
>>>
>>> I tried to do this in the following way: the form always hits back on
>>> itself, but when all data is valid i use the PHP:header() to redirect to
> the
>>> data.php that performs the database insertion. The problem is that the
> data
>>> is not available to data.php in the $_POST variable. How can i overcome
> this
>>> problem? Any other subtle way to handle the whole thing? Any help
>>> appreciated.
>>>
>>>
>> I would break the function a little differently.
>>
>> 1. Have a form (view) that is sensitive to $SESSSION. That is, it will
>> use the values in SESSION to populate any dynamic values to be displayed
>> in the form.
>> 2. Have another process (controller) that:
>> a) processes $_POST or $_GET
>> b) if all is valid, does the insert/update and redirects to another
>> page (Your data has been saved.)
>> c) if all is not valid, populates the $SESSION with good values and
>> then redirects to the view form.
>>
>> The whole thing is started by calling the controller. Since no data is
>> valid, it will redirect to the view.
>> The view then presents a form for filling in.
>> The user fills in the form and submits which then calls the controller.
>> The controller processes the form data and either updates/inserts it or
>> calls the view again.
>>
>> If you encapsulate your database accesses into a class or set of classes
>> which are called from the controller, you will have a light-weight
>> implementation of a classic Model-View-Controller (MVC2) architecture.
>
> Thank you for your quick answer, i am heading towards the implementation you
> suggested. Just another minor question: can i add an array variable to
> SESSION? How can this be done?
>
>
$my_array = array('one' => 1, 'two' => 2);
$_SESSION['my_array'] = $my_array;
or
$_SESSION['my_array'] = array('one' => 1, 'two' => 2);
-david-
[Back to original message]
|