On the same page I have
$hello = 'Hello!';
$_POST['hello'] = '123';
If I echo $hello, instead of getting 'Hello!' I get '123'. How should I handle variables and $_POST variables with the same name?
This is an example of the real problem:
I have a signup form that looks like this (here's a minified sample of fields). Each input field has a label and the string variable in the label has the same name as the input.
<form id="form1" action="post.php">
<span class="label"><?=$fullname?></span>
//$fullname='Please enter your name';
<input name="fullname" id="fullname" type="text">
<span class="label"><?=$email?></span>
//$email='Please enter your email';
<input name="email" id="email" type="text">
<input name="button1" id="button1" type="submit">
</form>
When I submit the form I post it to the same page and I display the values the user had filled out. Only that now, instead of $fullname displaying the value of the variable $fullname, it displays the value of $_POST['fullname']. Why does this happen?
probably you have register_globals turned on which is something that has been advised against for years already :) see here for details: http://php.net/manual/en/security.globals.php
The problem probably lies with register_globals
in php's .ini file. Turn this off, restart php and it should be fixed.
Try this to check the setting at the moment of execution of the code:
echo ini_get("register_globals");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With