Script funktioniert nur local (Versionskonflikt?) – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self Script funktioniert nur local (Versionskonflikt?) Sun, 01 Jul 01 19:56:04 Z https://forum.selfhtml.org/self/2001/jul/1/script-funktioniert-nur-local-versionskonflikt/132785#m132785 https://forum.selfhtml.org/self/2001/jul/1/script-funktioniert-nur-local-versionskonflikt/132785#m132785 <p>Hi an alle,</p> <p>Eine subroutine in einem script soll folgendes leisten:</p> <p>aus einer csv-datei der Art:</p> <p>name|mailaddress|mobile|phone|rubrik|pw<br> Schnuffil|schnuffel@schnuffel.de|0169-55555555|030-12345678|design|sChN<br> Stoffel|stoff@stoff.de|0169-9876543|080-4444444|design, pr|STsT<br> Pumuckel|pumucke@mst.eder.de|555-1234567|0555-2468135|design|roteHaare<br> naechster|naechster@next.de|0555-0000000|000-0000000|Prod|letzter</p> <p>soll in einen zweidimensionalen Hash geparst werden. Also isoliere ich erst die erste Zeile, und ermittle die keywords:</p> <h3>Opens the membersdb-file</h3><p>open(MEMBERS,"<$membersfile") || &exit_on_error("$membersfile cannot be opened!");<br>  my @readmembers = <MEMBERS>;<br>  close(MEMBERS);<br>  # entferne erste Zeile und ermittel die schluesselworte<br>  @keynames = split /|/, shift(@readmembers);<br>  # der letzte key hat einen Zeilenumbruch hintendran, aber nicht mehr lange....<br>  chomp $keynames[-1];</p> <p>Das funktioniert on- wie offline :-).</p> <p>Als nächstes iteriere ich über @readmembers (alle Zeilen) und innerhalb jeder iteration nochmal über jeden neuen Array und orden die werte den keywords zu:</p> <h3>erzeugung eines 2dimensionalen hashes</h3><p>foreach $readmember (@readmembers)<br>   {<br>   # jede Zeile hat einen Zeilenumbruch hintendran, kann ich nicht brauchen....<br>   chomp($readmember);<br>   # parse die zeilen in temporaeres array<br>   my @member_line = split /|/, $readmember;<br>   # ordne jeden wert einem key zu<br>   for($i=0; $i<=$#member_line; $i++)<br>    {<br>    $members{$member_line[0]}{$keynames[$i]} = $member_line[$i];<br>    }<br>   }</p> <p>Offline geht das alles, aber online wird der letzte wert (hier "pw") nicht an den Array angehängt. Also eine Iteration über @keywords zeigt an, das es dort "pw" gibt. Aber im großen Hash gibt es das nicht!</p> <p>Woran könnte das liegen?</p> <p>Bye Ed X<br> PS: Die Subroutine im ganzen:<br> sub parse_members {<br>  # Opens the membersdb-file<br>  open(MEMBERS,"<$membersfile") || &exit_on_error("Systemfailure or missing cofiguration:<br>There is no database file for the members or it cannot be opened!");<br>  my @readmembers = <MEMBERS>;<br>  close(MEMBERS);<br>  # entferne erste Zeile und ermittel die schluesselworte<br>  @keynames = split /|/, shift(@readmembers);<br>  # der letzte key hat einen Zeilenumbruch hintendran, aber nicht mehr lange....<br>  chomp $keynames[-1];<br>  # erzeugung eines 2dimensionalen hashes<br>  foreach $readmember (@readmembers)<br>   {<br>   # jede Zeile hat einen Zeilenumbruch hintendran, kann ich nicht brauchen....<br>   chomp($readmember);<br>   # parse die zeilen in temporaeres array<br>   my @member_line = split /|/, $readmember;<br>   # ordne jeden wert einem key zu<br>   for($i=0; $i<=$#member_line; $i++)<br>    {<br>    $members{$member_line[0]}{$keynames[$i]} = $member_line[$i];<br>    }<br>   }<br> }</p> Script funktioniert nur local (Versionskonflikt?) Sun, 01 Jul 01 20:36:40 Z https://forum.selfhtml.org/self/2001/jul/1/script-funktioniert-nur-local-versionskonflikt/132786#m132786 https://forum.selfhtml.org/self/2001/jul/1/script-funktioniert-nur-local-versionskonflikt/132786#m132786 <p>Moin,</p> <blockquote> <p>aus einer csv-datei der Art:</p> </blockquote> <blockquote> <p>name|mailaddress|mobile|phone|rubrik|pw</p> </blockquote> <p>^^</p> <p>das solltest du crypten.</p> <blockquote> <p>soll in einen zweidimensionalen Hash geparst werden. [...]</p> </blockquote> <p>ich kann dein Problem hier nicht nachvollziehen. (Perl 5.6.0, Win32)<br> Dafuer hab ich aber das ganze mal lesbarer aufgeschrieben (und strict-faehig ;)<br> vielleicht gibts ja online tatsaechlich ein Problem mit nichtlokalisierten Variablen oder so.<br> Ach und nochwas: name ist jetzt eine redundante Information, das waere evtl. noch ein schoenheitsfehler ;)</p> <p>#!/usr/bin/perl -w<br> use strict;<br> use Data::Dumper;</p> <p>sub parse_members ($) {<br>   my $membersfile = shift;</p> <p># Opens the membersdb-file<br>   # bla, open, close etc.<br>   # bei open *und* close auf Fehler pruefen!<br>   #<br>   my @readmembers = <DATA>;</p> <p># remove \n<br>   #<br>   chomp @readmembers;</p> <p># entferne erste Zeile und ermittel die schluesselworte<br>   #<br>   my @key = split /|/ => shift(@readmembers);</p> <p># erzeugung eines 2dimensionalen hashes<br>   #<br>   my %members = map {<br>     my $i=0;<br>     my %hash = map {$key[$i++] => $_} split /|/ => $_;<br>     ($hash{name} => %hash);<br>   } @readmembers;</p> <p>%members;<br> }</p> <p>my $members = parse_members ('filename');<br> print Dumper ($members);</p> <p>__END__<br> name|mailaddress|mobile|phone|rubrik|pw<br> Schnuffil|schnuffel@schnuffel.de|0169-55555555|030-12345678|design|sChN<br> Stoffel|stoff@stoff.de|0169-9876543|080-4444444|design, pr|STsT<br> Pumuckel|pumucke@mst.eder.de|555-1234567|0555-2468135|design|roteHaare<br> naechster|naechster@next.de|0555-0000000|000-0000000|Prod|letzter</p> <p>evtl. hilfts ja schon,</p> <p>Viele Gruesse,</p> <p>n.d.p.</p> Script funktioniert nur local (Versionskonflikt?) Sun, 01 Jul 01 21:43:52 Z https://forum.selfhtml.org/self/2001/jul/1/script-funktioniert-nur-local-versionskonflikt/132787#m132787 https://forum.selfhtml.org/self/2001/jul/1/script-funktioniert-nur-local-versionskonflikt/132787#m132787 <p>Hallo,</p> <blockquote> <blockquote> <p>aus einer csv-datei der Art:</p> </blockquote> </blockquote> <blockquote> <blockquote> <p>name|mailaddress|mobile|phone|rubrik|pw<br>                                         ^^</p> </blockquote> </blockquote> <blockquote> <p>das solltest du crypten.</p> </blockquote> <p>Du meinst einen OneWayHash? zb MD5?</p> <blockquote> <p>ich kann dein Problem hier nicht nachvollziehen. (Perl 5.6.0, Win32)</p> </blockquote> <p>................................................................^^^^^<br> der ist vermutlich negativ aufgefallen</p> <blockquote> <p>Dafuer hab ich aber das ganze mal lesbarer aufgeschrieben (und strict-faehig ;)</p> </blockquote> <p>Half nicht beim Problem, aber bei meinem Programmierstil :-)</p> <blockquote> <p>vielleicht gibts ja online tatsaechlich ein Problem mit nichtlokalisierten Variablen oder so.</p> </blockquote> <p>nein es war der Zeilenumbruch</p> <blockquote> <p>#!/usr/bin/perl -w<br> use strict;<br> use Data::Dumper;</p> </blockquote> <blockquote> <p>sub parse_members ($) {<br>   my $membersfile = shift;</p> </blockquote> <blockquote> <p># Opens the membersdb-file<br>   # bla, open, close etc.<br>   # bei open *und* close auf Fehler pruefen!<br>   #<br>   my @readmembers = <DATA>;</p> </blockquote> <blockquote> <p># remove \n<br>   #<br>   chomp @readmembers;</p> </blockquote> <p>.....^^^^^^^^^^^^^^^^^^^<br> das hat ihm nicht gereicht,<br> also ich habe nochmal den letzten jeder Zeile beim Wickel genommen und ihm gezeigt, wo der Hammer hängt:</p> <p>$keynames[-1] =~ s/\s//gs;</p> <p>das hat das Problem gekillt <eg><br> wodurch passworte natürlich keine Whitespaces haben dürfen, aber bei MD5 kein Problem, oder?</p> <p>ob es was damit zu tun hat?<br> SERVER_SOFTWARE = Apache/1.3.6 (Unix) (Red Hat/Linux) PHP/3.0.8</p> <p>Keine Ahnung :-(</p> <p>Ich danke für die Hilfe.</p> <p>Bye Ed X</p> Script funktioniert nur local (Versionskonflikt?) Sun, 01 Jul 01 22:31:40 Z https://forum.selfhtml.org/self/2001/jul/1/script-funktioniert-nur-local-versionskonflikt/132788#m132788 https://forum.selfhtml.org/self/2001/jul/1/script-funktioniert-nur-local-versionskonflikt/132788#m132788 <p>Moin,</p> <blockquote> <blockquote> <blockquote> <p>name|mailaddress|mobile|phone|rubrik|pw<br>                                         ^^<br> das solltest du crypten.<br> Du meinst einen OneWayHash? zb MD5?</p> </blockquote> </blockquote> </blockquote> <p>ja, oder einfach mit crypt ;)</p> <blockquote> <blockquote> <p>ich kann dein Problem hier nicht nachvollziehen. (Perl 5.6.0, Win32)<br> ................................................................^^^^^<br> der ist vermutlich negativ aufgefallen</p> </blockquote> </blockquote> <p>[_] du hast Win32 lokal?</p> <blockquote> <p>nein es war der Zeilenumbruch</p> </blockquote> <p>wenn du oben ein Kreuz setzen kannst:<br> hast du vielleicht die members-Datei nicht im ASCII-Modus hochgeladen?</p> <blockquote> <blockquote> <p>chomp @readmembers;<br> .....^^^^^^^^^^^^^^^^^^^<br> das hat ihm nicht gereicht,<br> $keynames[-1] =~ s/\s//gs;</p> </blockquote> </blockquote> <p>das wuerde das erklaeren.</p> <blockquote> <p>wodurch passworte natürlich keine Whitespaces haben dürfen, aber bei MD5 kein Problem, oder?</p> </blockquote> <p>denkst du eigentlich daran, dass in keinem Feld Pipes vorkommen duerfen?<br> Und dass die Datei sinnigerweise ge(f)lockt werden sollte?;-)</p> <p>Viele Gruesse,</p> <p>n.d.p.</p> Script funktioniert nur local (Versionskonflikt?) Mon, 02 Jul 01 08:10:11 Z https://forum.selfhtml.org/self/2001/jul/1/script-funktioniert-nur-local-versionskonflikt/132789#m132789 https://forum.selfhtml.org/self/2001/jul/1/script-funktioniert-nur-local-versionskonflikt/132789#m132789 <p>Hi,</p> <blockquote> <p>[_] du hast Win32 lokal?</p> </blockquote> <p>Ja, Win32 Local und Unix war online.</p> <blockquote> <p>wenn du oben ein Kreuz setzen kannst:<br> hast du vielleicht die members-Datei nicht im ASCII-Modus hochgeladen?</p> </blockquote> <p>Peinlich, peinlich, mein LeechFtp war neu installiert und nicht neu konfiguriert. grmpf.....<br> Aber ich bin beeindruckt von deinen Ferndiagnosefähigkeiten.</p> <blockquote> <p>denkst du eigentlich daran, dass in keinem Feld Pipes vorkommen duerfen?</p> </blockquote> <blockquote> <p>Und dass die Datei sinnigerweise ge(f)lockt werden sollte?;-)</p> </blockquote> <p>Die Pipes werden abgefangen, aber die Geschichte ist sowieso noch nicht zum online editieren freigegeben. Muss sie beim nur-lese-zugriff auch ge(f)lockt werden??</p> <p>Bye Ed X</p> Script funktioniert nur local (Versionskonflikt?) Mon, 02 Jul 01 18:35:18 Z https://forum.selfhtml.org/self/2001/jul/1/script-funktioniert-nur-local-versionskonflikt/132790#m132790 https://forum.selfhtml.org/self/2001/jul/1/script-funktioniert-nur-local-versionskonflikt/132790#m132790 <p>Moin!</p> <blockquote> <p>Die Pipes werden abgefangen, aber die Geschichte ist sowieso noch nicht zum online editieren freigegeben. Muss sie beim nur-lese-zugriff auch ge(f)lockt werden??</p> </blockquote> <p>Wenn *alle* nur lesen, dann nicht. Aber sobald einer schreiben will, muessen *alle* (f)locken (oder sich anderweitig synchronisieren).</p> <p>So long</p>