Closed Sebseb01 closed 10 years ago
Bonjour Sebseb01!
En fait le problème vient de la 2e ligne de code ici :
// Ajouter le projet à la session
$session->set("projetActif", $idProjetActif . " - " . $projetActif->get("titre"));
$projetActif->setProjetCourant($idProjetActif);
$projetActif ne pointe pas à un objet de type projet.
Par curiosité, après avoir exécuté le SQL, avez-vous complété l'installation en créant un administrateur et un projet (avec app/install.php)?
Je vous recommande de ne pas commenter la ligne précédente ($session->set...), elle n'a rien à voir avec le problème et je peux témoigner de son innocence dans le cas qui nous intéresse :)
Merci et A+
Oui, après le problème de SQL, j'ai bien exécuté l'installation avec app/install.php !
Le souci est qu'après la ligne
$session->set("projetActif", $idProjetActif . " - " . $projetActif->get("titre"));
la variable $projetActif est une string ! Donc la ligne suivante est vouée à l'echec.
Bonsoir!
Est-ce possible SVP de préciser à quelle endroit vous voyez $projetActif utilisez comme une string?
Il y a effectivement $idProjetActif qui est une string mais pas $projetActif....
Merci et A+
// Ajouter le projet à la session
$session->set("projetActif", $idProjetActif . " - " . $projetActif->get("titre"));
var_dump($projetActif);
$projetActif->setProjetCourant($idProjetActif);
Ce code m'affiche
string(7) "1 - PAO"
Alors que placé avant le $session->set, il affiche
object(Projet)#8 (4) {... un tas de variable et objet ...}
Comme ceci ?
// Ajouter le projet à la session
var_dump($projetActif);
$session->set("projetActif", $idProjetActif . " - " . $projetActif->get("titre"));
var_dump($projetActif);
$projetActif->setProjetCourant($idProjetActif);
Oui
Chez moi ça affiche dans les 2 cas l'objet Projet tel qu'attendu... Peux-tu STP essayer avec le code ci-haut? Par contre, si j'affiche le contenu de $session->get("projetActif"), c'est effectivement une string mais c'est normal.
Merci de ta collaboration! A+
J'ai compris, mon hébergeur active par défaut register_global ! Donc le fait que la variable de session porte le même nom est un problème.
J'ai donc modifier le comportement de php via le .htaccess ... et effectivement, ça marche (Un point à ajouter à la documentation ?)
Ahhh! Voilà la raison! En plus cette configuration n'est pas sécuritaire, ça permet d'écraser la valeur de variables internes via des paramètres (ouch!).
Je transmets l'information à la personne qui s'occupe de la documentation afin d'ajouter ce point. Je vais aussi ajouter une vérification et possiblement un .htaccess pour prévenir le problème dans une prochaine version.
Merci de votre collaboration pour éclaircir le mystère!! :+1:
Bonjour,
Lors du premier lancement de l'application j'ai rencontrer l'erreur suivante :
Call to a member function setProjetCourant() on a non-object in app/init.php
Pour contourner le problème, j'ai commenter la ligne :
$session->set("projetActif", $idProjetActif . " - " . $projetActif->get("titre"));
Car le $session->set écrase l'objet projetActif
(Ce n'est probablement pas une bonne solution)