ja,
so sollte es auch sein.
auf user name wird noch nicht geprüft in dieser debug-Version, hier werden noch alle möglichen Eingaben akzeptiert.
yy
ist dann auch das korrekte Passwort für alle User.
allerdings wird eben auch
yy67
als korrekt akzeptiert, was nicht sein dürfte (IMO)
- - - Aktualisiert - - -
PS,
Finden kann er hier uname und struname auch noch nicht im html string, da dort ja '?uname=' steht und nicht '&uname=', was aber nachrangig ist, da ja auch noch nicht darauf geprüft wird.
- - - Aktualisiert - - -
PS,
hier ist die neue cstringarg Version mit testcode, wo auch ?varname= neben &varname= akzeptiert wird:
Code:int16_t strstrpos(char * haystack, char * needle) // find 1st occurance of substr in str { char *p = strstr(haystack, needle); if (p) return p - haystack; return -1; // Not found = -1. } //---------------------------------------------------------------------------- const int MAXLEN = 1024; const int TOKLEN = 64; char * cstringarg( char* haystack, char* vname, char* sarg ) { int i=0, pos=-1; unsigned char ch=0xff; char kini[3] = "&"; // start of varname: '&': char kequ[3] = "="; // end of varname, start of argument: '=' char needle[TOKLEN]=""; // complete pattern: &varname=abc1234 strcpy(sarg,""); strcpy(needle, kini); strcat(needle, vname); strcat(needle, kequ); pos = strstrpos(haystack, needle); if(pos==-1) { needle[0]='?'; pos = strstrpos(haystack, needle); if(pos==-1) return sarg; } pos=pos+strlen(vname)+2; // start of value = kini+vname+kequ while( (ch!='&')&&(ch!='\0') ) { ch=haystack[pos+i]; if( (ch=='&')||(ch==';')||(ch==' ')||(ch=='\0') ||(ch=='\n') ||(i+pos>=strlen(haystack))||(i>TOKLEN-1) ) { sarg[i]='\0'; return sarg; } if( (ch!='&') ) { sarg[i]=ch; i++; } } return sarg; } void setup() { Serial.begin(115200); Serial.println(); Serial.println("Test mit cstringarg()"); Serial.println(); char htmlstring[1024]="html teststring evtl mit Fehlern ?upwd0=QMARKupwd0&upwd1=testupwd1&upwd2=testupwd2 &upwd13=testupwd13&upwd224=testupwd224 EndeTststring"; char argstring[64]=""; cstringarg(htmlstring, "upwd0", argstring); Serial.print("upwd0 >>"); Serial.print(argstring); Serial.println("<< soll: >>QMARKupwd0<<"); cstringarg(htmlstring, "upwd1", argstring); Serial.print("upwd1 >>"); Serial.print(argstring); Serial.println("<< soll: >>testupwd1<<"); cstringarg(htmlstring, "upwd2", argstring); Serial.print("upwd2 >>"); Serial.print(argstring); Serial.println("<< soll: >>testupwd2<<"); cstringarg(htmlstring, "upwd13", argstring); Serial.print("upwd13 >>"); Serial.print(argstring); Serial.println("<< soll: >>testupwd13<<"); cstringarg(htmlstring, "upwd224", argstring); Serial.print("upwd224 >>"); Serial.print(argstring); Serial.println("<< soll: >>testupwd224<<"); cstringarg(htmlstring, "upwd9", argstring); Serial.print("upwd9 >>"); Serial.print(argstring); Serial.println("<< soll: >><< (// not found)"); } void loop() { }







Zitieren

Lesezeichen