Bonjour,
pour sécuriser plus mon site je utilise le component security, je voudrais savoir comment je peux appeler une fonction de APPError dans APPController, de mon coté j'ai cette erreur:Fatal Error
Error: Call to undefined method UsersController::handleError()
voici mon code:
public function beforeFilter() {
$this->Security->blackHoleCallback = 'hackingFail';
$this->Auth->allow();
}
function hackingFail(){
//Enregistrement des tentatives de hack dans une table dédiée
$this->data = array(
'Hack' => array(
'location' => $this->referer(), //Page où la détection s'est effectuée
'who' =>$this->request->clientIp(false) //IP présumée du hacker
)
);
$this->loadModel('Hack');
$this->Hack->save($this->data);
//Appel à la fonction failHacking situé dans /app/Lib/AppError.php
$this->handleError('failHacking',$this->request->clientIp(false));
}
J'ai besoin de vos explications pour bien cerner cette coté.
Merci
je voudrais appeler la fonction function hackingFail() qui est dans /app/Lib/AppError.php pour pouvoir afficher l'erreur sur la page.
Salut,
d'après ce qu'on voit, ta fonction hackingFail() est dans le controlleur et elle est correctement appelée lorsqu'il y a un "hack". Par contre l'erreur est assez claire il me semble: la fonction handleError() n'existe pas (dans le controller).
ici, this fait référence au controller UserController donc tu n'appelle pas une fonction d'AppError mais bien du controller.
Ben à toi de voir ce que tu veux.
Déjà, là tu sauvegarder ce qu'a essayer de faire le "hacker" dans la bdd, perso j'aurais plutot tendance à logger l'erreur plutot.
Je pense qu'en suite tu peux simplement rediriger vers la page d'acceuil
function hackingFail($type){
$this->log("Tentative de hack '".$type."'. ip:". $this->request->clientIp(false) ." refere:".$this->referer());
$this->Session->setFlash("Qu'es ce que tu fais!?");
$this->redirect('/');
exit();
}
Merci pour le code mais j'ai un autre problème je n'arrive plus à me connecter, tous les formulaires ne marche plus