Solved

Vanishing PHP variables

Posted on 2007-03-28
8
217 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
 
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
Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

 
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

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
echo button 13 47
.htaccess file settings 4 36
Instering to MySQL table 5 22
sql sentence 2 12
Popularity Can Be Measured Sometimes we deal with questions of popularity, and we need a way to collect opinions from our clients.  This article shows a simple teaching example of how we might elect a favorite color by letting our clients vote for …
Generating table dynamically is the most common issue faced by php developers.... So it seems there is a need of an article that explains the basic concept of generating tables dynamically. It just requires a basic knowledge of html and little maths…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to count occurrences of each item in an array.

760 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

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now