Bonjour , j'ai un problème pour récupérer les comptes créés dans la google sheet. J'arrive à créer un compte utilisateur mais je n'arrive pas à récupérer le compte de l'utilisateur pour se connecter .Pouvez vous m'aider
voila mon Apps Script
function doGet(e) {
return informationenfant(e);
}
function doPost(e) {
return informationenfant(e);
}
function informationenfant(e) {
if(e.parameter.func=="Create") {
var ss = SpreadsheetApp.openById(e.parameter.ID);
var sh = ss.getSheetByName(e.parameter.SH);
var data =[e.parameter.nom, e.parameter.motdepasse, e.parameter.confirmemotdepasse, e.parameter.ville ];
sh.appendRow(data);
return ContentService.createTextOutput("compte créé");
}
if (e.parameter.func == "Login") {
var message = "";
var ss = SpreadsheetApp.openById(e.parameter.ID);
var sh = ss.getSheetByName(e.parameter.SH);
var rg = sh.getName() + "!" + sh.getDataRange().getA1Notation();
var sql = e.parameter.query;
var qry = '=query(' + rg + ',\"' + sql + '\",0)';
var ts = ss.insertSheet();
var setQuery = ts.getRange(1,1).setFormula(qry);
var getResult = ts.getDataRange().getValues();
ss.deleteSheet(ts);
if (getResult[0][0] == "#N/A") {
message = 'nom inconnue';
} else {
if (getResult[0][1] != e.parameter.pwd) {
message = 'mot de passe incorrect';
} else {
message = 'connecté';
}
}
return ContentService.createTextOutput(messge);
}
}
dans mon champs vide j'ai rajouté "compte créé".
Par contre maintenant j'arrive à créer un compte et à se connecter, mais le problème c'est que quand je rentre un nom et un mot de passe que je n'est pas créé je peux me connecter quand même alors que je n'est pas créé de compte ? y a t'il un problème dans mon Script ou dans mes blocs ?
bonjour, je reviens pour de l'aide car je n'arrive pas à corriger mes blocs par rapport à mon Script sheet (voir plus haut) pour une connexion réussie , j'ai essayé les exemples mais je suis perdue je mélange tout et je ne trouve pas les fichiers HTML, donc si quelqu'un peut juste me corriger ce que j'ai déjà fais .... merci
holala!!! c'est encore plus compliqué, mais je n'ai pas besoin de hachage pour le mot de passe pour le moment (par contre je m'en servirais plus tard de vos exemples) , c'est pour cela que je souhaite juste modifier mes blocs si c'est possible, merci
well, it is a nice working solution and it includes password hashing... you might think you as developer do not need this but your users definitely will... I would never use an app which does not protect my passwords...
let me suggest you to include that solution into your project...
oui je suis d'accord , mais pour le moment ce n'est pas utile car ce ne sont pas des mots de passe importants (je vais juste utiliser des noms simple) . Je l'utiliserais plus tard quand cela sera utile pour mon application , ne vous inquiétez pas !
j'ai essayé un exemple mais il y a un problème , je peux créer un utilisateur et aprés l'utilisateur ne peut pas se connecter j'ai une notification qui dit " incorrect Login" ?
voici le script
function doGet(e) {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName("Sheet1");
var sh = ss.getSheetByName("Sheet2");
if ( e.parameter.func == "register" ) {
var nom = e.parameter.nom ;
var motdepasse = e.parameter.motdepasse ;
sheet.appendRow([nom,motdepasse]);
return ContentService.createTextOutput("Nouveau compte");
}
else if ( e.parameter.func == "testLogin" ) {
var msg = "Incorrect Login";
var nom = e.parameter.nom;
var motdepasse = e.parameter.motdepasse;
var loginData = sheet.getDataRange().getValues();
for ( var i = 0; i < loginData.length; ++i ) {
if ( nom === loginData[i][0] && motdepasse === loginData[i][1] ) {
msg = "connecté";
}
}
return ContentService.createTextOutput(msg);
}
else if (e.parameter.func == "report") {
var nom = e.parameter.nom ;
var date = e.parameter.date ;
var data = e.parameter.data ;
sh.appendRow([email,date,data]);
return ContentService.createTextOutput("validé");
}
}
Replace the three instances of ++i with i++. It seems to work either way, but i++ is the correct syntax. (This was an error in the script I posted, so sorry about that)
Replace your === with ==. Three equal signs might be too strict for the comparison....
else if ( e.parameter.func == "supprimer" ) {
var nom = e.parameter.nom;
var motdepasse = e.parameter.motdepasse;
var loginData = sheet.getDataRange().getValues();
for (var i = 0; i < loginData.length; i++ ) {
if ( nom == loginData[i][0] && motdepasse == loginData[i][1] ) {
msg = "supprimé";
sheet.deleteRow(parseInt(nom,motdepasse);
}
return ContentService.createTextOutput("compte supprimé");
else if ( e.parameter.func == "supprimer" ) {
var nom = e.parameter.nom;
var motdepasse = e.parameter.motdepasse;
var loginData = sheet.getDataRange().getValues();
for (var i = 0; i < loginData.length; i++ ) {
if ( nom == loginData[i][0] && motdepasse == loginData[i][1] ) {
msg = "supprimé";
sheet.deleteRow(parseInt(nom,motdepasse));
}
return ContentService.createTextOutput("compte supprimé");