Sessions php avec Joomla! Besoin d'aide

Résolu
Bonjour,
je travaille sur un site par l'intermédiaire de Joomla!.Et je voulais savoir si sur Joomla! les sessions fonctionnait autrement que sur un site autre , ou meme si Joomla! utilisait son propre système de session.
Car, dans mon script, je souhaite récupérer la suite de chiffres générée par un captcha avec une variable de session : $_SESSION['nbr'], pour ensuite la comparer avec le code rentrer par l'utilisateur:$_POST['verif__code'] (envoyé donc par un formulaire)
Cependant, lorsque je met session_start() en debut de script, il me signale que :
"Notice: A session had already been started - ignoring session_start()."
Et il ne trouve pas la variable 'nombre' citée plus haut.Et lorsque je retire session_start(), c'est pas mieu.
J'ai 3 script:

Création du captcha: captchab.php:(je vous met l'essentiel)

header("Content-type: image/png");    
session_start();    
#    
#    
#    
$nombre = mt_rand(1234567,123456789)+ 1;    
#    
#    
imagestring($image, 5, 30, 75, $nombre, $couleur); //on écrit horizontalement    

$_SESSION['nbr']=$nombre;    

imagepng($image); //renvoie une image sous format png    
imagedestroy($image); //détruit l'image, libérant ainsi de la mémoire    


Formulaire d'envoi des données: lienb.php
<html>    
<?php header("Content-type: image/png");    
defined( '_JEXEC' ) or die( 'Restricted access' );    
echo '<br/><h1>Veuiller remplir <strong>tous</strong> les champs ci-dessous.</h1><br/>';    
echo '<br\n>';    
echo '<A href="http://localhost/index.php?option=com_lien"><br/> <h4>Retour a la page d\'accueil</h4><br/></A>';    
   //affichage de la date et de l'heure    
echo ("<CENTER>");    
setlocale(LC_TIME,'fr_FR.utf-8');    
print (strftime("%A %e %B %Y à %Hh%M"));    
echo ("</CENTER>");    
?>    
<form action="http://localhost/index.php?option=com_arrive" method="post" enctype="multipart/form-data">    
<img src="http://localhost/components/com_captchab" alt="Code de verification">    
<p><label>Merci de retaper le code de l'image ci-dessus</label> : <input type="text" name="verif_code" /></p>    
<p><h3>Formulaire d'envoi de fichier</h3></p>    
Fichier: <input type="file" name="fichier"/><br />    
Email : <input type="text" name="email"/><br />    
<input type="submit" value="Envoyer les donnees" />    
</form>    
<a href="http://localhost/index.php?option=com_lienb"><br><h4>Restaurer barre de fichiers</h4></A>    
</html>    

Script de réception et de verif: arrive.php (seulement l'essentiel)
session_start();    
if(isset($_SESSION['nbr']))    
 {    
 echo 'Variable declaree';    
 }    
else    
{    
 echo 'Variable non declaree';    
}    
print_r($_POST['verif_code']);    
echo '<br/>';    
print_r($_SESSION['nbr']);    
$debut_html = '<html>    
<head>    
<title>Inscription</title>    
</head>    
<body>    
<p>';    
$milieu_html = NULL;    
$fin_html = '</p>    
</body>    
</html>';    
if(empty($_POST['email']))    
{    
 echo 'Tous les champs doivent etre remplis.';    
 echo '<a href="Javascript:history.go(-1)">RETOUR</a>';    
}    
else    
{    
 if(isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0)    
 {    
   if(empty($_POST['verif_code']))    
    {    
     echo 'Tous les champs doivent etre remplis.';    
     echo '<a href="Javascript:history.go(-1)">RETOUR</a>';    
    }    
   ###################################################################################    
     # Si le code est correcte, on passe à la suite.    
    else    
 {    
  if($_POST['verif_code']==$_SESSION['nbr'])  #Là où le script bloque   


Notez que lorsque je note le chemin complet (par exemple, au lieu de marquer : http://localhost/index.php?option=com_arrive , je marque http://localhost/components/com_arrive/arrive.php) cela marche parfaitement. D'où mon questionnement sur les sessions dans Joomla.

Voila, en espérant trouver de l'aide ici, et n'hésitez pas à signaler les incohérences ou les erreurs bêtes, je débute en php donc ca m'aidera beaucoup.

Merci à vous.

1 réponse

  1. Si vous travaillez sous Joomla, l'API de programmation offre plusieurs facilités pour récupérer les valeurs POST/GET et pour travailler avec les sessions :

    https://docs.joomla.org/Retrieving_and_Filtering_GET_and_POST_requests_with_JRequest::getVar

    Les sessions pour Joomla 1.5:

    http://www.thinkbigshot.com/blog/technical/147-using-sessions-in-joomla-15.html

    Site en anglais, mais le code est bon.

    Bon succès,
    0
    1. Merci pour ton aide.
      Je m'étais rabattu sur l'utilisation de cookie à la place des sessions et ça marche.
      Mais graçe à toi je comprend mieu l'utilisation des sessions dans joomla.
      Encore merci!
      0