Welcome, Guest
Username: Password: Remember me

TOPIC: Comment ne pas stocker les réponses?

Comment ne pas stocker les réponses? 2 years 9 months ago #69447

  • Ben_V
  • Ben_V's Avatar
  • OFFLINE
  • Platinum Lime
  • Posts: 1067
  • Thank you received: 235
  • Karma: 74
Bonjour à tous,

Quelqu'un connait-il un moyen (genre dans les 'optional settings' ou un autre fichier de config) de déshabiliter l'écriture des réponses dans la base ?

En fait j'ai une plateforme, dont la finalité est uniquement de donner un score ou une évaluation en fin de session et je dois donc effacer régulièrement de la base 100% des réponses...(ou alors il faudrait que je m'oriente vers un script qui le fasse à ma place..)

Merci d'avance
Ben.
Benoît

goo.gl/Bw5iM => Recherche GG dans le forum français (remplacer "exemple" dans la barre de recherche)
goo.gl/WX8PH => GG search for english forum (Replace "example" in the search bar)
goo.gl/IxiGu => Búsqueda en el foro en español (Cambiar "ejemplo" en la barra de...
The administrator has disabled public write access.

Re: Comment ne pas stocker les réponses? 2 years 9 months ago #69449

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6252
  • Thank you received: 799
  • Karma: 239
Aucune méthode existante,

La seule chose que je verrais serait de se servir d'un script ajax à la fin du questionnaire pour effacer toutes les réponses du questionnaires en question.

Le script n'a besoin de rien, et c'est juste une requète "TRUNCATE TABLE", pas trop lourd :).

Denis
The administrator has disabled public write access.

Re: Comment ne pas stocker les réponses? 2 years 9 months ago #69451

  • Ben_V
  • Ben_V's Avatar
  • OFFLINE
  • Platinum Lime
  • Posts: 1067
  • Thank you received: 235
  • Karma: 74
Merci Denis...
Une précision car les doutes arrivent...
quand tu dis "à la fin du questionnaire", tu parles bien du survey lui-même pas de l'index.php? (faut bien renseigner le nom de la table quelquepart...)
TRUNCATE TABLE table_name
Si tu vois une syntaxe évidente... ce n'est pas encore mon cas mon pour l'instant ! :huh:
Benoît

goo.gl/Bw5iM => Recherche GG dans le forum français (remplacer "exemple" dans la barre de recherche)
goo.gl/WX8PH => GG search for english forum (Replace "example" in the search bar)
goo.gl/IxiGu => Búsqueda en el foro en español (Cambiar "ejemplo" en la barra de...
Last Edit: 2 years 9 months ago by Ben_V.
The administrator has disabled public write access.

Re: Comment ne pas stocker les réponses? 2 years 9 months ago #69452

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6252
  • Thank you received: 799
  • Karma: 239
Salut,

Dans le endpage.pstpl ou le message de fin, tu lance un script php ne ajax.
$.ajax({
  url: 'vide.php'
});

Ton fichier vide.php comprenant le script supprimant les données de la table.

Il faut bien sur que le scriopt contiennet les données de connexion et le nom de la table en brut.

Après il est possible de passer le numéro du questionnaire via les paramètres ajax, mais dans ton cas, je ne pense pas que tu en es besoin :).

api.jquery.com/category/ajax/

Denis :)

PS : Si le questionnaire a beaucoup d'accès, vérifie que la suppression de toutes les données en cours de réponse à un questionnaire ne pose pas de problème, il me semble que tout est dans la session mais bon.
PS2: attention de protéger un minima vide.php ( en tous cas de ne pas envoyer d'information tel un mot de passe).
PS3: il est possible de récupérer toutes les méthodes de connexion de LS, ca va plus vite ;).
Last Edit: 2 years 9 months ago by DenisChenu.
The administrator has disabled public write access.

