Saturday 15 May 2010

PHP - Session already started - ignoring session_start (but doesn't do just that) -



PHP - Session already started - ignoring session_start (but doesn't do just that) -

does have explanation going on here?

i have mainpage, on phone call session_start(). have php script, invoked using ajax. if don't set in session_start() there, not work. however, if do, works fine, displaying:

notice: session had been started - ignoring session_start() in c:\xampp\htdocs\dsb\php\ds_acc.php on line 2

i have made error somewhere, isn't paradox? while saying, ignores session_start(), script breaks when removing it. give thanks input.

here code, sorry if bit obfuscated:

index.php:

<?php session_start(); require_once("php/ds_acc.php"); ?>

ds_acc.php:

<?php session_start(); require_once("db_login.php"); require_once("permission.php"); if(check_permission("user")) { if(isset($_request["action"])) { switch($_request["action"]) { case "add": add_user(); break; } } }else { echo "error: session invalid"; } function add_user() { } ?>

permission.php:

<?php require_once("db_login.php"); /* returns true if permission granted, otherwise false. */ function check_permission($required_level) { if(!isset($_session["id"])) { /* not logged in */ homecoming false; } /* reload banned */ $con = get_con(); $stmt = $con->prepare("select banned users id = ?"); $stmt->bind_param("i", $_session["id"]); $stmt->execute(); $stmt->bind_result($banned); $stmt->fetch(); $stmt->close(); $con->close(); if($banned == 1) { $_session = array(); session_destroy(); homecoming false; } if($_session["permission"] == "admin") { homecoming true; } switch($required_level) { case "user": homecoming true; case "mod": homecoming ($_session["permission"] == "mod"); default: homecoming false; } } ?>

at time of copying, realized connected me including ds_acc.php file utilize it's functions, while using post info via ajax. should in separate files.

(well, nvm, stackoverflow not php starting tags apparently) btw, took me lot of time format code before allow me post it, because first <? in 1 of files intended 3 spaces ._.

the error is, include php file in index page, , invoke using ajax. display duplicate session error on page, while needs session_start if called via ajax.

solution: create separate file, in set functions ds_account.php. include new file in ds_acc.php , in main page.

php session cookies

No comments:

Post a Comment