Seite 1 von 2

Re: Cgi Skript leitet weiter aber dann error

Verfasst: Samstag 21. März 2020, 00:40
von __blackjack__
@Mister: `pwrd` und `usrnm`? Was soll dass denn? Klopapier ist knapp, aber an Buchstaben auf Kosten der Verständlichkeit braucht man wirklich nicht sparen.

Die Vergleiche mit ``== True`` sind unnütz, der Ausdruck davor liefert ja bereits einen Wahrheitswert.

Das ``if``-Konstrukt ist zudem so regelmässig und einfach, dass man das durch ein Wörterbuch ersetzen sollte das Name und Passwort auf den Pfadteil abbildet.

Namen schreibt man in Python klein_mit_unterstrichen. Ausnahmen sind Konstanten (KOMPLETT_GROSS) und Klassen (MixedCase). Also `new_url` statt `newURL`.

Code: Alles auswählen

#!/usr/bin/python3
import cgi
import cgitb

cgitb.enable()
response = """Content-type: text/html; charset=utf-8

<html>
<head>
  <title>Login..</title>
  <meta http-equiv="refresh" content="2;URL={}">
</head>
<body>Login...</body>
</html>"""

credentials_to_path = {
    ("peter", "abc"): "mainpeter",
    ("fritz", "def"): "mainfritz",
}

form = cgi.FieldStorage()
path = credentials_to_path.get(
    (form.getvalue("username"), form.getvalue("password")), "error_login"
)
print(response.format("users_lib/{}.html".format(path)))
Den Fehlermeldungen nach scheint die HTML-Datei auf die umgeleitet wird als CGI-Skript angesehen zu werden und nicht als HTML-Datei.

Hat eigentlich schon mal jemand erwähnt, dass man heutzutage kein CGI mehr macht? Die Anbindung du jour heisst WSGI. Und es gibt da auch wirklich ganz kleine Rahmenwerke. Neben Flask beispielsweise auch Bottle. Das ist nur eine einzige Datei.

Re: Cgi Skript leitet weiter aber dann error

Verfasst: Samstag 21. März 2020, 01:51
von Mister
Ja wie gesagt war das halt so in dem python Buch gezeigt und eswegen habe ich es so gemacht
Aber ich schaue mit bottle usw mal an

Re: Cgi Skript leitet weiter aber dann error

Verfasst: Montag 23. März 2020, 01:32
von Mister
Nur ist der cgi skript garnicht das Problem glaube ich. Der leitet mich nämlich immer korrekt weiter und der richtige URL wird aufgerufen. Nur nach dem Aufruf kommt dann der Error. Die HTML Datei ist auch nicht beschädigt oder fehlerhaft, man kann sie in ihrem Verzeichnis öffnen. Nur der Aufruf über den Server scheitert, aber nicht weil es nicht vorhanden ist sondern wegen etwas anderem. Was könnte das sein???

Re: Cgi Skript leitet weiter aber dann error

Verfasst: Montag 23. März 2020, 07:06
von Sirius3
Du hast apache so konfiguriert, dass er alle Seiten als CGI interpretiert. Hat __blackjack__ schon vermutet. Ohne die Konfigurationsdatei zu kennen, kann das natürlich niemand sicher sagen.

Re: Cgi Skript leitet weiter aber dann error

Verfasst: Montag 23. März 2020, 13:26
von Mister
Aber meine ganzen anderen Seiten die auf dem Server miteinander verlinkt sind funktionieren alle. Nur diese beiden Seiten nicht

Re: Cgi Skript leitet weiter aber dann error

Verfasst: Montag 23. März 2020, 13:42
von Sirius3
Toll, das hilft uns jetzt viel weiter.

Re: Cgi Skript leitet weiter aber dann error

Verfasst: Montag 23. März 2020, 15:08
von __blackjack__
@Mister: Sind die beiden Dateien eventuell auf ausführbar gesetzt? Liegen die im gleichen Verzeichnis wie all die anderen Seiten die funktionieren?

Re: Cgi Skript leitet weiter aber dann error

Verfasst: Montag 23. März 2020, 18:04
von Mister
__blackjack__ hat geschrieben: Montag 23. März 2020, 15:08 @Mister: Sind die beiden Dateien eventuell auf ausführbar gesetzt?
Jetzt nicht mehr, ich hatte das eingestellt in der Hoffnung es würde helfen..
__blackjack__ hat geschrieben: Montag 23. März 2020, 15:08 Liegen die im gleichen Verzeichnis wie all die anderen Seiten die funktionieren?
Nein

Re: Cgi Skript leitet weiter aber dann error

Verfasst: Montag 23. März 2020, 18:05
von Mister
Sirius3 hat geschrieben: Montag 23. März 2020, 13:42 Toll, das hilft uns jetzt viel weiter.
Schön

Re: Cgi Skript leitet weiter aber dann error

Verfasst: Montag 23. März 2020, 18:31
von noisefloor
Hallo,

"funktioniert nicht" und "funktioniert woanders" sind nun mal keine brauchbaren Ansätze, dir konkret Hilfe zu geben. Wenn du deine Apache Konfig nicht hier posten willst - ok, deine Sache. Nur kann dir dann keiner helfen.

Was in sofern aber vorteilhaft wäre, als dass du schneller weg von die CGI-Mist kommst und dich zu der leuchtenden WSGI-Seite hin begibst ;-)

Gruß, noisefloor

Re: Cgi Skript leitet weiter aber dann error

Verfasst: Dienstag 24. März 2020, 01:02
von Mister
OK mach ich
Mittlerweile hab ich es auch zum laufen gebracht indem ich ein http:// und die Server IP davor gesetzt habe im python skript
Danke für die hilfe

Re: Cgi Skript leitet weiter aber dann error

Verfasst: Dienstag 24. März 2020, 06:18
von Sirius3
"/users_lib/"+path+".html" soll also ein absoluter Pfad sein. Und wie verhindert die Passwortabfrage, dass man direkt auf /users_lib/mainpeter.html zugreift?

Re: Cgi Skript leitet weiter aber dann error

Verfasst: Dienstag 24. März 2020, 11:53
von Mister
Garnicht und das ist auch noch ein Problem aber wenigstens funktioniert mein erster cgi skript

Re: Cgi Skript leitet weiter aber dann error

Verfasst: Dienstag 24. März 2020, 12:48
von __blackjack__
@Mister: Komische Definition von ”funktionieren” wenn die Funktion einer Anmeldung nicht erfüllt wird. 🤔

Re: Cgi Skript leitet weiter aber dann error

Verfasst: Dienstag 24. März 2020, 12:51
von noisefloor
Hallo,

na ja, wenn die Passwortabfrage sinnlos ist, weil einfach zu umgehen, dann würde ich nicht wirklich sagen, dass das Skript funktioniert. Es sei denn, du definierst "funktioniert" als "läuft ohne Fehler durch".

Wenn du endlich ein Webframework verwenden würdest hättest du das Problem nicht, weil die Frameworks i.d.R. fertigen Methoden und Dekoratoren für die Nutzerauthentifizierung haben.
Dich weiter mit CGI zu befassen ist Verschwendung von Lebenszweit.

Gruß, noisefloor