Sessions php avec Joomla! Besoin d'aide

[Résolu/Fermé]
Signaler
Messages postés
19
Date d'inscription
vendredi 27 mai 2011
Statut
Membre
Dernière intervention
21 juin 2011
-
Messages postés
19
Date d'inscription
vendredi 27 mai 2011
Statut
Membre
Dernière intervention
21 juin 2011
-
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

Messages postés
89
Date d'inscription
jeudi 9 juin 2011
Statut
Membre
Dernière intervention
1 août 2016
34
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,
Messages postés
19
Date d'inscription
vendredi 27 mai 2011
Statut
Membre
Dernière intervention
21 juin 2011

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!