IChaps Posted December 6, 2016 Share Posted December 6, 2016 Hello. I'd just like to enquire about using session S_session please. I've created 4 sessions to hold the log in data for the access to a database (host, username, password, database name) At present I've got it to load this data from a file and insert it into a session. Then for my use I've got it to display this data, to ensure it's reading from the file - which it is doing correctly. The problem I've got is in another php file. In the other php file the sessions are all blank and I don't know why this is. ---- In my index.php file the code reads [this works]:- //ReadFile$fp = fopen( dirname(__FILE__).'/Core/sys/dbinfo.txt', 'r' ) or die("Couldn't open file:- 1");$db_host = fgets($fp);$db_user = fgets($fp);$db_pass = fgets($fp);$db_databasename = fgets($fp);fclose( $fp ); $_SESSION['dbf_host'] = $db_host;$_SESSION['dbf_user'] = $db_user;$_SESSION['dbf_pass'] = $db_pass;$_SESSION['dbf_databasename'] = $db_databasename; and in the other php file, the code reads:- session_start(); echo "new php file\n"; echo $_SESSION['dbf_host'];echo $_SESSION['dbf_user'];echo $_SESSION['dbf_pass'];echo $_SESSION['dbf_databasename']; The above code produces a blank screen. Could anyone please advise me? Thank You. Link to comment Share on other sites More sharing options...
davej Posted December 6, 2016 Share Posted December 6, 2016 Start with a working example... http://www.w3schools.com/php/php_sessions.asp Link to comment Share on other sites More sharing options...
justsomeguy Posted December 6, 2016 Share Posted December 6, 2016 You're not using session_start on the first piece of code. If you're storing configuration data like database login details, you shouldn't use a plain text file. Unless you've specifically configured the web server to deny access, anyone could pull up that file and get the credentials. Just create a PHP file and then include it, you don't have to manually read the file or anything. e.g.: <?php $config = [ 'db_host' => 'localhost', 'db_user' => 'sql_user', 'db_pass' => 'some password', 'db_name' => 'database name', ]; <?php include 'config.php'; $mysqli = new mysqli($config['db_host'], $config['db_user'], $config['db_pass'], $config['db_name']);You could also just create the database object in the other file also, so that including the file causes you to be connected to the database so that you can use the $mysqli variable to send queries. You can do other tasks that all pages should do also, like starting a session, setting error reporting options, etc. Then you just include that one file and write the code for that particular page. Another benefit is that if someone types in the URL to that config.php file, PHP will execute it and just display a blank page, they won't see any of the code or details inside the file. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now