?
Solved

Vanishing PHP variables

Posted on 2007-03-28
8
Medium Priority
?
271 Views
Last Modified: 2011-10-03
Here's a pretty simple problem:

I am writing a registration page in PHP and I can't seem to figure out why my database doesn't record the IP address of the registered user and the timestamp indicating when they registered.  

I declare the variables at the top of the PHP page:

$time = time();
$time+=(3*60*60);
$IPaddress = $_SERVER['REMOTE_ADDR'];

// some more code

.. and then, down the page, I refer to the variables in the function register() that writes the information to the database:

function register() {
$create = "INSERT into registration (identifier,ip,timestamp,first,last,email,stat,region,phone,job,password,advisory,popup,sound) values ('$identifier','$IPaddress','$time','$_POST[first]','$_POST[last]','$_POST[email]', '$_POST[station]','$region','$_POST[phone]','$_POST[job]','$_POST[password1]','1010101010','ON','OFF')";
mysql_query($create);
mysql_close();
}

All of my other variables get recorded to the database correctly -- but for some reason the $IPaddress and $time variables don't.  Any reason why?
0
Comment
Question by:marcparillo
  • 5
  • 3
8 Comments
 
LVL 27

Expert Comment

by:Cornelia Yoder
ID: 18812448
Either pass the variables to the function as parameters, or declare them as global in the function.  Right now, the function code can't see them.
0
 
LVL 3

Author Comment

by:marcparillo
ID: 18812482
Thanks, I knew it was something simple like that.  

If I don't want to pass variables like this:

function register($time,$IPaddress) {
//code
}

.. how do I declare them as global? like this?

global $time, $IPaddress;

Thanks
0
 
LVL 27

Expert Comment

by:Cornelia Yoder
ID: 18812511
exactly :)
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
LVL 27

Expert Comment

by:Cornelia Yoder
ID: 18812516
function register() {
  global $time, $IPaddress;
  $create = "INSERT into registration  (identifier,ip,timestamp,first,last,email,stat,region,phone,job,password,advisory,popup,sound) values ('$identifier','$IPaddress','$time','$_POST[first]','$_POST[last]','$_POST[email]', '$_POST[station]','$region','$_POST[phone]','$_POST[job]','$_POST[password1]','1010101010','ON','OFF')";
mysql_query($create);
mysql_close();
}
0
 
LVL 3

Author Comment

by:marcparillo
ID: 18812702
Don't I have to declare the global variables where they're created ... at the top of the page?  In your example above, you're creating the global variables inside the function.
0
 
LVL 27

Accepted Solution

by:
Cornelia Yoder earned 500 total points
ID: 18812718
Nope, declare them global IN the function.
0
 
LVL 3

Author Comment

by:marcparillo
ID: 18812738
Thanks vodercm --

My background is in Perl, so declaring variables as "global" inside functions in PHP is backward from what I learned in Perl, where "global" variables are declared with the "my" reference anywhere outside of functions.
0
 
LVL 27

Expert Comment

by:Cornelia Yoder
ID: 18847172
You're welcome, good luck :)
0

Featured Post

Upgrade your Question Security!

Add Premium security features to your question to ensure its privacy or anonymity. Learn more about your ability to control Question Security today.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I imagine that there are some, like me, who require a way of getting currency exchange rates for implementation in web project from time to time, so I thought I would share a solution that I have developed for this purpose. It turns out that Yaho…
This holiday season, we’re giving away the gift of knowledge—tech knowledge, that is. Keep reading to see what hacks, tips, and trends we have wrapped and waiting for you under the tree.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …
Suggested Courses
Course of the Month17 days, 2 hours left to enroll

864 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question