Okay, so I've been trying to create a PHP function with a $_POST
as an argument. I've read a lot of posts that concerns $_POST as a global variable but I can't still seem to get it. I've been trying to get this code to work with lot of variations but I just can't seem to find the right formula.
Here's my code:
if($_POST['fname']){
$testing = $_POST['fname']
}
function myTest($test)
{
if($test)
{
$id=14;
$sql = "UPDATE stud_bas set fname=:fname WHERE stud_id=:id";
$query = $db ->prepare($sql);
$query -> bindValue (':fname', $test);
$query -> bindValue (':id', $id);
$update = $query -> execute();
}
}
myTest($testing);
So basically, I'm trying to create a function where different $_POST
can use the same function. The current function it still in being modified.
But the bottom line is I can't make the $_POST
work for the function...
I'm sorry, I didn't notice I didn't include how I call the function. I just used
myTest($testing);
Amother variation is I insert myTest($testing);
inside the if($_POST)
Since $_POST is a superglobal. you don't need to pass the entire $_POST array around. If you want to use a function to process parts of $_POST, you can just pass the relevant array index, e.g.
$_POST['foo'] = 'bar';
function somefunc($arg) {
echo $_POST[$arg];
}
somefunc('foo'); // outputs 'bar'
I strongly recommend filtering your input, before inserting it into your Database to prohibit XSS and SQL Injections.
For example:
$filteredPostFoo = filter_input ( INPUT_POST, "bar", FILTER_SANITIZE_FULL_SPECIAL_CHARS );