Voici le model principal, je l'ai scruter, et essayé de modifier plusieurs fois, j'ai toujour la même erreur.
Bonjour,
Je suis nouveau sur ce forum, veuillez m'excuser pour le retard de ce post. Merci d'avance.
Voila je rencontre un petit problème avec mon code.
Ce que je fais
Décrivez ici votre code ou ce que vous cherchez à faire
Je tiens à remercier tout le monde ici, j'ai suivi les tutos sur développer un site et créer le code en suivant les étapes, sauf je bloque sur la partie administration du site.
( ! ) Notice: Undefined property: stdClass::$password in C:\wamp64\www\appDev\app1\controller\UsersController.php on line 9
Call Stack
Time Memory Function Location
1 0.0007 405480 {main}( ) ...\index.php:0
2 0.0027 415768 Dispatcher->__construct( ) ...\index.php:11
3 0.0037 419496 UsersController->login( ) ...\Dispatcher.php:20
( ! ) Notice: Undefined property: stdClass::$login in C:\wamp64\www\appDev\app1\controller\UsersController.php on line 12
Call Stack
Time Memory Function Location
1 0.0007 405480 {main}( ) ...\index.php:0
2 0.0027 415768 Dispatcher->__construct( ) ...\index.php:11
Cette érreur s'affiche après avoir rentré le couple identifiant de la base de donnée
Ce que je veux
Voici le code des pages qui se sont ajoutés
Le fonction find du Model principale
" public function find($req = array()){
$sql = 'SELECT ';
if(isset($req['fields'])){
if(is_array($req['fields'])){
$sql .= implode(', ',$$req['fields']);
}else{
$sql .= $req['fields'];
}
}else{
$sql .= '*';
}
$sql .= ' FROM '.$this->table.' as '.get_class($this).' ';
// Construction de la condition
if(isset($req['conditions'])){
$sql .= 'WHERE ';
if(!is_array($req['conditions'])){
$sql .= $req['conditions'];
}else{
$cond = array();
foreach ($req['conditions'] as $k => $v){
// code à executer
if(!is_numeric($v)){
$v = '"'.addslashes($v).'"';//mysql_real_escape_string($v)= '"'.addslashes($v).'"';
}
$cond[] = "$k=$v";
}
$sql .= implode(' AND ',$cond);
}
}
if(isset($req['order'])){
$sql .= ' ORDER BY '.$req['order'];
}
// Construction de la limt
if(isset($req['limit'])){
$sql .= ' LIMIT '.$req['limit'];
}
$pre = $this->db->prepare($sql);
$pre->execute();
return $pre->fetchAll(PDO::FETCH_OBJ);
}
"
Ce que j'obtiens
J'obtiens au finale une erreur stdClass.
Que puis-je faire pour resoudre ce problème? Merci d'avance. Thomassam!
12 réponses
Bonsoir,
Il nous faudrais le code de la view 'users/login.php' et le la méthode login du UserController
Merci
Bjr Carouge10 et Merci, je vous transmets les codes.
et
Puis le controller post
Merci.
Je n'ai pas la vue du login (formulaire pour se loger) et que donne un var_dump($data) dans la méthode login ?
Bonjour à tous, et merci pour votre contribution.
En fait j'ai comme l'impression que le problème vient des requêtes pâssée dans le model principal, parceque le tuto à été réalisé avec la version PHP 5 et aujourd'hui, nous sommes à la version 7.
Ce bout de code me semble être la source du problème.
Avec la version 7 de PHP elle deviennent obcelètes.
Bonne journée à vous.
Bonjour à tous,
pour le formulaire, voici et la page
et le helper form dans le core
J'ai essayé de debuger data, la classe me renvoie un tableau vide.
Salut,
en faisant un var_dump($this->request->data), ça te renvoie des données ?
peut-être que c'est pas lié mais dans ta page login ton router est différent des autres le "r" n'est pas en majuscul.
ce format "action="<?php echo router::url('users/login'); ?>"" n'est pas obligatoire vue que lors de la soumission du formulaire la page va s'appeler lui même.
il faut verifier si ton formulaire envoie des données et que ton controller les récupère si c'est pas le cas il peut avoir un problème de routage.
tu dis "J'ai essayé de debuger data, la classe me renvoie un tableau vide." mais a quel niveau ?
Comme tu dis, peut-être que j'ai oublié quelque chose au niveau du controller principal, je l'envoie pour vérification. Pour le moment j'ai supprimé toute la partie admin du site pour essayer d'autres entrée plus simples sans passer par la structure MVC.
En fait avant de poster ma préocupation, j'ai parcouru le forum pour voir si quelqu'un avait déjà eu le même problème que moi. Sauf les réposes sont plus liées à l'ajout d'autre fonctionnalités sur les sites. Merci d'avance.
Dans la class Form,
le code
dans le name il manque le =.
Normalement ça va regler le problème.
Je vais tout réactiver pour voir si ça marche.
Merci pour votre contribution,
J'ai toujours le même problème. Mon application semble ne pas stocker les mots de passe. Je vous recontacte si j'ai une solution.