Re: Comment ne pas stocker les réponses? 2 years 9 months ago #69455

  • Ben_V
  • Ben_V's Avatar
  • OFFLINE
  • Platinum Lime
  • Posts: 1067
  • Thank you received: 235
  • Karma: 74
Ok c'est clair..
Dès que j'ai un peu de temps j'essaie en local..
Pas de raison pour que a ne fonctionne pas!
Effectivement avec ce genre d'additifs faut bien penser à ne pas ouvrir une brèche dans la sécu de la base!

En attendant je continuerai à vider les tables à mano dans phpMyAdmin

Merci bien en tous cas !
Benoît

goo.gl/Bw5iM => Recherche GG dans le forum français (remplacer "exemple" dans la barre de recherche)
goo.gl/WX8PH => GG search for english forum (Replace "example" in the search bar)
goo.gl/IxiGu => Búsqueda en el foro en español (Cambiar "ejemplo" en la barra de...
The administrator has disabled public write access.

Re: Comment ne pas stocker les réponses? 2 years 9 months ago #69458

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6252
  • Thank you received: 799
  • Karma: 239
C'est pour cela que le mieux est de le faire sans aucune réception de données.

Tu ne récupère aucune info en GET/SESSION/POST.
Tu fait ta bidouille dans le fichier, tu ne renvoi que TRUE ou FALSE.
Tu t'assure que ca ne pose aucun problème si c'est lancé 100 fois à la suite

Testé et validé ici :http://demonstration.sondages.pro/56159/lang-fr ( meri pour le questionnaire ;) )

Le script php:
<?php
require_once(dirname(__FILE__).'/config-defaults.php');
require_once ($rootdir.'/classes/adodb/adodb.inc.php');
 
$thissurvey = '56159';
 
 
$DB = NewADOConnection($databasetype);
$DB->Connect($databaselocation, $databaseuser, $databasepass, $databasename);
 
$result = $DB->Execute("TRUNCATE TABLE ".$dbprefix."survey_".$thissurvey);
if ($result){return TRUE;}else{return FALSE;}
Si on passe le surveyid via un GET, il faudra vérifier que c'est bien un questionnaire de type supprimable.

Et l'impression des réponses ne fonctionne pas, bien sur.

Denis
Last Edit: 2 years 9 months ago by DenisChenu.
The administrator has disabled public write access.

Re: Comment ne pas stocker les réponses? 2 years 9 months ago #69469

  • Ben_V
  • Ben_V's Avatar
  • OFFLINE
  • Platinum Lime
  • Posts: 1067
  • Thank you received: 235
  • Karma: 74
Muchas Graciàs Denis,
...parce que j'avais réussi la manip sur tes conseils précedents mais, si mon vide.php fonctionnait, il me faisait peur à moi-même :lol:
<?php
$databaselocation = "localhost";
$databaseuser = "toto";
$databasepass = "tata";
$databasename = "survey_190";
$query = "TRUNCATE lime_survey_62894";
 
	//Connect to MySQL Server
mysql_connect($databaselocation, $databaseuser, $databasepass);
	//Select Database
mysql_select_db($databasename) or die(mysql_error());
	//Build query
mysql_query("$query");
?>
Pour le problême de l'impression on peut toujours appeler le script à la fin de printanswers.psptl.... (si il y a une personne sur 10 qui imprime, elle fera le boulot pour les autres... ce n'est pas très grave...)

Merci encore!
Ben.
Benoît

goo.gl/Bw5iM => Recherche GG dans le forum français (remplacer "exemple" dans la barre de recherche)
goo.gl/WX8PH => GG search for english forum (Replace "example" in the search bar)
goo.gl/IxiGu => Búsqueda en el foro en español (Cambiar "ejemplo" en la barra de...
Last Edit: 2 years 9 months ago by Ben_V.
The administrator has disabled public write access.
Moderators: Nickko
Time to create page: 0.321 seconds
Donation Image