Re: $POST and $_SESSION

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 15 Mar 2012, at 18:31, Stuart Dallas wrote:

> On 15 Mar 2012, at 15:13, Daniel Brown wrote:
> 
>> On Thu, Mar 15, 2012 at 11:04, Tedd Sperling <tedd.sperling@xxxxxxxxx> wrote:
>>> Hi gang:
>>> 
>>> What's a better/shorter way to write this?
>>> 
>>> $first_name = $_SESSION['first_name'] ? $_SESSION['first_name'] : null;
>>> $first_name = isset($_POST['first_name']) ? $_POST['first_name'] : $first_name;
>>> $_SESSION['first_name'] = $first_name;
>> 
>>   A simple reusable function and pass-through variable is one method:
>> 
>> <?php
>> 
>>   session_start();
>>   $_SESSION['first_name'] = $first_name =
>> thisorthat(@$_POST['first_name'],null);
>> 
>>   function thisorthat($a,$b) {
>>       return isset($a) ? $a : $b;
>>   }
>> 
>> ?>
> 
> The @ prefix is banned from all code I go anywhere near - it's evil! I've used the following 'V' function for a long time, primarily for accessing the superglobals but it works for any array.
> 
> <?php
> session_start();
> $_SESSION['first_name'] = $first_name = V($_SESSION, 'first_name');
> 
> function V($arr, $key, $def = null) {
>  return isset($arr[$key]) ? $arr[$key] : $def;
> }
> ?>

That'll teach me for not reading the code properly...

<?php
session_start();
$_SESSION['first_name'] = V($_POST, 'first_name', V($_SESSION, 'first_name'));

function V($arr, $key, $def = null) {
 return isset($arr[$key]) ? $arr[$key] : $def;
}
?>

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux