Je sais comment activer CSRF dans les formulaires dans CodeIgniter, cependant je ne suis pas sûr de savoir comment mettre en œuvre cette fonctionnalité dans CodeIgniter classic link (par exemple pour ajouter/supprimer des messages privés, des messages, etc. dans la zone d'administration).
J'utilise maintenant quelque chose comme ceci :
VIEW
<?php echo anchor('account/delete_private_message/'.$obj->pmID, 'delete mesage', array('onclick' => 'return confirm(\'Do you really want to delete this private message?\');', 'class' => 'delete-message-button')); ?>
CONTRÔLEUR
function delete_private_message($pmID = '')
{
$deleted_pm = $this->account_model->delete_pm($pmID);
if($deleted_pm)
{
$this->session->set_flashdata('status', 'PM was deleted successfully');
}
else
{
$this->session->set_flashdata('status', 'Error');
}
redirect('account/private_messages');
}
MODÈLE
function delete_pm($pmID)
{
$return = 0;
if(!empty($pmID))
{
$this->db->where('pmID', $pmID);
$result = $this->db->delete('private_messages');
}
return $result;
}
Et si l'utilisateur clique sur OK dans la fenêtre contextuelle, le message est supprimé.
La question est de savoir comment ajouter un jeton au lien et à la session de l'utilisateur, comment le vérifier, etc. Je ne sais pas comment faire pour que cela fonctionne correctement.
EDIT : Je suppose que je dois ajouter le jeton généré à la fin du lien comme suit :
account/delete_private_message/1239/dfdf6e7re67a6e87r6e87r69876bn3
et la valeur dfdf6e7re67a6e87r6e87r69876bn3 également dans la session de l'utilisateur actuel et les vérifier dans le contrôleur. Cependant, je ne sais pas ce que je dois faire exactement. Donc, toute aide est appréciée.