Hallo Carlson67,
$name und $passwort scheinen immer noch leer zu sein.
„scheinen“ ist keine gute Grundlage fürs programmieren. Von so etwas soll man sich überzeugen. Füge
print $name
und
print $passwort
ein, dann siehst Du, ob die Variablen leer sind, oder welchen Inhalt sie haben.
my($name, $passwort) = split(/&/, $Daten);
my ($name, $passwort) = split(/=/, $Daten);
Das ist ja schon der richtige Weg, aber leider fehlt noch etwas. Überlege mal, was nach dem ersten Befehl
my($name, $passwort) = split(/&/, $Daten);
in $name und $passwort steht. Wäre gut, wenn Du allein durch nachdenken darauf kommen würdest. Aber wenn nicht, dann sieh einfach mit print nach (s.o.)
Du wirst dann merken, daß Du in $name und $passwort erstmal ein Zwischenergebnis hast, oder genaugenommen zwei Zwischenergebnisse. Deshalb ist es zu früh, dies dort schon $name und $passwort zuzuweisen. Aber wie gesagt, sieh dir die Ausgabe an, dann fällt dir hoffentlich etwas ein.
Außerdem solltest Du in deinen Unterlagen nachsehen, welchen Zweck my in Perl hat. Ich habe den Eindruck, daß Du das noch nicht verstanden hast.
Der Server sendet mir immer folgende Fehlermeldung:
[Mon Apr 09 10:46:02 2012] [error] [client 127.0.0.1]
Premature end of script headers: passwortscript.pl
Das habe ich jetzt nicht extra nachgesehen. Aber sowas kommt meistens von Syntaxfehlern, vergessene Semikolons am Ende der Zeile, schliessende Klammern zu wenig (zu jeder öffnenden Klammer muss ja genau auch eine schliessende existieren) o.ä.
Es ist mir irgendwie schon peinlich, aber ich komme immer noch
nicht auf die Lösung.
Ein Tipp von mir: Schreibe mal ein kleines Hilfsskript, ohne HTML und das ganze drumherum. Konzentriere dich darin nur auf das auseinandernehmen dieser Zeile und analysiere durch print, was nach jedem skript passiert.
Daß die zu untersuchende Zeile „name=user1&passwort=braun“ heisst, steht ja fest. Also kannst Du dein Hilfs- oder Testskript so anfangen:
my zeile = "name=user1&passwort=braun"
my($help1, $help2) = split(/&/, $zeile);
print $help1;
print $help2;
...
praktischerweise kommen da noch weitere Zeilen, aber das musst Du selbst rausfinden. Wenn Du dadurch erkannt hast, wie die weiteren Zeilen lauten müssen, damit zum Schluß in der Variablen $name user1 und in der Variablen $passwort braun stehen, wirfst Du alle jetzt unnützen Zeilen (also die mit print) wieder raus und fügst den Rest in dein Ursprungsskript ein.
Diese Methode, erst mal alles Drumherum wegzulassen und sich auf das eine Problem zu beschränken, ist eine Möglichkeit, Lösungen zu finden.
Viele Grüße
Marvin