Guten Abend, ich versuche derzeit mittels eines Unterprogrammes zu ermitteln ob das eingegebene Passwort mit dem aus einem txt File übereinstimmt. Jedoch ändert sich der Returnwert nicht und bleibt immer 0.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | #!/bin/sh anm=cgi-bin/anm.txt auth() { fpasw=`grep "^$user:" $anm | awk -F: '{ print $2 }'` if [ -z "$user" ] || [ -z "$pass" ] ; then return 0 fi if [ "$fpasw" = "$pasw" ]; then return 1 fi if [ "$fpasw" != "$pasw" ]; then return 0 fi } if [ "$REQUEST_METHOD" = POST ]; then read -n $CONTENT_LENGTH query fi user=`echo $query | sed -e 's/\&/\n/g' | grep "user=" | awk -F= '{ print $2 }'` pasw=`echo $query | sed -e 's/\&/\n/g' | grep "pasw=" | awk -F= '{ print $2 }'` auth; auth1=$? echo -en "Status: 200 OK\r\n" echo -en "Content-Type: text/html; charset=UTF-8\r\n\r\n" echo "<head>" echo "<title>Anmeldung</title>" echo "</head>" echo "<form method=\"post\">" if [ "$auth1" == "1" ]; then echo "<input type=\"submit\" name=\"action\" value=\"OK\">" echo "<input type=\"submit\" name=\"action\" value=\"SMS senden\">" else echo "Username:<input type=\"text\" name=\"user\" value=\"$user\"><BR>" echo "Password:<input type=\"password\" name=\"pasw\" value=\"\"><BR>" echo "<input type=\"submit\" name=\"action\" value=\"Login\"><BR>" fi echo "</form>" if [ "$auth1" = "1" ]; then echo "Das PW ist richtig!<br>" else echo "Das PW ist FALSCH!<br>" fi |
Würde mich freuen, wenn jmd die Lösung meines Problems finden würde oder mir zumindest erklären kann, warums an einer einfachen if Abfrage scheitert.
Mfg