Yup, get rid of both ini_set() calls and take out the $sid=...
and <?=$sid?> stuff and it should simply work.

On Tue, 30 Jul 2002, Petre wrote:

> Thanks, will work through this immediately.
> Just to be clear.
> If I DO stick with your suggestion of letting PHP do the url mangling,
> and taking your code below, I can simply remove the
>
> ini_set('session.use_trans_sid',false); and <?=$sid?> from your code to make it work 
>exactly as is?
>
> Thanks
>
>
>
> Rasmus Lerdorf wrote:
>
> >The trick is to not name your form vars the same as your session vars.
> >Keep them separate so you have full control of what ends up where.  Also,
> >note that if you are not relying on trans_sid or cookies then don't use
> >SID.  Call session_id() explicitly to get the session id.  So, a quick
> >little mockup to illustrate this.
> >
> >login.php:
> ><?
> >ini_set('session.use_cookies',false);
> >ini_set('session.use_trans_sid',false);
> >session_start();
> >$sid = session_name().'='.session_id();
> >session_register('username');
> >$username = 'petre';
> >?>
> ><a href="page1.php?<?=$sid?>">Next Page</a>
> >
> >page1.php:
> ><?
> >ini_set('session.use_cookies',false);
> >ini_set('session.use_trans_sid',false);
> >session_start();
> >$sid = session_name().'='.session_id();
> >?>
> ><form action="page2.php?<?=$sid?>" method="POST">
> ><input type="text" name="form_foo" value="<?=$_SESSION['foo']?>">
> ></form>
> >
> >page2.php:
> ><?
> >ini_set('session.use_cookies',false);
> >ini_set('session.use_trans_sid',false);
> >session_start();
> >$sid = session_name().'='.session_id();
> >session_register('foo');
> >$foo = $_POST['form_foo'];
> >echo "You entered $foo<br />\n";
> >?>
> ><a href="page1.php?<?=$sid?>">Back</a>
> >
> >
> >I am ini_setting on each page to force PHP to not do trans-sid/cookies.
> >Would be easier to simply turn these off in the php.ini file.
> >
> >When you hit the back link, $_SESSION['foo'] will exist on page1.php and
> >the form will get filled in with the previous value.  You can then change
> >it, hit enter again and the session value will take on the new submitted
> >value because I have decoupled the form data from the session data and I
> >set the session var in page2.php.
> >
> >There are other ways to do this, but this is probably the easiest method
> >to understand.  Play with this simple example until you understand how it
> >works.
> >
> >But again, I'd suggest letting PHP do session id handling for you by
> >letting it default to cookies and fall back to url mangling in the few
> >cases where cookies are turned off.
> >
> >-Rasmus
> >
> >On Tue, 30 Jul 2002, Petre wrote:
> >
> >>Yes, it is a forward link to the page, but as mentioned, that page
> >>contains a form with the selection options, and on that form's action
> >>page is where I don't see the values change, so the question should
> >>probably be something like "how do I change the value in the session_var
> >>with the newly selected value?
> >>And oh, I almost forgot:
> >>Due to that fact that this type of app doesn't really have a logical end
> >>page, I cannot issue a session_destroy() anywhere logically ( except
> >>using a logout button), but that's not going to ensure that people use it...
> >>I would ideally like to have this "app" run on an intranet, where people
> >>will most probably have this app open indefinately, and thus  I also
> >>battle with my logic of keeping a session alive.
> >>
> >>Thanks
> >>.
> >>
> >>Rasmus Lerdorf wrote:
> >>
> >>>Well, how exactly do you implement the back button?  If it is a normal
> >>>client-side back, then of course the previous value will be shown.  If it
> >>>is actually a forward-link to the previous page, then your logic on that
> >>>target page is bogus.
> >>>
> >>>By the way, trans-sid is compiled in by default in PHP so should always be
> >>>available.  And it will fallback to sid mangling only if cookies are
> >>>disabled.  You would probably be better off just letting php manage this
> >>>for you.
> >>>
> >>>-Rasmus
> >>>
> >>>On Tue, 30 Jul 2002, Petre wrote:
> >>>
> >>>>Well, I have asked a couple of questions on this list, but they havn't
> >>>>really helped alot. Maybe you can help?
> >>>>
> >>>>My situation background is as follow:
> >>>>I have always written my apps in the following way: register_globals=on,
> >>>>so I allowed PHP to "generate" my variables for me on the action page,
> >>>>and if I cannot use a form to "send" variables to the next pages, I
> >>>>added them manually to the url.
> >>>>So, then I discovered sessions and thought my probelms were solved, only
> >>>>to discover that it uses cookies by default, and has to have the
> >>>>--trans-sid option compiled to have PHP handle the app if you don't want
> >>>>cookies ( like me, don't want cookies at all, or for that matter,
> >>>>anything that relies on the client's side). So, I couldn't just jump in
> >>>>and use sessions as I would not be sure that my app would work on any
> >>>>PHP4 system regardless of the options it was compiled with. ( Oh, I am
> >>>>writing my apps to work with register_globals=off now, so that shouldn't
> >>>>be a problem).
> >>>>So I started to look for a way to code with sessions that will not
> >>>>require cookies nor require any special compile features; the answer
> >>>>came in adding <?=SID?> to all relative URL's in my app.
> >>>>Alas, that is where I'm at, and it's still not working as I would have
> >>>>expected.
> >>>>My problem is with the way my proposed app works/should work.
> >>>>
> >>>>I am trying to write an app that allows the user to log in, then
> >>>>add/remove projects to his list, then, when a project is selected, he
> >>>>should have access to all the relevan documents in that project, again
> >>>>allowing him to add/remove documents from the project here, and in the
> >>>>last step, when a document is selected, allows hime to add/remove/edit
> >>>>chapters to the document.
> >>>>
> >>>>My first attempt at using sessions with this failed miserably ( keeping
> >>>>in mind my approach of adding SID at end of urls). I have a "back" link
> >>>>on all the pages that takes the user to the previous  step(s) and thus
> >>>>on the last page ( the chpaters edit/remove/add page), there is a link
> >>>>to go back one level, two and three levels. Yet, using these causes
> >>>>unexpected results.
> >>>>I think the problem comes in with overriding the value of the session
> >>>>variable.
> >>>>For instance, on the first page you have a login form, on the action
> >>>>page I session_register("username","password"), and that works fine even
> >>>>when using the back buttons as the values are never changed. But, on the
> >>>>2nd page I have the drop down select containing all the project names (
> >>>>gets built with a while that reads all the project names from the
> >>>>project_table) and send over the project_id.
> >>>>On that actio page, I session_register("project_id"); and it also works
> >>>>fine for all pages "down stream", however, when I come back to that page
> >>>>to select a new project, it keeps the old variable...
> >>>>At first I did nothing special in the sence of assigning a value to the
> >>>>session variables, as I let the register_globals=on do it's trick, but
> >>>>later I explicitly said
> >>>>$project_id = $HTTP_POST_VARS["project_id"];
> >>>>
> >>>>But that also did not overwrite the value of the session var. In the end
> >>>>I was forced to again add all my variables to the end of the url,
> >>>>keeping the session solely for the username and password.
> >>>>
> >>>>I don't know if you would like  me to post my code (  it is quite a bit
> >>>>already ) but I would really appreciate it if someone could look at it,
> >>>>and then point out where I'm missing the picture, as then I would have
> >>>>two pictures that I can compare and see where my reasoning failed.
> >>>>
> >>>>Thanks for your time.
> >>>>
> >>>>
> >>>>Rasmus Lerdorf wrote:
> >>>>
> >>>>>What issues?  Just ask.
> >>>>>
> >>>>>-Rasmus
> >>>>>
> >>>>>On Mon, 29 Jul 2002, Petre wrote:
> >>>>>
> >>>>>>What are good books/websites about sessions.
> >>>>>>I'm looking for more advanced stuff, I have the Luke Welling/Laura
> >>>>>>Tompson book, and have read the manual, but I still have issues that are
> >>>>>>unresolved.
> >>>>>>
> >>>>>>Thanks
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>--
> >>>>>>PHP General Mailing List (http://www.php.net/)
> >>>>>>To unsubscribe, visit: http://www.php.net/unsub.php
> >>>>>>
> >>
> >
>
>


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to