Sessions php avec Joomla! Besoin d'aide

Résolu/Fermé
Ovitch28 Messages postés 19 Date d'inscription vendredi 27 mai 2011 Statut Membre Dernière intervention 21 juin 2011 - Modifié par Ovitch28 le 30/05/2011 à 08:58
Ovitch28 Messages postés 19 Date d'inscription vendredi 27 mai 2011 Statut Membre Dernière intervention 21 juin 2011 - 21 juin 2011 à 08:52
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.





A voir également:

1 réponse

joomliner Messages postés 89 Date d'inscription jeudi 9 juin 2011 Statut Membre Dernière intervention 1 août 2016 36
21 juin 2011 à 08:04
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
Ovitch28 Messages postés 19 Date d'inscription vendredi 27 mai 2011 Statut Membre Dernière intervention 21 juin 2011
21 juin 2011 à 08:52
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