PHP session_start () error on server side - php

Im currently trying to move my site from localhost on my machine to my web server. And there is one problem.
Everything works fine, except login form for administration.
At first I thought it was not-saving-as-utf-8-without-BOM problem, but error logs show some strange problem which I never had before. As far as I understand, the problem is about saving session data on server, see error log below.
PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: open(/var/php_sessions/sess_cd9931f63118e645ca5d3704fecf86c6, O_RDWR) failed: No such file or directory (2) in /hermes/bosweb/web273/b2738/ipg.mydomaincom/admin/login.php on line 2
PHP Warning: Unknown: open(/var/php_sessions/sess_cd9931f63118e645ca5d3704fecf86c6, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/php_sessions) in Unknown on line 0
PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: open(/var/php_sessions/sess_cd9931f63118e645ca5d3704fecf86c6, O_RDWR) failed: No such file or directory (2) in /hermes/bosweb/web273/b2738/ipg.mydomaincom/admin/include/header.php on line 2
PHP Warning: Unknown: open(/var/php_sessions/sess_cd9931f63118e645ca5d3704fecf86c6, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/php_sessions) in Unknown on line 0
Here is the code I use for login.php document:
<?php
session_start ();
require_once 'config/config.php';
$auth = "SELECT username, password FROM admin";
$dbi = mysql_query($auth, $connection);
$row = mysql_fetch_array($dbi);
if($_POST["username"] == $row['username'] && MD5($_POST["password"]) == $row['password'])
{
$_SESSION["Login"] = "true";
header ("Location: index.php");
}
else
{
$_SESSION["Login"] = "false";
//error msg
echo "<html>
<head><title>Failed Login Attempt</title></head>
<body>
Ops! Unlucky guess, try again!
<a href='index.php'>Go Back</a>
</body>
</html>
";
}
?>

first step, check that the directory /var/php_sessions/ exists and is writable by your web server.

phpGrid requies session to work.
First of all, if you have access to php.ini, check if path in session.save_path is valid and writable. In Linux, by default, the path is /var/php_sessions/.
Some web hosting services such as iPage, disallows shared user session folder for security reasons. Users MUST create and maintain their own session folder.
http://www.ipage.com/knowledgebase/beta/article.bml?ArticleID=1290&type=How%20To#Nugget_1374
If you don’t want to deal with all those and prefer more loose security hosting, we recommend bluehost or stablehost.

maybe you should create the directory first. It seems that the directory in your config/config.php doesn't exists.

Related

PHP Warning: session_start(): Failed to read session data: files (path: C:\inetpub\tmp) - Windows Server 2016

I got problem when I transfer my PHP files to Windows Server. The error that I found is:
PHP Warning: session_start():
open(C:\inetpub\tmp\sess_ls40vhrbgus8ghmqvnqrat2qfo, O_RDWR) failed:
Permission denied (13) in C:\inetpub\wwwroot\ebooking\index.php on
line 4
and below is my code:
index.php
include("config/configPDO.php");
session_start(); //line 4
$msg = "";
if(isset($_POST['submitBtnLogin'])) {
$User_ID = trim($_POST['Email']);
$email=explode('#',$User_ID);
if (is_array($email)){
$User_ID=$email[0];
}
But when I just code echo "Hello World", the text will display. No problem.
Can I know what the problem? Is there any configuration that i need to do in php.ini?
IIS activate PHP_CGI via application pool identity. So please try to grant your authenticated user like IUSR and application pool identity(IIS Apppool\apppool name) read/write permission to access the C:\inetpub\tmp.
If steps above is not working, please try to use process monitor in this case.
Create a filter to access denied error. And then it will tell us who and where to grant permission.
https://learn.microsoft.com/en-us/sysinternals/downloads/procmon
Change session path where you can write data or contact server administrator about /tmp problem
http://php.net/manual/en/function.session-save-path.php
you will need to change your session.save_path php.ini directive

Session error after uploading wordpress site on live

Following errors come after uploading site to live:
Warning: session_start() [function.session-start]:
open(D:\TEMP\PHP\sess_h7pba1el9krq2dpt2klsm0v6c1, O_RDWR) failed: No
such file or directory (2)
Warning: Unknown: open(D:\TEMP\PHP\sess_h7pba1el9krq2dpt2klsm0v6c1,
O_RDWR) failed: No such file or directory (2) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify
that the current setting of session.save_path is correct (D:\TEMP\PHP)
in Unknown on line 0
On the local system the site is working fine. The above errors come only after it is uploaded.
how do I get them resolved?
PHP can't save it's session files. In spite of you're using wp the problem isn't related with it, it's a server problem.
Depending on the type of server you should:
Ask hosts support to fix it OR
Edit the session.save_path var in your php.ini
Hope it helps!

Set localhost sessions folder to 0070 using OS X & MAMP

newb here, new to working with localhost in OS X.
I am running a MAMP stack on OS X. My session test file returns a series of warnings which I believe is due to the inability to write to the sessions folder which I have not been able to set to 0700.
I've checked for:
white space
file path http://localhost/sessions/
folder name (sessions)
I believe the problem is a permission issue. I am looking to be able to write to my localhost directory session folder. To do this I need to set the permission of the folder to 0700. I am hoping to find an solution that I can replicate with my limited level of expertise at this time.
This is the code:
<?php
ini_set('session.save_path','/htdocs/sessions');
session_start();
$_SESSION['test'] = "If you can read this, sessions are working!";
print $_SESSION['test'] . "<br>";
print "Session ID is: ". session_id()."<br>";
?>
These are the errors which only appear when i run local:
Warning: session_start(): open(/htdocs/sessions/sess_d1c5ef5a18bb844bfc667a0fc911191f, O_RDWR) failed: No such file or directory (2) in /Applications/MAMP/htdocs/review/itc240f/a_070-adminer/sessionTest.php on line 3
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /Applications/MAMP/htdocs/review/itc240f/a_070-adminer/sessionTest.php:3) in /Applications/MAMP/htdocs/review/itc240f/a_070-adminer/sessionTest.php on line 3
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /Applications/MAMP/htdocs/review/itc240f/a_070-adminer/sessionTest.php:3) in /Applications/MAMP/htdocs/review/itc240f/a_070-adminer/sessionTest.php on line 3
If you can read this, sessions are working!
Session ID is: d1c5ef5a18bb844bfc667a0fc911191f
Warning: Unknown: open(/htdocs/sessions/sess_d1c5ef5a18bb844bfc667a0fc911191f, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/htdocs/sessions) in Unknown on line 0
/htdocs/sessions
does it exist? And, why would you choose to use a root directory in MacOSX? Perhaps you should map it to your user folder.
/Users/username/htdocs/session

