Re: Undefined variable: Origin [message #174247 is a reply to message #174244] |
Sat, 28 May 2011 12:37 |
Luuk
Messages: 329 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 28-05-2011 14:22, Co wrote:
> On 28 mei, 14:08, Luuk <L...@invalid.lan> wrote:
>> On 28-05-2011 14:03, Co wrote:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>> On 28 mei, 11:57, Luuk <L...@invalid.lan> wrote:
>>>> On 28-05-2011 11:41, Co wrote:
>>
>>>> > On 28 mei, 11:34, Luuk <L...@invalid.lan> wrote:
>>>> >> On 28-05-2011 11:30, Co wrote:
>>
>>>> >>> On 28 mei, 11:17, Luuk <L...@invalid.lan> wrote:
>>>> >>>> On 28-05-2011 08:51, Co wrote:
>>
>>>> >>>>> Hi All,
>>
>>>> >>>>> I give two values from one php page to the next.
>>>> >>>>> <a href="MembersFrom.php?myCountry=Netherlands&myFlag=nl.gif">
>>
>>>> >>>>> On the second page I first define them:
>>>> >>>>> if (isset($_GET['myCountry'])) {
>>>> >>>>> $Origin = $_GET['myCountry'];
>>>> >>>>> $Flag = $_GET['myFlag'];
>>>> >>>>> }
>>
>>>> >>>>> $queryString = "WHERE email_activated='1' AND country='$Origin' AND
>>>> >>>>> active='1' ORDER BY id ASC";
>>>> >>>>> $sql2 = mysql_query("SELECT * FROM myMembers $queryString $limit") ;
>>
>>>> >>>>> I limit the data to one record per page.
>>>> >>>>> However when I want to go to the next record on a new page he doesn't
>>>> >>>>> recognize the variable Origin anymore in here:
>>>> >>>>> $queryString = "WHERE email_activated='1' AND country='$Origin' AND
>>>> >>>>> active='1' ORDER BY id ASC";
>>
>>>> >>>>> How should I save the value in Origin so it can be used everytime
>>>> >>>>> again?
>>
>>>> >>>>> Marco
>>
>>>> >>>> You will need a session
>>
>>>> >>>> http://nl2.php.net/manual/en/function.session-start.php
>>
>>>> >>>> --
>>>> >>>> Luuk
>>
>>>> >>> Can you have more than one sessions?
>>>> >>> Could you give me some example of start and end of this session?
>>
>>>> >>> Marco
>>
>>>> >> What is wrong with the examples at the given page?
>>
>>>> >> --
>>>> >> Luuk
>>>> > I put in this code:
>>
>>>> > session_start();
>>>> > $_SESSION['Origin'] = $_GET['myCountry'];
>>>> > $_SESSION['Flag'] = $_GET['myFlag'];
>>
>>>> > //if (isset($_GET['myCountry'])) {
>>>> > // $Origin = $_GET['myCountry'];
>>>> > // $Flag = $_GET['myFlag'];
>>>> > //}
>>>> > $queryString = "WHERE email_activated='1' AND country='$Origin' AND
>>>> > active='1' ORDER BY id ASC";
>>
>>>> > How can I give the $_SESSION['Origin'] to the query?
>>>> > Marco
>>
>>>> try this:
>>>> session_start();
>>>> print "Session Origin: ".$_SESSION['Origin']."<br>";
>>>> $_SESSION['Origin'] = $_GET['myCountry'];
>>>> print "Session Origin replaced with value from _GET:
>>>> ".$_SESSION['Origin']."<br>";
>>>> $_SESSION['Flag'] = $_GET['myFlag'];
>>
>>>> The first time you start this page $_SESSION['Origin'] will be empty
>>
>>>> The second time it will hold the value of the previous $_GET['myCountry']
>>
>>>> In other words,
>>
>>>> If $_GET['myCountry'] is empty, you should not do:
>>>> $_SESSION['Origin'] = $_GET['myCountry'];
>>
>>>> --
>>>> Luuk
>>
>>> When I try your code and go to the second page I get three
>>> notifications:
>>
>>> Notice: A session had already been started - ignoring session_start()
>>> Notice: Undefined index: myCountry
>>> Notice: Undefined index: myFlag
>>
>>> on these lines:
>>> $_SESSION['Origin'] = $_GET['myCountry'];
>>> $_SESSION['Flag'] = $_GET['myFlag'];
>>
>> so, *why* do tou do this (quoted from your original post)
>>
>> if (isset($_GET['myCountry'])) {
>> $Origin = $_GET['myCountry'];
>> $Flag = $_GET['myFlag'];
>>
>> }
>>
>> Question: Do you want to learn programming, or just want to learn how to
>> copy/paste ?
>>
>> --
>> Luuk
>
> I did that because i got the warning for unidentified variable.
> Of course I want to learn how to program but what use is it if it
> doesn't work.
>
> The point is that I have to take to variables from my main page.
> Country and flag.
> MembersFrom.php?myCountry=Netherlands&myFlag=nl.gif
> In the record form I want to show all members from Country X and show
> their flag Y.
> This works with what I used in the beginning. However if I go to the
> next record (next page)
> the values get lost.
> So I need to store the values somewhere if I load :
> MembersFrom.php?pn=2
>
> Marco
That was your question in the first place
i answered that you could use sessions to do that
in your first page 'MembersFrom.php' you store 'myCountry' in a session
variable:
$_SESSION['Origin'] = $_GET['myCountry'];
and in you second page, after the session started, you can acces the
values again via the variable $_SESSION['Origin']
session_start();
if (isset($_GET['myCountry'])) {
// Get values if they are defined in the URL
$Origin = $_GET['myCountry'];
// and store them in the session
$_SESSION['Origin'] = $Origin;
} else {
// Get the value from the session
$Origin = $_SESSION['Origin'];
}
--
Luuk
|
|
|