Undefined variable SESSION - apache

I am using php $_SESSION like this
$_SESSION['original_referrer_location']
but i keep getting this error
Notice: Undefined variable: _SESSION in /var/www/m/inc/referrer.php on line 3
so I added this to the top of my script
ini_set('session.use_cookies', 'On');
ini_set('session.use_trans_sid', 'Off');
session_set_cookie_params(0, '/');
session_start();
and all is good.
Is there a way to turn on sessions for good because having to add this on top of any script that needs a session is kind of redundant....i went to php.ini but there are many calls that start with session...any ideas on what i need to change ...I am on ubuntu 10.10/php5 in case that matters

There is:
http://www.php.net/manual/en/session.configuration.php#ini.session.auto-start
But i wouldn't recommend using it. For example you would like to store whole object in session, to do it you would need to include file with class declaration first, otherwise unserialized object will be of incomplete class.
Other way is to auto-prepend file that sets some basic configuration and starts session

Yes
session.auto.start
session.auto_start boolean session.auto_start specifies whether the session module starts a session automatically on request startup.
Defaults to 0 (disabled).

When you want to use sessions, remember to call session_start() before the HTML tag
<?php session_start(); ?>
<html>
<body>
...

Related

Cache files always created with wrong permissions in Yii 2

I get this error in my log files every time a cache file doesn't exist it seems. On the first page load, I always get this error
[message] => filemtime(): stat failed for [...]/runtime/cache/my/myapp03eab921185f7b68bbca50d8debc0dda.bin
[file] => [...]/vendor/yiisoft/yii2/caching/FileCache.php
[line] => 113
It doesn't happen anymore on next page loads but that one time is really annoying since the slack bot watcher is spamming our channel with this useless warning. Is there a way to avoid that, or is it a permission problem?
The "runtime", "cache" and "my" folders all have 775.
Update
Turns out the issue is that I'm using error_get_last() that is also getting warning-level errors. So it's a different issue entirely, not Yii-related
Make sure that you don't have enabled scream in your php.ini. Warnings from this filemtime() call should be suppressed by # operator, but scream setting can override this operator and generate warning anyway.
if (#filemtime($cacheFile) > time()) {
// ...
}
You must be getting this in PHP 7.1. try to run this with PHP 5.5 and see if you are getting the same error.
To reproduce you need to delete all files from runtime/cache directory
Then start app again(reload page) and look into runtime/cache. It is empty
Yii2 doesn't make cache again
Got same issue in Yii. The error was on the same string (FileCache.php:113)
if (#filemtime($cacheFile) > time()) {...
In my case reason was that my custom php error handler (heir
of the class yii\base\ErrorHandler) didn't check if
error type need to be handled according error_reporting().
Custom handlers allways gets every error, even muted by Error Control operator (#)
https://www.php.net/manual/en/function.set-error-handler.php
error_reporting() settings will have no effect and your error handler will be called regardless

PHP Session Variable - Property access is not allowed yet

I have the following code at the top of my index.php:
<?php
session_start();
require 'includes/db_connect.php';
if(!isset($_SESSION['conn'])){
$_SESSION['conn'] = db_connect('igslogistics01');
}
var_dump($_SESSION);
?>
The result of the output is:
Warning: var_dump(): Property access is not allowed yet
I have seen similar questions asked, related mainly to db connections but as you can see in my case I can't access any of the session variable.
The server is running PHP v 7.1.0
Any suggestions or pointers would be appreciated.

Values lifetime in mod_perl

.pm file:
package fo_condition_editor;
use utf8;
use diagnostics -trace;
use strict;
use warnings FATAL => 'all';
{...}
use Encode;
my $msg = {};
return 1;
{..}
sub ..() {
$msg->{saved} = 1;
I use this pm to show popup. When form is submitted, popup is refreshed.
In my local server everything works fine, but in other server i had problem with variables $msg. $msg is empty during printing, but when i submit again in $msg are old things.
I think is problem with apache configuration.
The probloem - if I get this correctly - is that the code
my $msg = {};
is only executed when this package is required/used for the first time. After that (in the current mod_perl Instance) this wont be executed any more, and $msg keeps whatever value it has for the next requests.
There are a lot of ways to work around this problem. One schema, I use some times, is to define a "tear-down/reset" method for each "package / module-Entity" I use. In the package itself I push a reference of this method to a global Variable. And in my "core-Handler" called by mod_perl I have a tear-down/reset method, which iterates over the registered handlers and calls them to reset the data.
HTH
Georg

How to set a condition with #auth.requires_login in Web2py

In my web2py web app, the controller function def index(): has the decorator #auth.requires_login().
For development and testing purpose I comment out this decorator. But I often forget to uncomment it before committing the code.
I would like to change this decorator into something that would test if a file is present (i.e. skipLogin) and if not to require login. I can then add the skipLogin file in my .gitignore file and don't need to worry about commenting and uncommenting the decorator line.
I suppose it should be something like #auth.requires(lambda: xxx) but I have no idea what xxx should be.
auth.requires takes a requires_login argument, so you can just set the condition to True, and then conditionally set the value of requires_login. For example, you can set it to require login for non-local requests:
#auth.requires(True, requires_login=not request.is_local)

Asterisk with new functions

I created a write func odbc list records files in sql table:
[R]
dsn=connector
write=INSERT INTO ast_records (filename,caller,callee,dtime) VALUES
('${ARG1}','${ARG2}','${ARG3}','${ARG4}')
prefix=M
and set it in dialplan :
exten => _0X.,n,Set(
M_R(${MIXMONITOR_FILENAME}\,${CUSER}\,${EXTEN}\,${DTIME})= )
when I excute it I get an error : ast_func_write: M_R Function not registered:
note that : asterisk with windows
First thing I saw was you were performing the call to the function incorrectly...you need to be assigning values, not arguments....try this:
func_odbc.conf:
[R]
dsn=connector
prefix=M
writesql=INSERT INTO ast_records (filename,caller,callee,dtime) VALUES('${VAL1}','${VAL2}','${VAL3}','${VAL4}');
dialplan:
exten => _0X.,1,Set(M_R()=${MIXMONITOR_FILENAME}\,${CUSER}\,${EXTEN}\,${DTIME})
If that doesn't help you, continue on in my list :)
Make sure func_odbc.so is being loaded by Asterisk. (from the asterisk CLI: module show like func_odbc)... If it's not loaded, it can't "build" your custom odbc query function.
Make sure your DSN is configured in /etc/odbc.ini
Make sure that /etc/asterisk/res_odbc.conf is properly configured
Make sure you're calling the DSN by the right name (I see it happen all the time)
enable verbose and debug in your Asterisk logging, do a logger reload, core set verbose 5, core set debug 5, and then try the call again. when the call finishes, review the log, you'll see much more output regarding what happened...
Regarding the answer from recluze...Not to call you out here, but using a PHP AGI is serious overkill here. The func_odbc function works just fine, why create more overhead and potential security issues by calling an external script (which has to use a interpreter program on TOP itself)?
you should call func odbc function as "ODBC_connector". connector should be use in the func_odbc.conf file [connector]. In the dialplan it should call like this.
exten=> _0x.,n,ODBC_connector(${arg1},${arg2})
I don't really understand the syntax you're trying to use but how about using AGI (with php) for this. Just define your logic in a php script and call it from your dialplan as:
exten => _0X.,n,AGI(script-filename.php,${CUSER},${EXTEN},${DTIME})