addalias.pl 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. #!/usr/bin/perl -w
  2. # By Doomshammer <doomshammer@doomshammer.yi.org>
  3. print "Content-Type: text/html\n\n";
  4. my %oldnicks;
  5. open(FILE, "<users.cfg") || die "Datei nicht gefunden";
  6. $i = 0;
  7. while(<FILE>) {
  8. if($_ =~ /^<user/) {
  9. $users[$i] = $_;
  10. chomp $users[$i];
  11. $i++;
  12. }
  13. }
  14. close(FILE);
  15. $i=0;
  16. foreach(@users) {
  17. if($users[$i] =~ /nick=/) {
  18. if($users[$i] =~ /nick="(\S+)"(.*)/) {
  19. $nick[$i] = $1;
  20. $oldnicks{$nick[$i]}{'nick'} = $nick[$i];
  21. }
  22. if($users[$i] =~ /alias="(\S+)".*/ or $users[$i] =~ /alias="(.*)"\s/ or $users[$i] =~ /alias="(.*)">/) {
  23. $alias = $1;
  24. $oldnicks{$nick[$i]}{'alias'} = $alias;
  25. }
  26. if($users[$i] =~ /link="(\S+)"(.*)/) {
  27. $link = $1;
  28. $oldnicks{$nick[$i]}{'link'} = $link;
  29. }
  30. if($users[$i] =~ /pic="(\S+)"(.*)/) {
  31. $pic = $1;
  32. $oldnicks{$nick[$i]}{'pic'} = $pic;
  33. }
  34. if($users[$i] =~ /ignore="(\S+)"(.*)/) {
  35. $ignore = $1;
  36. if($ignore eq "y" or $ignore eq "Y") {
  37. $ignore = 1;
  38. } else {
  39. $ignore = 0;
  40. }
  41. $oldnicks{$nick[$i]}{'ignore'} = $ignore;
  42. }
  43. } else {
  44. $search = 1;
  45. }
  46. $i++;
  47. }
  48. if($ENV{'REQUEST_METHOD'} eq 'GET') {
  49. $input = $ENV{'QUERY_STRING'}
  50. } else {
  51. read(STDIN, $input, $ENV{'CONTENT_LENGTH'});
  52. }
  53. @formfields = split(/&/, $input);
  54. foreach $field (@formfields) {
  55. ($name, $value) = split(/=/, $field);
  56. $value =~ tr/+/ /;
  57. $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  58. $value =~ s/<!--(.|\n)*-->//g;
  59. $form{$name} = $value;
  60. }
  61. if($form{'ignore'} eq "on") { $form{'ignore'} = 1; }
  62. if($search ne "1") {
  63. foreach (@nick) {
  64. if($oldnicks{$_}{'nick'} eq $form{'nick'}) {
  65. $found = 1;
  66. }
  67. }
  68. if($found eq "1") {
  69. print "<p>F&uuml;r den angegebenen Nicknamen sind bereits Einstellung gesetzt:</p>\n";
  70. print "<table>\n <tr>\n";
  71. print " <td>Nickname:</td>\n <td>$oldnicks{$form{'nick'}}{'nick'}</td>\n";
  72. print " </tr>\n";
  73. if($oldnicks{$form{'nick'}}{'alias'}) {
  74. print " <tr>\n";
  75. print " <td>Aliase:</td>\n <td>$oldnicks{$form{'nick'}}{'alias'}</td>\n";
  76. print " </tr>\n";
  77. }
  78. if($oldnicks{$form{'nick'}}{'link'}) {
  79. print " <tr>\n";
  80. if($oldnicks{$form{'nick'}}{'link'} =~ /^http:|ftp:/) {
  81. print " <td>Link:</td>\n <td><a href=\"$oldnicks{$form{'nick'}}{'link'}\">$oldnicks{$form{'nick'}}{'link'}</a></td>\n";
  82. }
  83. elsif ($oldnicks{$form{'nick'}}{'link'} =~ /(.*)@(.*).(.*)/) {
  84. print " <td>Link:</td>\n <td><a href=\"mailto:$oldnicks{$form{'nick'}}{'link'}\">$oldnicks{$form{'nick'}}{'link'}</a></td>\n";
  85. } else {
  86. print " <td>Link:</td>\n <td>$oldnicks{$form{'nick'}}{'link'}</td>\n";
  87. }
  88. print " </tr>\n";
  89. }
  90. if($oldnicks{$form{'nick'}}{'pic'}) {
  91. print " <tr>\n";
  92. print " <td>Userpic:</td>\n <td valign=\"middel\"><a href=\"$oldnicks{$form{'nick'}}{'pic'}\"><img src=\"$oldnicks{$form{'nick'}}{'pic'}\" border=\"0\"></a></td>\n";
  93. print " </tr>\n";
  94. }
  95. if($oldnicks{$form{'nick'}}{'ignore'} eq "1") {
  96. print " <tr>\n";
  97. print " <td>Ignorieren:</td>\n <td>Ja</td>\n";
  98. print " </tr>\n";
  99. }
  100. print "</table>\n";
  101. print "<p>Bitte <a href=\"javascript:history.back()\">hier</a> klicken um einen anderen Nicknamen zu w&auml;hlen</p>\n";
  102. exit(0);
  103. }
  104. }
  105. if(!$form{'nick'}) {
  106. print "Kein Nickname eingegeben... Anfrage ung&uuml;ltig<br>";
  107. print "Bitte <a href=\"javascript:history.back()\">hier</a> klicken um einen Nicknamen zu w&auml;hlen";
  108. exit(0);
  109. }
  110. if($form{'nick'} and !$form{'alias'} and !$form{'link'} and !$form{'pic'} and !$form{'ignore'}) {
  111. print "Sie haben zwar einen Nicknamen gew&auml;hlt aber keine weiteren Einstellungen<br>\n";
  112. print "Bitte <a href=\"javascript:history.back()\">hier</a> klicken um weitere Einstellungen zu machen";
  113. exit(0);
  114. }
  115. $eintrag = "<user";
  116. if($form{'nick'}) {
  117. $eintrag = $eintrag . " nick=\"$form{'nick'}\"";
  118. }
  119. if($form{'alias'}) {
  120. $eintrag = $eintrag . " alias=\"$form{'alias'}\"";
  121. }
  122. if($form{'link'}) {
  123. $eintrag = $eintrag . " link=\"$form{'link'}\"";
  124. }
  125. if($form{'pic'}) {
  126. $eintrag = $eintrag . " pic=\"$form{'pic'}\"";
  127. }
  128. if($form{'ignore'} eq "1") {
  129. $eintrag = $eintrag . " ignore=\"y\"";
  130. }
  131. $eintrag = $eintrag . ">";
  132. print <<HTML
  133. Dein Nickname wurde erfolgreich eingetragen:<br>\n
  134. <table>
  135. <tr>
  136. <td>Nickname:</td><td>$form{'nick'}</td>
  137. </tr>
  138. HTML
  139. ;
  140. if($form{'alias'}) {
  141. print " <tr>\n";
  142. print " <td>Aliase:</td><td>$form{'alias'}</td>\n";
  143. print " </tr>\n";
  144. }
  145. if($form{'link'}) {
  146. print " <tr>\n";
  147. print " <td>Link:</td><td><a href=\"$form{'link'}\">$form{'link'}</a></td>\n";
  148. print " </tr>\n";
  149. }
  150. if($form{'pic'}) {
  151. print " <tr>\n";
  152. print " <td>Userpic:</td><td><img src=\"$form{'pic'}\"></td>\n";
  153. print " </tr>\n";
  154. }
  155. if($form{'ignore'} eq "1") {
  156. print " <tr>\n";
  157. print " <td>Ignorieren:</td><td>Ja</td>\n";
  158. print " </tr>\n";
  159. }
  160. open(FILE, ">>users.cfg") || die "Datei nicht gefunden";
  161. print FILE "$eintrag\n";
  162. close(FILE);