Ich habe mir noch mal die Mühe gemacht, und alles so wie du empfiehlst eingegeben. Leider geht es auf deine Weise nicht.
Natürlich geht das.
Ich könnte schreiben: Nein! aber du glaubst es ja eh nicht.
Natürlich geht das, ich hab es ebenfalls ausprobiert und selbst deine Version ist sogar strict
Ich kann nur meine Tests schildern: use strict; - nix geht mehr!
Wenn ich an all die alten Perl Threads von dir denke, dann ist in deinem Code so wenig von dem drin, was wir dir ermpfohlen hatten, dass es wirklich müsig ist sich Gedanken zu machen.
? In dem Code ist so gut wie gar nichts drin. Nur ein paar Skalare und HTML-Ausgabe. Was soll dabei professionell drinne sein?
Du bindest CGI::Cookie ein und erzeugst daraus ein Objekt. Das ist nicht nötig, das Modul wird bereits vom Modul CGI eingebunden.
Ich habe keine Ahnung, ob das nörig ist, oder nicht. Ich kann hier nur testen. Und der Test hat gezeigt, daß alle Versionen die ich im Internet fand, und die hier vorgeschlagen wurden immer nur eines können: Entweder ein Cookie oder ein HTML-Kopf. Ich kann doch nichts dafür, wenn es nur so wie in meinem Code steht, funktioniert.
Das du das so benutzt: use CGI qw(:standard); zeigt, dass du nicht weißt was du tust.
Auch da gebe ich dir völlig recht - ich habe keine genaue Vorstellung über Module. Warum ich das zusätzlich im Code habe? -> Weil wenn ich es herausnehme, funktioniert es wieder nicht mit Cookie und HTML-Head.
Es steht im Code, weil ein Test ohne diese Zeile nicht zum Erfolg führte.
Wie oben geschrieben: Ich kann nur Programmieren, und schauen, was er macht.
Das Cookie Objekt wird von der Funktion Cookie->cookie() erzeugt, dass musst nicht du machen.
Du magst ja recht haben, bei dir wird das so sein - ich galaube dir! Hier gilt es aber nicht- warum auch immer.
Neben den oben erwähnten Mängeln muss eines dazu gesagt werden: BENUTZE FUNKTIONEN!!!!!
Sowas ist furchtbar und da war es schon zu Zeiten des C64
###############
Datenfilter
###############
$anrede =~ s/;//g;
$vorname =~ s/;//g;
$name =~ s/;//g;
[...]
12 Mal der gleiche Code, vor allem warum filterst du nur den Strichpunkt?
- So hab ich Zugriff auf jede einzelne Filteroption - ist doch eher ein Vorteil.
- Weil ich fast ausschließlich mit csv-Dateien arbeite, und diese von mir naturgemäß mit Semikolon getrennt werden. Was ein vom Benutzer eingegebenes Semikolon in einer csv - Datei anrichten kann ist klar.
#############
HTML-Kopf
#############
print CGI->header(-type=> 'text/html', -cookie=>$cookie1);Hier benutzt du eine Funktion des sehr grossen CGI.pm Modul.
Die habe ich von MaekItalo abgekupfert und weiter umgebaut, bis es endlich geklappt hat.
Ich hab dir in dem Thread schon mehrmals einen Link auf die Dokumentation gezeigt. Wenn du sie gelesen hättest, würdest du sehen, dass das Modul noch viel, viel mehr kann,
Die Perl-Zwiebelknolle ist bei mir im Browser oben als Quicklink angelegt. Da lese ich öfters mal was nach. Leider nütz die Doku auch nicht immer: Da sind oft Platzhalter oder Optionen mit angegeben, die man nicht so einfach begreift. Oftmals setzt die Doku auch voraus, das gewisse einbindungen von Modulen bereits gemacht worden sind. Aber nicht genau wie man das macht.
Und stellenweise ist sie auch noch unverständlich geschrieben.
das fängt an hier:
print qq(<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">),"\n";
print qq(<html>),"\n"; [...]
print qq(</head>),"\n";Den ganzen Header Kram kann das CGI Modul besser und schöner (wobei die meisten meta Angaben völlig überflüssig sind).
Die qq sind meine Lieblinge! Ich Kopiere HTML-Code in das Perlprog und schmücke ihn nur noch vorne mit print qq( und hinten mit ),"\n"; aus.
Fertig ist Perlgerechter HTML-Code. Mir ist es so lieber, weil ich 1:1 den HTML-Quellcode vergleichen und editieren kann.
Meta existiert, also kann ein sauberer HTML-Quelltext auch welche enthalten.
Mal abgesehen davon, dass ich sowas für ein riesen Gemurkse halte, nur um einen vermeintlich "schönen" Rahmen zu machen, das HTML dermassen aufblähen, ist eben das: gebläht
Das ist HTML-Inhalt, und hat mit dem Perlverhalten nichts zu tun - abgesehen davon weiß ich inzwischen selber, das beim CSS wohl ein wenig Nachbesserungsbedarf besteht. Ich habe dazu ja noch einen offenen Thread.
Stattdessen würde sich in so einem Fall anbieten ein Template zu verwenden.
Das kenne ich leider nicht - und kann deshalb auch nichts dazu sagen.
Hast du dir schon mal angeschaut was das CGI Modul kann?
Nein?
Ich kann cgi param übergeben und mit den Daten arbeiten.
Genau für solche Formularelemente ist es top und erspart dir Arbeit und macht den Code lesbarer.
? Wo Formular ?
Ja, wie gesagt - es geht - und keiner weiss warum >:-)
Wenn das dir reicht.
Natürlich ist das ganz und gar nicht meine Auffassung vom Programmieren. Aber was will ich machen? Nach allen Tests hier, ist dies die einzige Variante, die ich gefunden habe die in der Lage ist HTML-Kopf und Cookie Teitgleich( bei einem Aufruf auszugeben, ohne ein Fehlerlog zu produzieren.
Warum sich hier die Theorie von der Praxis trennt - ich weiss es wirklich nicht!
Ich persönlich weigere mich dir weiterhin zu helfen, solange ich nicht erkenne, dass du das wirklich tust.
Das kannst du natürlich tun. Mir ist aber trotzdem wichtig, daß du weist, daß ich dich keinesfalls ärgern will. Ich kann dir nur sagen, was mein PC macht, egal ob ich die Beispiele von Perldoc oder hier von Euch eingebe.
Es ist wie es ist.
Danke nochmals
Gruß Gary
PS.: Wenn ich jetzt genug Kohle hätte, würde ich dich mit dem Helikopter nach süddeutschland einfliegen lassen, um dir zu beweisen, das es so ist wie ich sage! Du könntest eigenhändig deinen bevorzugten Code eintippen und würdest sehen, das es so ist.