ERREUR avec la GOOGLE SHEET

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);

}

}

mes blocs

Tidied up your script:

code.js.txt (1.2 KB)

Also, have a look at how you handle the message returns in Web.GotText:

image

Your script should be returning a message for Create and Login...?

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 ?

You do not appear to be testing the query response for a successful/unsuccessful login in your blocks.

This might help you:

j'ai fais ça dans mes blocs mais ça ne fonctionne pas

est il possible de me corriger mes blocs , car avec l'exemple que vous m'avez envoyé il faut que je recommence tout depuis le début

avez vous eu le temps de regarder ou est le problème de la connexion réussie ou pas ?

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

You might try this:

You can ignore the password reset feature if you want....

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...

Taifun

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é");
}
}

et les blocs

Two things in your script:

  1. 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)

  2. Replace your === with ==. Three equal signs might be too strict for the comparison....

Super ça fonctionne , merci (ne soyez pas désolé car c'est déjà génial que vous m'aidez)

bonjour, j'ai une autre question , comment faire si je veux ajouter un bouton SUPPRIMER ?

What do you want to DELETE?

j'ai fais ça mais ça ne fonctionne pas ?

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é");

You want to delete a user on the system.

Do similar to login, find the correct row in the data (you will need to add 1), then delete the row in the spreadsheet.

j'ai fais ça mais ça ne fonctionne pas ?

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é");

:question:

try:
sheet.deleteRow(i+1);