views:

170

answers:

4

I have a script that has PHP on it, and a link that goes to a new script that alters that PHP. When writing the query and containing variables on the second script, do I need to use the same variables or are the new ones I create completely seperate? or can will the variables from the first script carry over to the second script if used?

+1  A: 

PHP is basically "nothing shared". So, when you build your link, you control the state of the $_REQUEST variable using the query parameters (GET or POST) and the hidden parameters (cookies).

The session ($_SESSION) is a convenient cookie/file storage to migrate common data between pages, but it is typically best to keep session lean and free of non-critical state details.

MathGladiator
+4  A: 

If by "link" you mean you use require or include, then any variables that are defined in the same scope as the "link" will already be defined within that file's "global" scope (under most conditions).

If you are linking to another page via a typical HTML anchor tag, then the answer is no. You can, however, pass along information using HTTP GET method or create sessions through manipulations of $_SESSION in php or by setting cookies in the browser. All of the various ways of maintaining informaion across multiple links really depend on your needs. In the case where you would want to use HTTP GET, you could setup the link in script A to link to script B like this:

<a href="scriptb.php?var1=somedata&amp;var2=somedata2">Click here</a>

Then in script B you would access that data like this:

<?php
$data1 = $_GET['var1'];
$data2 = $_GET['var2'];

And use it however you need. Of course, be sure to perform sanity checks against the data before accepting it as reliable.

Kevin Peno
Note that the $_GET data above is unsecure user data, and must (always) be sanitized correctly before you use it.
Tchalvak
+3  A: 

You can try and use sessions

AntonioCS
+1  A: 

As mentioned by everyone else, HTTP is stateless and nothing is shared unless you explicitly store it. Most of the time you will want to store these in the $_SESSION[] super global, but you could also store them in files, cookies, or the database, although the file system and database introduce larger overhead and cookies can easily be manipulated.

Kevin Eaton