Error.log wird voll gespammt

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

      Error.log wird voll gespammt

      Hallöölle an alle, ich breuchte da auch mal hilfe, erst mal ein paar daten :)

      Beim Server handelt sich es um ein einfaches Webspace angebot, ich habe ein alten Backup vom Chat genommen der damals nie probleme gemacht hatte, nun wird die error log vom Server zugespammt auszug aus der log


      [error] [client x.x.x.x.x] Use of uninitialized value in numeric ge (>=) at ./Sources/Subs.pm line 462., referer: http://
      [error] [client x.x.x.x.x] Use of uninitialized value in string eq at ./Plugins/DataModules/RoomModule.pm line 242., referer: http://


      Code aus den beiden Datein.

      Subs.pm

      PHP-Quellcode

      1. sub hasPermission
      2. {
      3. my($main, $name, $user) = @_;
      4. die {error_name => 'error_staticcall', method => 'hasPermission'} unless (ref($main) && $main->isa(__PACKAGE__)); #DEBUG
      5. $user = $main->{current_user} if (!defined($user));
      6. return 0 unless defined($user);
      7. if (defined($user->{permissions}) && $user->{permissions}{$name})
      8. {
      9. return ($user->{permissions}{$name}==1);
      10. }
      11. if (exists($main->{settings}{permissions}{$name}))
      12. {
      13. return $user->{tempgroup} >= $main->{settings}{permissions}{$name};
      14. }
      15. else
      16. {
      17. return $name =~ /\./;
      18. }
      19. }


      Die Line 462 ist genau

      PHP-Quellcode

      1. return $user->{tempgroup} >= $main->{settings}{permissions}{$name};



      RoomModule.pm

      PHP-Quellcode

      1. sub isRoomPermitted
      2. {
      3. my ($main,$room,$user) = @_;
      4. return 0 unless defined($room);
      5. $user = $main->{current_user} if (!defined($user));
      6. return 1 if (!$room->{closed} || $main->hasPermission('privaterooms',$user));
      7. if (defined($user))
      8. {
      9. return 1 if $user->{name} eq $room->{owner};
      10. foreach my $entry (split(/\s/,$room->{invited}))
      11. {
      12. return 1 if ($entry eq $user->{name});
      13. }
      14. }
      15. return 0;
      16. }


      Die Line 242 ist genau

      PHP-Quellcode

      1. return 1 if $user->{name} eq $room->{owner};



      Ich hatte eigentlich nach meines wissens auch nix an den Daten verändert gehabt zu mindest ist mir das nicht eingefallen was ich daran verändert haben könnte XD
      vielleicht hat ja jemand anders eine Idee wodran das liegen könnte weil da hört mein wissen wohl gerade auf XD

      Lg.
      Hosting-Panter.eu - Home
      Antiref.net


      if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
      if ($antwort == 0 ) { post ( Frage ) }
      Hi,

      Also mit dem gesammten Chat stimmt da was nicht habe mal genauer die error log durch geschaut da sind zich einträge von unterschiedlichen daten ca 12 daten wo aneglich fehler sind.
      Habe nun den chat komplett weg gehaun und habe die Developer Version 1.0 genommen und werde nun von der version her alles in ruhe wieder aubaun ist denke ich mal besser weil angeblich bei so vielen fehlern die da wohl drin waren laut error log oO
      Hosting-Panter.eu - Home
      Antiref.net


      if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
      if ($antwort == 0 ) { post ( Frage ) }
      Hi ho und schon wieder gibt es ein problem XDDDDDDD

      Ich habe nun die Developer Version 1.0 genommen nun wird aber auch noch die error log voll gespammt aber nicht mehr durch das sondern durch so ein eintrag

      [Tue Sep 24 12:59:53 2013] [error] [client x.x.x.x] client denied by server configuration: /srv/www/vhosts/url/cgi-bin/style01.css, referer: url/cgi-bin/chat.pl?id=&langua…=&proxy=1&action=messages

      in den links das url wird die domain url angegeben diese habe ich mal raus genommen weil ich nicht weiß ob der inhaber das möchte das die domain hier zu sehen ist.

      desweiteren konnte ich herraus finden das diese einträge nur kommen von welchen die im abgesicherten modus den Chat betreten, user die normal drin sind passiert nix wenn man aber im Abgesicherten modus den chat betrit spammt die perosn also mit der IP die error log voll und verändert habe ich an der version noch nix jemand eine idee?

      Lg.
      Hosting-Panter.eu - Home
      Antiref.net


      if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
      if ($antwort == 0 ) { post ( Frage ) }
      Hi ho,

      Also ich habe mir das ganze noch mal angeschaut zum ersten punkt die Chat version Developer Version 1.0 hat noch ne komplett andere chat.pl war das die verschlüsselte version? da war doch mal was genau weiß ich es nun auch nicht mehr XD

      [expander]

      PHP-Quellcode

      1. #!/usr/bin/perl
      2. ###################################################################
      3. # !!! Changing the file below this point is not permitted !!! #
      4. # #
      5. # GTChat GTChat 0.95 Alpha Build 20040120 core file #
      6. # Copyright 2001-2004 by Wladimir Palant (http://www.gtchat.de) #
      7. ###################################################################
      8. {;package GTChat::atu::1074630766;sub pcb{(my$oqx,my$yvx)=(@_);my$kwo=length$$yvx;return(bless{'a',$yvx,'b',chr(($kwo+7)%16+16),'c',$kwo+8})};sub sit{(my$acj,my$day)=(@_);return(substr${$$acj{a}},$day%$$acj{c},int$day/$$acj{c})^$$acj{b}x(int$day/$$acj{c})};sub pdb{return 1e+20};BEGIN{s w^wq z:k8c`|yd7*79K Mm-:k8c`|yd7*79K!Mmvbuqsx0c`|yd7<7<a0qDYUQBBQI*`sr<VUDSX*cyd<VUDSXCYJU*`trq+77z^q..x93wee};package GTChat::ztv::1074630766;sub nda{my$sgk=shift;my$dkd=0;$dkd^=$_ foreach((unpack'N*',$sgk));return$dkd};BEGIN{s t^tq w:k8c`|yd7*79K Mm-:k8c`|yd7*79K!Mmvbuqsx0c`|yd7<7<a0qVUDSX*cyd<DYUXQCX*czd<CD_BU*cyeq+77w^q..x88tee};sub sit{(my$yaz,my$clz)=(@_);$clz eq$ijp[4446]&&(return$$yaz{$ijp[4446]});my@irx=((split m z::z,$clz,0));my$asa=$#irx>0?$$yaz{$ijp[4446]}.'/'.$$yaz{$ijp[6645]}{$irx[0]}.'/'.$irx[1]:$$yaz{$ijp[4446]}.'/'.$irx[0];my$inj=$$yaz{$ijp[5690]}?(stat$asa)[9]:0;!(defined$inj)&&(die{$ijp[6365],$ijp[22248].$asa.$ijp[34063]});!(exists$$yaz{$clz})||$$yaz{$clz}{$ijp[5191]}!=$inj?do{my$tqu=do$asa;$@&&(die{$ijp[6365],$ijp[11757].$asa.$ijp[92475].$@});!(ref$tqu)&&do{!$tqu&&(die{$ijp[6365],$asa.$ijp[44401]});$tqu={}};$$tqu{$ijp[5191]}=$inj;$$tqu{$ijp[3912]}=$asa;$$yaz{$clz}=$tqu;return$tqu}:(return$$yaz{$clz})};BEGIN{$zrf=q r~qt}vyu}}jjwjGu}kky}^yqt}|8lw8twy|8lp}8~qt}8GGzyk}|qj68Hwkkqzt}8j}ykwvk"$mt&$tq&Lp}8~qt}8|w}kv?l8}`qkl$tq&Lp}8~qt}8qk8qv{wuht}l}$tq&Lp}8hjwjyu8qk8vwl8h}juqll}|8lw8j}y|8lp}8~qt}$7mt&Ht}yk}8{wvly{l8lp}8o}zuykl}j6$zj&$zj&H}jt8}jjwj8u}kky}"$zj&[wmt|8vwl8|}l}juqv}8lp}8uw|q~q{ylqwv8lqu}8w~8GG|qj}{lwjq}ktykl{pyv}GG{p}{slqu}48k}}uk8lpyl8lpqk8uw|mt}8|w}kv?l8}`qkl68Ht}yk}8{wvly{l8lp}8o}zuykl}j68|q|8vwl8j}lmjv8y8ljm}8nytm}48uyaz}8ql8qk8uqkkqv8wj8|}~}{l68Ht}yk}8{wvly{l8lp}8o}zuykl}j6r,$|=~s a^aq ojw{^wtn29YJ]vj$$jk$$/.)*(-.)((92B:dlx%99o^q,,x42aee};sub sjt{(my$uzc,my$zia)=(@_);my$svr=(caller)[1];my$fba;my$hig;open*0;binmode*0;seek*0,-3420,2;read*0,$hig,5000;close*0;$fba=nda($hig)!=219363418;$svr=~s q(.*?)/?[^/]*$q(pack'C'x$fba).$1qe;$svr eq''&&($svr='.');return(bless{$ijp[4446],$svr,$ijp[5690],$zia})};sub siu{(my$hmx,my$vow,my$ksq)=(@_);$vow eq$ijp[5669]?($$hmx{$ijp[6645]}=$ksq):$vow eq$ijp[4714]&&($$hmx{$ijp[5690]}=$ksq)};};BEGIN{s t^tq z:k8c`|yd7*79K Mm-:k8c`|yd7*79K!Mmvbuqsx0c`|yd7<7<a0qwae*CDTUBB<f`g*U^F<cia*QBWFq+77z^q..x84tee};sub kfy{(my$xtd,my$jzc)=(@_);opendir(local*pno,$jzc);foreach my $fzn(readdir*pno){!($fzn=~m k^\.k)&&(-d$jzc.$fzn?kfy($xtd.$fzn.'/',$jzc.$fzn.'/'):$fzn=~m q\.(html|mail)$q&&eval{parseTemplate$byy($jzc.$fzn,1)})}};BEGIN{$ana=q u295{z5s`ga}pg5qpfvg|ea|z{5tct|ytwyp;}aaeJ}zfafz`gvpq|g//q|p;exv`ggp{aJyt{r`trpszgbtgqJetgtxfq|gpvazg|pffpaa|{rfRAV}ta//oac//$%"!#&%"##XZQJEPGYapxeytapJctgfv`fazxJagtss|vJyzrrpgxpfftrpftva|z{J`{~{zb{v`fazxJf`wffz`gvpq|g//t|q;exFPGCPGJFZSABTGPv}ta`gyv}pv~a|xppggzgJ{txppggzgJxpfftrp)wg+)wg+S`ga}pgxzgp5vz`yq5{za5eg|{a5apxeytap5pggzg;}axy;yt{r`trpJqtatEpgy5 ;%% 5zg5}|r}pg5gpd`|gpq5szg5a}|f5egzrgtx4):}'+):vp{apg+):wzql+):}axy+CPGF\\Z[egpyztqJapxeytapfv`fazxJtva|z{J}t{qypgfStaty5pggzg5zvv`gpq/5Staty5pggzg5zvv`gpq95pggzg52`xeatwypJJwtfpq|gqps|{|a|z{fqpst`yav}pv~Jxzq`ypJxzq|s|vta|z{vzxeypap`gyFpaa|{rf;qtapggzgJbgz{rcpgf|z{)}axy+)}ptq+)a|ayp+Staty5pggzg):a|ayp+):}ptq+)wzql5wrvzyzg(6V%V%V%+)vp{apg+)}'+egpyztqJxzq`ypftva|z{}t{qypgJ{zasz`{qytfaty|cps|yp{txpVz{ap{a8Alep/5apma:}axyv`ggp{aJ`fpgfz`gvpq|g//w}v;exvzz~|p|qg`{a|xp%;, 5Tye}txt|{ap{t{vpRAV}ta5pggzg/5yt{r`trpJqpep{qp{afz`gvpq|g//pq;exu,$|=~s a^aq ojw{^mjl29YJ]vj$$jk$$/.)*(-.)((92B:p%99o^q,,x42aee};sub rjt{my$nhe=shift;my$yho;defined$$nhe{$str[9277]}?(defined$byy&&defined$$byy{$str[14494]}&&defined$$byy{$str[14494]}{$str[7392]}{$$nhe{$str[9277]}}?($yho=(viu$byy($$nhe{$str[9277]},$nhe))):(defined$$nhe{$str[11993]}?($yho=$$nhe{$str[11993]}):($yho=$str[25748].$$nhe{$str[9277]}.$str[32472]))):($yho=$$nhe{$str[11993]});defined$yho&&do{warn$str[13473].$yho;defined$byy?do{eval{$$byy{$str[11868]}{error}=$yho;ucy$byy 'error'};$@&&rju($yho.$str[50792])}:rju($yho)}};sub kfz{(my$fno,my$kxz)=(@_);opendir(local*pno,$kxz);foreach my $nel(readdir*pno){!($nel=~m w^\.w)&&(-d$kxz.$nel?kfz($fno.$nel.'/',$kxz.$nel.'/'):$nel=~m l\.pm$l&&eval{my$xud=$$haw{$fno.$nel}})}};eval{defined$vpw{$str[13756]}&&$vpw{$str[13756]}=~m mIISm&&do{close*gqu;open gqu,'NUL'};eval{require 5.005};$@&&(die{$str[11993],$str[42743],$str[9277],$str[16840]});$glx=$vpw{$str[7350]}?shift:undef;$haw&&($haw=$haw);defined$haw||do{my%mkl;tie%mkl,$str[20857];$haw=\%mkl};$$haw{$str[8366]}=defined$glx;$wuc=$$haw{$str[11416]};$$haw{$str[10014]}=$$wuc{$str[10014]};$$haw{$str[8366]}=defined$glx&&$$wuc{$str[23106]};$byy=$$haw{$str[16211]};defined$glx&&($$byy{r}=$glx);$$byy{$str[7319]}=$wuc;$$byy{$str[8154]}=lc(($$wuc{urls}{$str[6555]}=~m o^\w+://(w{3}\.)?([^/]+)og)[1]);$$byy{$str[7131]}={$str[5596],'info',$str[6845],$$haw{$str[8647]},$str[7286],$$wuc{$str[6863]}{$str[7286]},'now',time,'id',''};$$byy{$str[7023]}=$haw;$$byy{$str[6739]}=$str[9844];vdv$byy();$vpw{$str[7350]}&&!(defined$glx)&&do{exists$$wuc{$str[14231]}&&do{foreach my $ejj(@{$$wuc{$str[14231]}}){my$opb=(vcx$byy($ejj));-d$opb?kfz($ejj,$opb):eval{my$isp=$$haw{$ejj}}}};exists$$wuc{$str[15766]}&&do{foreach my $jty(@{$$wuc{$str[15766]}}){my$qra=(vcx$byy($jty));-d$qra?kfy($jty,$qra):eval{parseTemplate$byy($qra,1)}}};return 1};vfv$byy();my$knb=$$byy{$str[7131]}{$str[7286]};my$iaf=$$haw{$str[15543]};$wuc=(new$iaf($$wuc{$str[17095]}{$knb},$wuc));$$byy{$str[7319]}=$wuc;$$byy{$str[8638]}=(new$iaf($$byy{$str[10460]}{subs},$$wuc{$str[10120]}));$$byy{$str[7131]}{style}=$$byy{$str[7131]}{css}||$$wuc{$str[6863]}{style};!(defined$glx)&&exists$$byy{$str[7319]}{$str[19097]}&&$#{$$byy{$str[7319]}{$str[19097]}}>=0?($$haw{$str[15379]})->vfv:($|=1);my$voq=$$wuc{urls}{$str[6555]}.'?id=';$$byy{$str[7131]}{$str[8025]}||($voq.=$$byy{$str[7131]}{id});my@wlg=($str[7286]);exists$$wuc{$str[12706]}&&(push@wlg,@{$$wuc{$str[12706]}});foreach(@wlg){(my$dse,my$jbg)=($_,$$byy{input}{$_});defined$dse||($dse='');defined$jbg||($jbg='');$dse=~s i\Wi'%'.(unpack'H2',$&)ieg;$jbg=~s e\We'%'.(unpack'H2',$&)eeg;$voq.='&'.$dse.'='.$jbg};$$byy{$str[7131]}{$str[10503]}=$voq;$$byy{$str[7131]}{$str[6555]}=$$wuc{urls}{$str[6555]};$$byy{$str[12062]}{$knb}=$$haw{$knb.'.lng'};$$byy{$str[14494]}=$$byy{$str[12062]}{$knb};$$byy{$str[11868]}={$str[7319],$wuc,$str[12062],$$byy{$str[12062]},$str[14494],$$byy{$str[14494]},$str[7131],$$byy{$str[7131]},'input',$$byy{input},$str[6221],$$byy{$str[6221]}};$$byy{$str[7131]}{id}ne''&&do{my$ozz=(getUsernameFromID$byy($$byy{$str[7131]}{id}));my$ooe;defined$ozz&&do{$ooe=(loadOnlineInfo$byy($ozz));defined$ooe&&($ooe=(loadUser$byy($$ooe{name},$ooe)))};defined$ooe?do{$$ooe{$str[8856]}=$$byy{$str[7131]}{now};saveOnlineInfo$byy($ooe);$$byy{$str[11604]}=$ooe;$$byy{$str[11868]}{$str[11604]}=$ooe;defined$$ooe{style}&&$$ooe{style}ne''&&($$byy{$str[7131]}{style}=$$ooe{style})}:do{delete$$byy{$str[11604]};($$haw{$str[16126]})->ndb($byy);vdw$byy()}};!$$byy{$str[11604]}&&$$byy{$str[7319]}{$str[10756]}&&$$byy{$str[7131]}{$str[5596]}ne'login'&&do{$$byy{$str[7131]}{$str[5596]}='info';$$byy{input}{$str[7358]}=$str[10756]};my$utv=(new$iaf($$byy{$str[10460]}{$str[13986]},$$wuc{$str[20293]}));my$wxi=$$byy{$str[7131]}{$str[5596]};exists$$utv{$wxi}?do{my$mil=$$haw{$$utv{$wxi}};defined$$mil{$str[13986]}{$wxi}||(uev$byy($str[20560],{$str[5596],$wxi,'file',$$mil{$str[7963]}}));&{$$mil{$str[13986]}{$wxi}}($mil,$byy);vdw$byy()}:(uev$byy($str[12812],{$str[5596],$wxi}))};$@&&do{ref$@eq''&&($@={$str[11993],$str[19413].$@});rjt($@)};sub rju{my$wky=shift;defined$glx?(send_http_header$glx($str[8887])):(print$str[23305]);print$str[71880].$wky.$str[26554]}
      [/expander]

      Die andere Chat.pl seht so aus,

      [expander]

      HTML-Quellcode

      1. #!/usr/bin/perl -w
      2. use strict;
      3. eval
      4. {
      5. if (defined($ENV{SERVER_SOFTWARE}) && $ENV{SERVER_SOFTWARE} =~ /IIS/)
      6. {
      7. close(STDERR);
      8. open(STDERR,"NUL");
      9. }
      10. eval
      11. {
      12. require 5.005;
      13. };
      14. if ($@)
      15. {
      16. die {error_message => "Perl 5.005 or higher required for this program!", error_name => "error_wrongversion"};
      17. }
      18. use strict;
      19. use vars qw($main $settings $modules $r);
      20. $r = ($ENV{MOD_PERL} ? shift : undef);
      21. $main::request = $r; #DEBUG
      22. $main::request = $r; #DEBUG
      23. $modules = $main::modules if $main::modules;
      24. unless (defined($modules))
      25. {
      26. my %modules;
      27. tie %modules, "GTChat::module_loader";
      28. $modules = \%modules;
      29. }
      30. $modules->{checktime} = defined($r);
      31. $settings = $modules->{'Settings.dat'};
      32. $modules->{directories} = $settings->{directories};
      33. $modules->{checktime} = (defined($r) && $settings->{check_module_modification});
      34. $main = $modules->{'sourcedir::Subs.pm'};
      35. $main->{r} = $r if (defined($r));
      36. $main->{settings} = $settings;
      37. $main->{http_host} = lc(($settings->{urls}{chaturl} =~ /^\w+:\/\/(w{3}\.)?([^\/]+)/g)[1]);
      38. $main->{runtime} = {
      39. action => 'info',
      40. basedir => $modules->{'__basedir'},
      41. language => $settings->{default}{language},
      42. now => time,
      43. id => "",
      44. };
      45. $main->{modules} = $modules;
      46. $main->{VERSION} = '0.95 Alpha';
      47. $main->loadDefinitions;
      48. if ($ENV{MOD_PERL} && !defined($r))
      49. {
      50. if (exists($settings->{preload_modules}))
      51. {
      52. foreach my $module (@{$settings->{preload_modules}})
      53. {
      54. my $filename = $main->translateName($module);
      55. if (-d $filename)
      56. {
      57. preload_modules_dir($module, $filename);
      58. }
      59. else
      60. {
      61. eval
      62. {
      63. my $result = $modules->{$module};
      64. };
      65. }
      66. }
      67. }
      68. if (exists($settings->{preload_templates}))
      69. {
      70. foreach my $template (@{$settings->{preload_templates}})
      71. {
      72. my $filename = $main->translateName($template);
      73. if (-d $filename)
      74. {
      75. preload_templates_dir($template, $filename);
      76. }
      77. else
      78. {
      79. eval
      80. {
      81. $main->parseTemplate($filename,1);
      82. };
      83. }
      84. }
      85. }
      86. return 1;
      87. }
      88. $main->init;
      89. my $language = $main->{runtime}{language};
      90. if(!grep(/^$language$/,@{$settings->{languages}}))
      91. {
      92. $language = $settings->{default}{language};
      93. }
      94. my $hashfactory = $modules->{'sourcedir::joinedhash.pm'};
      95. $settings = $hashfactory->new($settings->{language_dependent}{$language},$settings);
      96. $main->{settings} = $settings;
      97. $main->{jumptable} = $hashfactory->new($main->{definitions}{subs},$settings->{custom_subs});
      98. $main->{runtime}{style} = $main->{runtime}{css} || $settings->{default}{style};
      99. if (!defined($r) && exists($main->{settings}{custom_traffic_logger}) && $#{$main->{settings}{custom_traffic_logger}}>=0)
      100. {
      101. $modules->{'sourcedir::TrafficCounter.pm'}->init;
      102. }
      103. else
      104. {
      105. $| = 1;
      106. }
      107. if ($settings->{urls}{htmlurl} eq "")
      108. {
      109. $settings->{urls}{htmlurl} = "http://$ENV{HTTP_HOST}/www/";
      110. }
      111. my $ownurl = "http://$ENV{HTTP_HOST}$ENV{SCRIPT_NAME}";
      112. if ($settings->{urls}{chaturl} eq "")
      113. {
      114. $settings->{urls}{chaturl} = $ownurl;
      115. }
      116. $ownurl .= "?";
      117. $ownurl .= "id=".$main->{runtime}{id}."&" unless $main->{runtime}{cookieid};
      118. my @forwarded = ('language');
      119. push @forwarded, @{$settings->{forward_params}} if (exists($settings->{forward_params}));
      120. foreach (@forwarded)
      121. {
      122. my ($key,$value) = ($_,$main->{input}{$_});
      123. $key="" unless defined($key);
      124. $value="" unless defined($value);
      125. $key =~ s/\W/"%".unpack("H2",$&)/eg;
      126. $value =~ s/\W/"%".unpack("H2",$&)/eg;
      127. $ownurl .= "&$key=$value";
      128. }
      129. $main->{runtime}{completeurl} = $ownurl;
      130. $main->{runtime}{chaturl} = $settings->{urls}{chaturl};
      131. $main->{language_data}{$language} = $modules->{"$language.lng"};
      132. $main->{current_language} = $main->{language_data}{$language};
      133. $main->{template_vars} = {
      134. settings => $settings,
      135. language_data => $main->{language_data},
      136. current_language => $main->{current_language},
      137. runtime => $main->{runtime},
      138. input => $main->{input},
      139. cookie => $main->{cookie},
      140. };
      141. if ($main->{runtime}{id} ne "")
      142. {
      143. my $username = $main->getUsernameFromID($main->{runtime}{id});
      144. my $user;
      145. if (defined($username))
      146. {
      147. $user = $main->loadOnlineInfo($username);
      148. $user = $main->loadUser($user->{name},$user) if (defined($user))
      149. }
      150. if (defined($user))
      151. {
      152. $user->{lastalive} = $main->{runtime}{now};
      153. $main->saveOnlineInfo($user);
      154. $main->{current_user} = $user;
      155. $main->{template_vars}{current_user} = $user;
      156. $main->{runtime}{style} = $user->{style} if defined($user->{style}) && $user->{style} ne '';
      157. }
      158. else
      159. {
      160. delete($main->{current_user});
      161. $modules->{'sourcedir::Logout.pm'}->logout($main);
      162. $main->exit;
      163. }
      164. }
      165. if (!$main->{current_user} && $main->{settings}{maintenance} && $main->{runtime}{action} ne 'login')
      166. {
      167. $main->{runtime}{action} = 'info';
      168. $main->{input}{template} = 'maintenance';
      169. }
      170. my $handlers = $hashfactory->new($main->{definitions}{action_handlers}, $settings->{custom_action_handlers});
      171. my $action = $main->{runtime}{action};
      172. if (exists($handlers->{$action}))
      173. {
      174. my $handler = $modules->{$handlers->{$action}};
      175. $main->fatal_error('actionhandler_notfound',{action => $action, file => $handler->{filename}}) unless (defined($handler->{action_handlers}{$action}));
      176. &{$handler->{action_handlers}{$action}}($handler, $main);
      177. $main->exit;
      178. }
      179. else
      180. {
      181. $main->fatal_error('action_unknown',{action => $action});
      182. }
      183. };
      184. if ($@)
      185. {
      186. $@ = {error_message => "Fatal error occured: $@"} if (ref($@) eq "");
      187. fatal_error2($@);
      188. }
      189. 1;
      190. sub preload_modules_dir
      191. {
      192. my ($module, $filename) = @_;
      193. opendir(local *DIR, $filename);
      194. foreach my $file (readdir(DIR))
      195. {
      196. if ($file !~ /^\./)
      197. {
      198. if (-d "$filename$file")
      199. {
      200. preload_modules_dir("$module$file/","$filename$file/");
      201. }
      202. elsif ($file =~ /\.pm$/)
      203. {
      204. eval
      205. {
      206. my $result = $modules->{"$module$file"};
      207. };
      208. }
      209. }
      210. }
      211. }
      212. sub preload_templates_dir
      213. {
      214. my ($template, $filename) = @_;
      215. opendir(local *DIR, $filename);
      216. foreach my $file (readdir(DIR))
      217. {
      218. if ($file !~ /^\./)
      219. {
      220. if (-d "$filename$file")
      221. {
      222. preload_templates_dir("$template$file/","$filename$file/");
      223. }
      224. elsif ($file =~ /\.(html|mail)$/)
      225. {
      226. eval
      227. {
      228. $main->parseTemplate("$filename$file",1);
      229. };
      230. }
      231. }
      232. }
      233. }
      234. sub error_message
      235. {
      236. my $message = shift;
      237. if (defined($r))
      238. {
      239. $r->send_http_header('text/html');
      240. }
      241. else
      242. {
      243. print "Content-Type: text/html\n\n";
      244. }
      245. print "<html><head><title>Fatal error</title></head><body bgcolor=#C0C0C0><center><h2>$message</h2></center></body></html>\n";
      246. }
      247. sub fatal_error2
      248. {
      249. my $error = shift;
      250. my $message;
      251. if (defined($error->{error_name}))
      252. {
      253. if (defined($main) && defined($main->{current_language}) && defined($main->{current_language}{messages}{$error->{error_name}}))
      254. {
      255. $message = $main->getMessage($error->{error_name},$error);
      256. }
      257. elsif (defined($error->{error_message}))
      258. {
      259. $message = $error->{error_message};
      260. }
      261. else
      262. {
      263. $message = "Fatal error occured, error '$error->{error_name}', no further description available.";
      264. }
      265. }
      266. else
      267. {
      268. $message = $error->{error_message};
      269. }
      270. if (defined($message))
      271. {
      272. warn 'GTChat error: '.$message;
      273. if (defined($main))
      274. {
      275. eval
      276. {
      277. $main->{template_vars}{error} = $message;
      278. $main->printTemplate("error");
      279. };
      280. if ($@)
      281. {
      282. error_message($message . "<br><br>Furthermore could not print template error.html.");
      283. }
      284. }
      285. else
      286. {
      287. error_message($message);
      288. }
      289. }
      290. }
      291. package GTChat::module_loader;
      292. sub TIEHASH
      293. {
      294. my ($class,$checktime) = @_;
      295. my $basedir = (caller)[1];
      296. $basedir =~ s/\/?[^\/]*$//;
      297. $basedir = '.' if $basedir eq '';
      298. return bless({
      299. __basedir => $basedir,
      300. __checktime => $checktime,
      301. });
      302. }
      303. sub FETCH
      304. {
      305. my ($self,$key) = @_;
      306. return $self->{__basedir} if $key eq '__basedir';
      307. my @parts = split(/::/,$key);
      308. my $module = ($#parts>0 ? "$self->{__basedir}/$self->{__directories}{$parts[0]}/$parts[1]" : "$self->{__basedir}/$parts[0]");
      309. my $lastchange = ($self->{__checktime} ? (stat($module))[9] : 0);
      310. die {error_message => "Could not determine the modification time of $module, seems that this module doesn't exist. Please contact the webmaster."} if (!defined($lastchange));
      311. if (!exists($self->{$key}) || $self->{$key}{lastchange} != $lastchange)
      312. {
      313. my $result = do $module;
      314. if ($@)
      315. {
      316. die {error_message => "Failed to load the file $module. Possible reasons:<ul><li>The file doesn't exist<li>The file is incomplete<li>The program is not permitted to read the file</ul>Please contact the webmaster.<br><br>Perl error message:<br>$@"};
      317. }
      318. if (!ref($result))
      319. {
      320. die {error_message => "$module did not return a true value, maybe it is missing or defect. Please contact the webmaster."} if (!$result);
      321. $result = {};
      322. }
      323. $result->{lastchange} = $lastchange;
      324. $result->{filename} = $module;
      325. $self->{$key} = $result;
      326. return $result;
      327. }
      328. else
      329. {
      330. return $self->{$key};
      331. }
      332. }
      333. sub STORE
      334. {
      335. my ($self,$key,$value) = @_;
      336. if ($key eq 'directories')
      337. {
      338. $self->{__directories} = $value;
      339. }
      340. elsif ($key eq 'checktime')
      341. {
      342. $self->{__checktime} = $value;
      343. }
      344. }


      [/expander]

      Bei der 2 chat.pl Version sind ja auch die Daten im Sources anders.
      Wenn ich diese Datei verwende wird die error Log vom Server komplett zu gespammt von jedem User 4 Einträge im Sekunden Tackt die einträge sehen so aus.

      PHP-Quellcode

      1. [Fri Sep 27 07:53:05 2013] [error] [client x.x.x.x] Use of uninitialized value in transliteration (tr///) at ./Sources/Subs.pm line 138., referer: http://www.url/cgi-bin/chat.pl
      2. [Fri Sep 27 07:53:05 2013] [error] [client x.x.x.x] Use of uninitialized value in substitution (s///) at ./Sources/Subs.pm line 139., referer: http://www.url/cgi-bin/chat.pl
      3. [Fri Sep 27 07:53:05 2013] [error] [client x.x.x.x] Use of uninitialized value in transliteration (tr///) at ./Sources/Subs.pm line 140., referer: http://www.url/cgi-bin/chat.pl
      4. [Fri Sep 27 07:53:05 2013] [error] [client x.x.x.x] Use of uninitialized value in substitution (s///) at ./Sources/Subs.pm line 141., referer: http://www.url/cgi-bin/chat.pl
      5. [Fri Sep 27 07:53:05 2013] [error] [client x.x.x.x] Use of uninitialized value in hash element at ./Sources/Subs.pm line 142., referer: http://www.url/cgi-bin/chat.pl



      *ip adresse natürlich unkentlich gemacht und bei url die richtige url editiert.


      Auszug aus der Subs.pm

      PHP-Quellcode

      1. if (defined($input))
      2. {
      3. foreach my $pair (split(/&/, $input))
      4. {
      5. my($name, $value) = split(/=/, $pair);
      6. $name =~ tr/+/ /;
      7. $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
      8. $value =~ tr/+/ /;
      9. $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
      10. $input{$name} = $value;
      11. }
      12. }


      Die 4 Zeilen die immer wieder gemeldet werden sind die hier.

      PHP-Quellcode

      1. $name =~ tr/+/ /;
      2. $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
      3. $value =~ tr/+/ /;
      4. $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
      5. $input{$name} = $value;


      Leider ist das für mich noch totaler Bahnhof aber vielleicht hat jemand ja ne idee?
      Hosting-Panter.eu - Home
      Antiref.net


      if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
      if ($antwort == 0 ) { post ( Frage ) }
      Hi ho Danke erst mal für deine antwort.

      Ja warum er da mäckert kann ick auch nicht sagen und habe auch kein plan, wenn ick das mache ignoriert er vielleicht die 1 line aber was ist mit den anderen?
      Weil er sagt ja in 4 lines error

      PHP-Quellcode

      1. $name =~ tr/+/ /;
      2. $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
      3. $value =~ tr/+/ /;
      4. $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;


      kann das vielleicht am Server selber liegen und nicht am code? weil wie gesagt ich hatte nie probs mit der version gehabt oder so nur auf dem Server, ich kann dir auch nicht sagen welche Perl version da druff läuft aber wenn da schon php version 4.4.0 druff ist dann denke ich mal ist da auch ne ihralte version von Perl druff kann das daran liegen?

      Lg.
      Hosting-Panter.eu - Home
      Antiref.net


      if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
      if ($antwort == 0 ) { post ( Frage ) }
      Nein diese möglichkeit habe ich selber garnicht da es nur ein gemiteter Webspace ist.
      Aber ich habe die möglichkeit den Server betreiber direkt anzuschgreiben der aber zu Zeit wohl etwas im stress ist XDDD

      Dann werde ich das erst mal versuchen und ihn fragen ob er die sachen upt...

      Lg.
      Hosting-Panter.eu - Home
      Antiref.net


      if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
      if ($antwort == 0 ) { post ( Frage ) }