Solved

Vanishing PHP variables

Posted on 2007-03-28
8
236 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:yodercm
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:yodercm
ID: 18812511
exactly :)
0
Three Reasons Why Backup is Strategic

Backup is strategic to your business because your data is strategic to your business. Without backup, your business will fail. This white paper explains why it is vital for you to design and immediately execute a backup strategy to protect 100 percent of your data.

 
LVL 27

Expert Comment

by:yodercm
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:
yodercm earned 125 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:yodercm
ID: 18847172
You're welcome, good luck :)
0

Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

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

Introduction HTML checkboxes provide the perfect way for a web developer to receive client input when the client's options might be none, one or many.  But the PHP code for processing the checkboxes can be confusing at first.  What if a checkbox is…
Foreword (July, 2015) Since I first wrote this article, years ago, a great many more people have begun using the internet.  They are coming online from every part of the globe, learning, reading, shopping and spending money at an ever-increasing ra…
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.
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 …

821 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