Per semplicitā ho modificato il tuo script, sostituendo session_start() con il codice opportuno richiesto da Joomla per avviare la sessione, ma niente da fare: lo script si avvia, comincia a ciclare, ma non si interrompe...
filea.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<?php
//session_start();
// Starting session
define( '_JEXEC', 1 );
define( 'JPATH_BASE', '../' );
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe = JFactory::getApplication('site');
$mainframe -> initialise();
if (isset($_POST['submit'])) {
if ($_POST['submit'] == 'Stop') {
$_SESSION['pippo'] = '1';
} else {
$_SESSION['pippo'] = '0';
}
} else {
$_SESSION['pippo'] = '0';
}
?>
<html>
<head>
<title>Untitled</title>
</head>
<body>
Stato della session :
<?php
print $_SESSION['pippo'];
?>
<form action="fileb.php" method="post" target="_blank">
Apre una nuova pagina :<input type="submit" name="submit" value="Start" />
</form>
<form action="filea.php" method="post">
Ferma lo script della pagina aperta : <input type="submit" name="submit" value="Stop" />
<br/>
Risetta lo stato della session a 0 :<input type="submit" name="submit" value="Reset" />
</form>
</body>
</html>
fileb.php
<?php
error_reporting(E_ALL);
// session_start();
// Starting session
define( '_JEXEC', 1 );
define( 'JPATH_BASE', '../' );
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe = JFactory::getApplication('site');
$mainframe -> initialise();
$loop = true;
if (isset($_SESSION['pippo'])) {
if ($_SESSION['pippo'] == '1') {
$loop = false;
}
}
if ($loop) {
sleep(1);
header('Location: fileb.php');
exit;
}
print "Finito";
?>