xNeTworKx: Ich versteh die Welt nicht mehr ?

Hallo, Ich weis nicht woran das liegt, aber vielleicht hat jemand eine logische Erklärung : Ich habe ein Forum gebastelt, was eigentlich tadellos funktioniert, nur plötzlich werden die Klicks nicht mehr gezählt, nachdem ich einige Modifikationen gemacht habe, was aber im Grunde genommen mit den Klicks nichts zu tun hat. Das Komische ist, lokal funktionierts, am Webserver nicht mehr ? Wie kann das sein ! ? Die Datei is EXAKT die gleiche. Ich hab auch schon versucht alle relevanten Rechte am Server zu 777 zu ändern, aber es bringt nichts.

Zur Info: Wenn jemand ein Posting schreibt, wird dieses in dem Ordner "messages" angelegt. Die Klicks werden so gezählt, daß wenn jemand ein neues Posting schreibt, eine gleichnamige Datei im Verzeichnis "counter" angelegt wird. In diese Datei wird pro Klick ein "i" geschrieben, und beim zählen ausgelesen. Das Posting mit dem neuesten Reply rutscht nach oben (jedes Posting beinhaltet als erste Zeile die Unixzeit, nach der auch dann die Postings sortiert werden. Bei jedem Reply wird diese Zahl zur aktuellen Zeit verändert (daran hab ich heut gebastelt)) Jetzt meine Frage, was kann die Ursache sein, das die selbe Datei lokal funktioniert und am Server nicht ?

Hier mal die lokale Adresse : http://212.17.119.105/forum/forum.cgi

