Christoph Schnauß: Gästebuchscript in Perl/mit MySQL - Adminfunktion

Beitrag lesen

guten Morgen nochmals,

Der Wert von $hash_ref->{'id'} soll übergeben werden, damit der/die jeweilige(n) Eintrag/Einträge im Unterprogramm aus der Datenbank gelöscht werden kann/können.

Es geht also nicht nur darum, daß jemand im Formular seine gerade gemachten Eingaben widerrufen können darf, sondern darum, per Script bereits vorhandene Datenbankeinträge zu löschen? Sowas ist durchaus möglich, nur sind die Scriptbestandteile, die du gepostet hast, an den Stellen, die $hash_ref betreffen, unproblematisch. Wie, warum, an welcher Stelle im Script erhält es denn seine/n Wert/e?
Wenn $hash_ref überhaupt irgendwelche Werte an &delete() übergeben soll, so zeigt dein bisheriges Snipplet nur eine Zeile dazu, und die ist als einzelne Zeile ebenfalls unproblematisch  -  im Zusammenhang des gesamten Scripts aber möglicherweise fehlerhaft.

Die Fehlermeldung im log "Global symbol "$hash_ref" requires explicit package name at D:\Server\Apache2\cgi-bin\gaestebuch.pl line 311" sollte ziemlich zuverlässig sein. Aber du hast nicht gesagt, was genau nun in Zeile 311 deines Scripts steht bzw. welche der von dir geposteten Zeilen die Nummer 311 ist. Dasselbe trifft auf Zeile Nummer 72 zu.

Richtig ist auf jeden Fall, daß du bei offenbar deutlich über 311 Scriptzeilen versucht hast, nur die Stellen anzugeben, die dir problematisch erschienen sind. Es sieht allerdings so aus, als gäbe es noch mehr Stellen im Script, an denen man nachschauen müßte  -  eventuell "klemmt" es ja bereits im aufrufenden Formular. Das kann den "lesbaren" Umfang eines Forumspostings deutlich übersteigen, daher ist es vielleicht günstiger, wenn du dein gesamtes Script mal als temporäre Textdatei hochlädst und die URL hier angibst, damit man mal den Zusammenhang sehen kann. Das "listing" dabei bitte nicht vergessen, weil bestimmt nicht jeder Lust hat, erstmal bis 311 zu zählen ...

Meine vorhin gemachte Anmerkung bleibt davon unberührt.

Das ändert nichts. $hash_ref->{'id'} scheint nicht übergeben zu werden, was ich an der zweiten Zeile der Fehlermeldung zu erkennen glaube?!

Obwohl ich nicht genau weiß, was denn die "zweite Zeile" ist, bin ich ähnlicher Ansicht, wie du ja aus meinen Anmerkungen herauslesen kannst. Aber was dagegen zu tun ist, erschließt sich mir (noch) nicht.

Christoph S.