Struppi: es geht,aber...

Beitrag lesen

Hallo Alain

hi,

my $username = CGI::param('user') || '0';
?

Nein, wenn du in das Formular eine null eingibst (und es ist ein gültiger Wert), dann wird aus der null ein Leerstring. Falls die null ein gültiger Wert ist, musst du sowas machen:

my $username = defined CGI::param('user') ? CGI::param('user')  :'' ;

versteh ich das jetzt richtig,dass ''; heisst das "rein gar nichts"?
Wenn ja,Heisst das auch das "rein gar nichts" dem script einen true wert zurückgibt?

Nein.

Du hast offensichtlich immer noch nicht den Unterschied eines definierten Wertes und eines falschen Wertes verstanden.

Wenn ein Formularfeld nicht ausgefüllt wird und das Formular trotzdem abschickt wird ist:

print CGI::param('name') ? 'definiert' : 'undefniert';

undefiniert

Wird eine null eingetippt ist:
print CGI::param('name') ? 'definiert' : 'undefniert';

auch undefiniert

Wenn gar nichts eingegeben wird ist:

my $name = CGI::param('name') || '';

$name ein leerer String aber definiert, d.h. du kannst die Länge abfragen ohne Fehlermeldung.

Nehmen wir an ich würde da eine '1'; reinschreiben,würde das script dies als zahl eins sehen,ich meine könnte man dann
die zahl '1' als unwahr deklarieren z.B. mit lenght?Eigentlich möchte ich das so haben.Das was nach dem :''; kommt sollte einen fehler verursachen im script.

Das ist Quatsch.

: '' ist lediglich dazu da, das kein undefinierte Eingabe erfolgt und du die Länge überprüfen kannst.
Wenn du da eine 1 hinschreibst, würde das bedeuten, das du eine 1 als Defaultwert (bei keiner Eingabe) haben möchtest, was ich sehr bezweifle.

keine Ahnung was AD ist. Falls du irgendwelche Bots meinst, die sich einloggen und nicht dürfen, solltest du einfach den Refferer prüfen, ob die Eingabe von einem guten Formular kommt.

AD ist ein programm,mit dem man htaccess geschütze seiten durchscannen kann mit sog. wordlisten,mit div. einträgen von verschiedenen
user1:pass1
user2:pass2 daten.Theoretisch kann man auch ein loginscript so angreifen und was der referrer betrifft,das kann AD auch vortäuschen bzw. mitsenden.
Mir wäre daher lieber wenn das script abbricht,als dass es diese art von exploiding akzeptiert,weils so fehlerlos ist.

Das geht nicht. Wenn ein Skript den Referrer fälscht und dem Skript gültige Werte übermittelt kannst du das nicht verhindern.

Struppi.