[gelöst] interface + mysql + frage ;)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [gelöst] interface + mysql + frage ;)

    hallo
    ich habe nen kleines Problem mit dem interface script ... ich habe ne loginseite + autentifizierung via mysql

    nun ist es so das das script zwar so funktionieren würde aber ich will, das der nur den server anzeigt der die selbe id hat wie der user

    also mal der Reihe nach ^^
    Ich habe nen script, da kann ich nen server starten, stoppen, bearbeiten alles mit dem interface (nutzt ice)
    Normalerweise zeigt es alle Server an und man kann neue anlegen und löschen und alle server bearbeiten usw...
    Das will ich ändern und habe mir gedacht ich bastle da selber mal was und das einzigste was ich jetzt bräuchte währe, das (auch wenn mehrere Server da sind) nur der server dem eingeloggten user angezeigt wird, der die selbe id hat (das script ordnet die server nach id's zu und aus der Datenbank holt sich meine session auch die id)
    Nun müsste ich nur noch wissen wie ich das hier richtig einbinden kann:

    Hier mal das Script:
    Code:
    <?php
    Ice_loadProfile();
    
    if ($argc > 0) {
      for($i=1;$i<$argc;$i++) {
        parse_str($argv[$i], $tmp);
        $_REQUEST=array_merge($_REQUEST, $tmp);
      }
    }
    
    function ucmp($a, $b) {
      if (($a->playerid == 0) || ($b->playerid == 0)) {
        return ($a->playerid - $b->playerid);
      }
      return strcasecmp($a->name, $b->name);
    }
    
    $confitems = array();
    $confbig = array();
    $confitems['password']="Passwort f&uuml;r unregistrierte Benutzer";
    $confitems['timeout']="Zeit bis *Tote* User gekickt werden";
    $confitems['welcometext']="Wilkommensnachricht";
    $confbig['welcometext']=1;
    $confitems['registername']="Server Name";
    $confbig['key']=1;
    
    try {
      $base = $ICE->stringToProxy("Meta:tcp -h 127.0.0.1 -p 6502");
      $meta = $base->ice_checkedCast("::Murmur::Meta");
    
      $default = $meta->getDefaultConf();
    
      if (! is_null($_REQUEST['newserver'])) {
        $meta->newServer();
      } else if (! is_null($_REQUEST['delserver'])) {
        $meta->getServer($_REQUEST['delserver'] + 0)->delete();
      } else if (! is_null($_REQUEST['stop'])) {
        $meta->getServer($_REQUEST['stop'] + 0)->stop();
      } else if (! is_null($_REQUEST['start'])) {
        $meta->getServer($_REQUEST['start'] + 0)->start();
      } else if (! is_null($_REQUEST['action'])) {
        $server = $meta->getServer($_REQUEST['action'] + 0);
        if (! is_null($_REQUEST['kick'])) {
          $server->kickPlayer($_REQUEST['kick'] + 0, "Mushroom");
        }
      } else if (! is_null($_REQUEST['uedit'])) {
        $server = $meta->getServer($_REQUEST['uedit'] + 0);
        if (isset($_REQUEST['newplayer'])) {
          $_REQUEST['uid'] = $server->registerPlayer($_REQUEST['newplayer']);
        }
        if (! is_null($_REQUEST['deleteplayer'])) {
          $server->unregisterPlayer($_REQUEST['deleteplayer'] + 0);
        }
        if (! is_null($_REQUEST['uid'])) {
          $user = $server->getRegistration($_REQUEST['uid'] + 0);
          if (! is_null($_REQUEST['set'])) {
            $user->email = $_REQUEST['email'];
            $user->pw = $_REQUEST['pw'];
            $server->updateRegistration($user);
              } 
        else
        {
            echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">\n";
            echo "<p>\n";
            echo "<b>Name:</b> $user->name<br />\n";
            echo "<input type=\"hidden\" name=\"set\" value=\"1\" />\n";
            echo "<input type=\"hidden\" name=\"uedit\" value=\"".$server->id()."\" />\n";
            echo "<input type=\"hidden\" name=\"uid\" value=\"$user->playerid\" />\n";
            echo "<b>Email:</b> <input type=\"text\" name=\"email\" size=\"30\" maxlength=\"128\" value=\"".htmlspecialchars($user->email)."\" /><br />\n";
            echo "<b>New password:</b> <input type=\"password\" name=\"pw\" size=\"30\" maxlength=\"128\" /><br />\n";
            echo "<input type=\"submit\" />\n";
            echo "</p>\n";
            echo "</form>\n";
          }
        }
        echo "<h1>Registered User List</h1>\n";
        echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">\n";
        echo "<p>\n";
        echo "<input type=\"hidden\" name=\"uedit\" value=\"".$server->id()."\" />\n";
        echo "<b>New User:</b>";
        echo "<input type=\"text\" name=\"newplayer\" size=\"30\" maxlength=\"60\" />";
        echo "<input type=\"submit\" />\n";
        echo "</p>\n";
        echo "</form>\n";
        echo "<table>\n";
        echo "<tr><th>UserName</th><th>Email</th><th></th></tr>\n";
        $users = $server->getRegisteredPlayers("");
        usort($users, "ucmp");
        foreach($users as $u) {
          echo "<tr><td>$u->name</td><td>".$u->email."</td><td>";
          echo "<a href=\"?uedit=".$server->id()."&amp;uid=".$u->playerid."\">[Edit]</a> ";
          echo "<a href=\"?uedit=".$server->id()."&amp;deleteplayer=".$u->playerid."\">[Unregister]</a> ";
          echo "</td></tr>\n";
        }
        echo "</table>\n";
      } else if (! is_null($_REQUEST['server'])) {
        $server = $meta->getServer($_REQUEST['server'] + 0);
        if (! is_null($_REQUEST['set'])) {
          foreach($confitems as $key=>$desc) {
            $server->setConf($key, $_REQUEST[$key]);
          }
        } else {
          $conf = $server->getAllConf();
          $default['port'] += $server->id() - 1;
          echo "<h1>Server Configuration</h1>\n";
          echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">\n";
          echo "<div>\n";
          echo "<input type=\"hidden\" name=\"server\" value=\"".$server->id()."\" />\n";
          echo "<input type=\"hidden\" name=\"set\" value=\"1\" />\n";
          echo "</div>\n";
          echo "<table><tr><th>Description</th><th>Default</th><th>Value</th></tr>\n";
          foreach($confitems as $key=>$desc) {
            if (! isset($confbig[$key])) {
              echo "<tr><td>$desc</td><td>".htmlspecialchars($default[$key])."</td><td>";
              echo "<input type=\"text\" name=\"$key\" size=\"30\" maxlength=\"64000\" value=\"".htmlspecialchars($conf[$key])."\" />";
              echo "</td></tr>\n";
            } else {
              echo "<tr><td>$desc</td><td colspan=\"2\">".htmlspecialchars($default[$key])."</td></tr>";
              echo "<tr><td>&nbsp;</td><td colspan=\"2\"><textarea rows=\"5\" cols=\"80\" name=\"$key\">".htmlspecialchars($conf[$key])."</textarea>";
              echo "</td></tr>\n";
            }
          }
          echo "</table>\n";
          echo "<div><input type=\"submit\" /></div>\n";
          echo "</form>\n";
        }
      }
    
      $servers = $meta->getAllServers();
      $booted = $meta->getBootedServers();
      foreach($servers as $s) {
        $name = $s->getConf("registername");
        if (! $name) {
          $name =  $default["registername"];
        }
        $id = $s->id();
    [B][COLOR=Red]    echo "<h1>SERVER: " .$name ."</h1>\n";
        echo "<p>\n";
        echo "<a href=\"?server=".$_SESSION["user_id"]."\">[Config]</a> ";
        if (in_array($s, $booted)) {
          echo "<a href=\"?uedit=".$_SESSION["user_id"]."\">[Manage Users]</a> ";
          echo "<a href=\"?stop=".$_SESSION["user_id"]."\">[Stop]</a> ";
        } else {
          echo "<a href=\"?start=".$_SESSION["user_id"]."\">[Start]</a> ";
        }[/COLOR][COLOR=Red]
        echo "</p>\n";
        if (in_array($s, $booted)) {
          echo "<table><tr><th>Name</th><th>Channel</th><th>Actions</th></tr>\n";
    
          $channels = $s->getChannels();
          $players = $s->getPlayers();
    
          foreach($players as $pid => $state) {
            $chan = $channels[$state->channel];
            echo "<tr><td>".$state->name."</td><td>".$chan->name."</td><td>";
            echo "<a href=\"?action=".$_SESSION["user_id"]."&amp;kick=$state->session\">[Kick]</a>";
            echo "</td></tr>\n";
          }
          echo "</table>\n";[/COLOR][/B]
        }
      }
    } catch (Ice_Exception $ex) {
      echo "<p>\n<pre>\n";
      print_r($ex);
      echo "</pre>\n</p>\n";
    }
    
    ?>
    Meineserachtens nach, gibt der untere (hier rot makierte Bereich die server aus) ich habe hier schonmal den wert [COLOR=Red]$id[/COLOR] mit [COLOR=Red]$_SESSION["user_id"] [/COLOR]ersetzt, das ganze funktioniert mehr oder weniger xD er zeigt zwar noch alle Server an, aber man kann nur noch seinen eigenen bearbeiten...

    gibts da i-eine Möglichkeit? ggf. kann man auch was mit der
    Code:
      $servers = $meta->getAllServers();
    machen ^^ (ca. 6 Zeilen über meinen rotmakierten Bereich)

    währe cool wenn wer helfen könnte

    mfg
    Kai

    P.S. hoffe das es hier richtig ist und mein Post nicht zu lang
    Zuletzt geändert von Restless; 29.10.2009, 00:48. Grund: gelöst

  • #2
    Wie war noch gleich die Frage?

    Kommentar


    • #3
      ja sry ^^
      xD
      also die frage war, wie man es schafft, das statt alle server nur der server mit der id des users angezeigt wird ^^ (jedem server wird eine id zugeordnet und jeden user dank mysql sowieso)

      Kommentar


      • #4
        if ($id != $_SESSION['user_id']) continue;

        direkt vor deinen roten Code.

        Kommentar


        • #5
          super danke hat gefunzt

          ma sehen ob ich closen kann, ansonsten Jetzt kann geclosed werden xD

          Kommentar


          • #6
            Die Threads werden hier nicht geschlossen
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar

            Lädt...
            X