[Last Call] Learn about multicloud storage options and how to improve your company's cloud strategy. Register Now

x
?
Solved

Vanishing PHP variables

Posted on 2007-03-28
8
Medium Priority
?
265 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

There are times when I have encountered the need to decompress a response from a PHP request. This is how it's done, but you must have control of the request and you can set the Accept-Encoding header.
Originally, this post was published on Monitis Blog, you can check it here . In business circles, we sometimes hear that today is the “age of the customer.” And so it is. Thanks to the enormous advances over the past few years in consumer techno…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
The viewer will learn how to dynamically set the form action using jQuery.
Suggested Courses

656 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