Und der Code der Subroutine, die den Topic generiert. sub topic   { print <<PARTOFHTML;

<script type="text/javascript">    <!--    normal1 = new Image();    normal1.src = "pics/note.jpg";    highlight1 = new Image();    highlight1.src = "pics/notelight.jpg";

normal2 = new Image();    normal2.src = "pics/note.jpg";    highlight2 = new Image();    highlight2.src = "pics/notelight.jpg";

function Bildwechsel(Bildnr,Bildobjekt)    {    window.document.images[Bildnr].src = Bildobjekt.src;    }    -->    </script>    <table width="100%" border="0" cellpadding="0">    <colgroup>    <col width="1%">    <col width="58%">    <col width="39%">    <col width="1%">    </colgroup>    <tr>    <th class="topics" colspan="4"> &nbsp </th>    </tr>    <tr>    <td class="topics"> &nbsp </td><td><img src="pics/meetingpoint.gif" width="399" height="112"></td><td> &nbsp </td><td class="topics"> &nbsp </td>    </tr>    <tr>    <td class="topics"> &nbsp </td>    <td colspan="2"><div style="font-family:Arial Black; color:#eeeeee; font-size:10px">Underground Net Radio at 20kb/s <a href="http://www.radio-activ.net/onair.pls" target="parent" onMouseOver="Bildwechsel(1,highlight1)"    onMouseOut="Bildwechsel(1,normal1)"><img src="pics/note.jpg" width="30" height="25"></a>    Underground Net Radio at 56kb/s <a href="http://www.radio-activ.net/onair2.pls" target="parent" onMouseOver="Bildwechsel(2,highlight2)"    onMouseOut="Bildwechsel(2,normal2)"><img src="pics/note.jpg" width="30" height="25"></a></td>    <td class="topics"> &nbsp </td>    </tr>    <tr>    <th class="topics" colspan="4"> &nbsp </th>    </tr>    </table>    <table width="100%" border="0" cellpadding="9">    <colgroup>    <col width="2%">    <col width="58%">    <col width="15%">    <col width="5%">    <col width="5%">    <col width="15%">    </colgroup>    <tr>    <td align="center" class="topics" colspan="2"><a href="$url?action=newpost"><span class="dauerlink">$links</span></a></td><td align="center" class="topics">begonnen von</td><td align="center" class="topics">Beiträge</td><td align="center" class="topics">gesehen</td><td align="center" class="topics">letzte Nachricht von</td>    </tr> PARTOFHTML

my @liste;     my %sortierungshash;

opendir(DIR,"messages") or die "Cant open database directory : $!\n";          while (my $file = readdir(DIR))   {              if ($file =~ /^\d+.txt/)   {                  my $in = '';                  open(FILE,"messages/$file") or die "An error occurred : $!\n";                  while (<FILE>)   {                  $in .= $_;                      if ($in =~ /<unix>(\d+?)</unix>/)   {                      push @liste, "$1 ";                      push @liste, "$file ";                      last;                      }                  }                  close FILE;              }          }     closedir(DIR);     %sortierungshash = @liste;

my $g = 0;     foreach my $key(sort { $b <=> $a } keys %sortierungshash)   {     my $file = $sortierungshash{$key};

my $inhalt = "";     my $replyzeit = "";     my $replyname = "";     my $replyinhalt = "";     my $topinhalt = "";     my $topictitle = "";     my $autor = "";     my $replycounter = 0;     my @counts;     my $i = 0;

open(FILE,"messages/$file") or die "Cant open File : $!\n";                 while (<FILE>)   {                 chomp;                 $inhalt .= $_;                 }            close(FILE);

while ($inhalt =~ /<reply>(.+?)</reply>/g)   {            $replyinhalt = $1;            $replycounter++;            }

if ($inhalt =~ /<top>(.*)</top>/)    {            $topinhalt = $1;            }

if ($topinhalt =~ /<topic>(.+?)</topic>/)   {            $topictitle = $1;            }

if ($topinhalt =~ /<name>(.+?)</name>/g)   {            $autor = $1;            }

foreach ($replyinhalt =~ /<zeit>(.+?)</zeit>/g)   {            $replyzeit = $1;            }

foreach ($replyinhalt =~ /<name>(.+?)</name>/g)   {            $replyname = $1;            }

$replyzeit = '----' if $replyzeit eq "";            $replyname = '----' if $replyname eq "";

if (-e "counter/$file")   {            open(VIS,"<counter/$file") or die "Cant open Counter : $!\n";            while (<VIS>)   {               my $hits .= $_;                while ($hits =~ /i/g)   {                $i++;                }            }            close VIS;           }            $file =~ s/.txt//;

print "<tr><td class="topics"> &nbsp </td><td align="left" class="main"><a href="$url?action=savecounter&posting=$file">$topictitle</a></td><td align="center" class="begonnen">$autor</td><td align="center" class="beitragbg">$replycounter</td><td align="center" class="gesehenbg">$i</td><td align="center" class="letztemessagebg"><font class="name">$replyname</font>, $replyzeit</td></tr>\n";     $g++;         if ($g == $topiccounter)   {         last;         }     }

print <<EOF;    <tr>    <td class="unten" colspan="2" align="center">    <form>        <select name="topiccounter"> EOF          if ($topiccounter == 5)   {          print "<option selected value="5">die letzten 5 Postings anzeigen</option>\n";          }          else   {          print "<option value="5">die letzten 5 Postings anzeigen</option>\n";          }          if ($topiccounter == 10)   {          print "<option selected value="10">die letzten 10 Postings anzeigen</option>\n";          }          else   {          print "<option value="10">die letzten 10 Postings anzeigen</option>\n";          }          if ($topiccounter == 20)   {          print "<option selected value="20">die letzten 20 Postings anzeigen</option>\n";          }          else   {          print "<option value="20">die letzten 20 Postings anzeigen</option>\n";          }          if ($topiccounter == 30)   {          print "<option selected value="30">die letzten 30 Postings anzeigen</option>\n";          }          else   {          print "<option value="30">die letzten 30 Postings anzeigen</option>\n";          }          if ($topiccounter == 50)   {          print "<option selected value="50">die letzten 50 Postings anzeigen</option>\n";          }          else   {          print "<option value="50">die letzten 50 Postings anzeigen</option>\n";          }          if ($topiccounter == 100)   {          print "<option selected value="100">die letzten 100 Postings anzeigen</option>\n";          }          else   {          print "<option value="100">die letzten 100 Postings anzeigen</option>\n";          } print <<HTML;          </select>          <input type="submit" class="selectbutton" value="aktualisieren">    </form>    </td>    <td class="unten" colspan="4" align="right">Networks Bulletin Board, Version 1.3, powered by <a href="http://www.acid4u.com" target="parent"><span class="dauerlink">xNeTworKx</span></a></td>    </tr>    </table> HTML }

  1. ups,

    schön viel Code ;-)

    bei solchen postings kommt mir manchmal die Idee, daß es   -  in so einem Fall  -  besser wäre, den Code als Attachement anzuhängen, damit derjenige, der schreibt, sich allein auf seine Frage konzentreiren kann und derjenige, der erstmal liest, nicht mißtrauisch durchscrollen muß, ob irgendwo "daziwschen" nicht noch ein Textstück steht, das nicht zum geposteten Code gehört, aber sehr wohl zur Fragestellung.

    Der einzige Hinweis, der mir zu deinem Problem vorläufig einfällt: sind denn bei dir und bei deinem Provider auch exakt dieselben Perl-Installationen (builds) vorhanden und exakt dieselben Module aktiv ? Die Wahrscheinlichkeit, daß "es" daran liegt, erscheint mir ziemlich hoch.

    Grüße aus Berlin

    Christoph S.

    1. ups,

      schön viel Code ;-)

      .. meine ich auch - warum also das ganze nicht als .txt Datei auf den Server stellen und mit [ link: ... ] darauf verlinken

      Grüße nach Berlin
          K@rl

      1. Hi,
        es hat bis jetzt immer tadellos funktioniert, ich versteh nicht warum auf einmal nicht mehr. Da is noch das Problem: wenn ich nicht if (-e "counter/$file) abfrage, sondern counter/$file ohne abzufragen öffne, funktioniert es auf einmal, aber nur bis ich ein Posting mache, weil dann zeigt er mir überhaupt keine Postings mehr an ?

        1. Hi nochmal,

          push @liste, "$1"; statt push @liste, "$1 ";
          push @liste, "$file"; push @liste, "$file "

          Was so ein einfaches Leerzeichen auslösen kann. Ich hab nämlich zuerst gedacht, das er die einzelnen Skalare nicht mehr erkennen kann, wenn diese "zusammenpicken".

          1. use Mosche;

            push @liste, "$1"; statt push @liste, "$1 ";
            push @liste, "$file"; push @liste, "$file "

            push @liste, $1;
            push @liste, $file;

            ist wesentlich schöner (und spart wahrscheinlich auch noch Performance).

            use Tschoe qw(Matti);

            1. push @liste, "$1"; statt push @liste, "$1 ";
              push @liste, "$file"; push @liste, "$file "

              push @liste, $1;
              push @liste, $file;

              ist wesentlich schöner (und spart wahrscheinlich auch noch Performance).

              Hi,
              ok, wird sofort geändert :-)

          2. hallo,

            push @liste, "$1"; statt push @liste, "$1 ";
            push @liste, "$file"; push @liste, "$file "

            ups ... richtig. Ich hatte mir das Script gestern abend archiviert, um es durchzuprobieren und hatte das dann beim Abtippen gleich richtig gemacht. Deswegen konnte ich da bisher überhaupt kein Problem finden.

            Christoph S.