Session start problems after upgrading my hosting plan

I just upgraded my hosting plan, and now the user session isnt' working anymore. Users can't access the mebership area when they login, and here are the errors that are shown when opening my website:
Warning: session_start() [function.session-start]: open(/home/content/15/9277415/tmp/sess_enersdnbm88g5detjemgnptu47, O_RDWR) failed: No such file or directory (2) in /home/content/15/9277415/html/include/config.php on line 14
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/content/15/9277415/html/include/config.php:14) in /home/content/15/9277415/html/include/config.php on line 14
Warning: Unknown: open(/home/content/15/9277415/tmp/sess_enersdnbm88g5detjemgnptu47, O_RDWR) failed: No such file or directory (2) in Unknown on line
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct () in Unknown on line 0
In config.php line 14 we have the session variables:
if(!session_id()) session_start();
if (!isset($_SESSION)) $_SESSION=array();
Does anybody have any idea why is this happening or how to fix it? These errors werent showing before the hosting plan upgrade.
Make sure that the directory /home/content/15/9277415/tmp exists and is writable by the webserver.

PHP sessions not saving from page to page

i'm having some issues with PHP sessions. I'm pretty new to PHP so my apologies if i'm being completely stupid.
I have a login.php file that once the user name and password has been checked etc it has the following code:
if($pass === $row2['PSWD']){
session_start();
$_SESSION['test']="hello";
mysql_close($con);
header("Location: page.php");
}else{
die('Wrong password');
}
then on page.php I have the following at the very top, about the tag:
<?php
session_start();
session_register(); //just in case...(should not be needed)
echo "Result:".$_SESSION['test'];
?>
And all I get at the top of the page is "Result:"
Any ideas? As from everything i've been reading it should be as simple as this?
Thanks in advance!
EDIT:
My error logs are showing:
Warning: session_start() [function.session-start]: open(/var/php_sessions/sess_b91f8653bcee6ef7c1e13ae8844f00da, O_RDWR) failed: No such file or directory (2) in /hermes/bosweb/web261/b2617/ipg.craigfisk/webtest/login.php on line 28
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /hermes/bosweb/web261/b2617/ipg.craigfisk/webtest/login.php:28) in /hermes/bosweb/web261/b2617/ipg.craigfisk/webtest/login.php on line 28
Warning: Cannot modify header information - headers already sent by (output started at /hermes/bosweb/web261/b2617/ipg.craigfisk/webtest/login.php:28) in /hermes/bosweb/web261/b2617/ipg.craigfisk/webtest/login.php on line 31
Warning: Unknown: open(/var/php_sessions/sess_b91f8653bcee6ef7c1e13ae8844f00da, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/php_sessions) in Unknown on line 0
You need to put exit(); after your header redirection, otherwise you have just loaded two pages of content into 1 page.
source: https://stackoverflow.com/a/3023479/710827
after header location give exit();

Categories