I thought I understood the implications of setting
register_globals to off, but further study has got me
somewhat confused. Although I have read this dicsussion
of this topic on the PHP website:
http://www.php.net/manual/en/printwn...terglobals.php
I have run across a problem which I can't seem to fathom.
The simple script below works to demonstrate the use of
global variables:
<html>
<body>
<?php
function showform() {
global $variable1, $proof;
$proof='<hr>Proof Of Concept!';
echo '<form method="get">';
echo '<hr>';
echo '<input type="text" size="25" name="variable1"
value="'.$variable1.'">';
echo '<br>';
echo '<input type="submit" value="TESTME!">';
echo '</form>';
if ( isset($variable1) ) {
// if it DOES exist
echo $variable1.'<br>';
}
else {
// if it does NOT exist
echo 'Missing $variable1<br>';
}
showform();
// I threw this in to illustrate a point I made earlier while
// rambling...
echo $proof;
?>
</body>
</html>
The statement 'Missing $variable1' always prints before the
form appears and "Proof of Concept' appears
just below the form when 'echo $proof;' is encountered.
However, I can't enter anything in the form to set $variable1;
'Missing $variable1' still appears even if I use:
if ( isset($_GET['variable1']) )
Apparently, the variable is not being set.
1. Why isn't the variable set?
2. Why does echo $proof work when I should be using
echo $_GET['proof']; if register_globals is off?
I seem to be missing something, but I think it is fundamental
to my understanding of how variables work.
TIA