Seine Abfrage lautet if(strlen(Text) < 4 || strlen(Text) > 64), du möchtest das diese
if(strlen(Text) < 4 && strlen(Text) > 64) so aussehen soll.
Gehen wir das Szenario mal durch, mit if(strlen(Text) < 4 && strlen(Text) > 64):
Setzen wir mal Text auf 1.
Laut deiner Abfragen wird geprüft, ob der Text kleiner als 4 ist und gleichzeitig größer als 64.
Text < 4 trifft ein, Text > 64 nicht, da Text gleich 1 ist. Es wird nicht returned und auch keine Meldung abgegeben, da beide Bedingungen nicht erfüllt wurden.
Text ist jetzt 70.
Text < 4 trifft nicht zu, da Text gleich 70, Text > 64 trifft zu. Es wird nicht returned und auch keine Meldung abgegeben, da beide Bedingungen nicht erfüllt wurden.
Text ist jetzt 40 (also im erlaubten Bereich).
Text < 4 trifft nicht zu, da Text gleich 40, Text > 64 trifft nicht zu, da Text gleich 40. Es wird nicht returned und auch keine Meldung abgegeben, da beide Bedingungen nicht erfüllt wurden. (Hier würde es zwar funktionieren, aber nicht wie es soll.
__
Gehen wir das Szenario mal durch, mit if(strlen(Text) < 4 || strlen(Text) > 64):
Setzen wir mal Text auf 1.
Laut der Abfragen wird geprüft, ob der Text kleiner als 4 oder größer als 64.
Text < 4 trifft ein, Text > 64 nicht, da Text gleich 1 ist. Es wird returned und auch eine Meldung abgegeben, da eine Bedingungen von zwei erfüllt wurden.
Text ist jetzt 70.
Text < 4 trifft nicht zu, da Text gleich 70, Text > 64 trifft zu. Es wird returned und auch eine Meldung abgegeben, da eine Bedingungen von zwei erfüllt wurden.
Text ist jetzt 40 (also im erlaubten Bereich).
Text < 4 trifft nicht zu, da Text gleich 40, Text > 64 trifft nicht zu, da Text gleich 40. Es wird nicht returned und auch keine Meldung abgegeben, da keines der Bedingungen erfüllt wurden. Weiter geht es hier wie gewünscht.
Edit:
Alternativ würde zwar if(strlen(Text) > 4 && strlen(Text) < 64) funktionieren, müsste aber in einem Block gesetzt werden und in der else die Meldung abgeben.