Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler in Gr_Radiostatus - PHP Fusion 7

Einklappen

Neue Werbung 2019

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

  • Fehler in Gr_Radiostatus - PHP Fusion 7

    Hallo,

    ich hoffe das mir hier jemand helfen kann.
    Ich habe auf einer Webseite ein Modul, welches einen Radio Stream Server abfragt. Die DJ's hinterlegen beim Senden in einen Imfo feld für IRC ihren DJ Name, das script liest diesen und zeigt dann auf der HP an wer gerade sendet.
    Das funktioniert auch alles.

    Aber wenn keiner Sendet läuft ein Autostream, bei diesem kann man leider nix in das IRC Feld eingeben.

    Wenn das script dort nix findet gibt es eine fehlermeldung, die das design der page auseinander zieht.

    PHP-Code:
    .../infusions/gr_radiostatus_panel/gr_radiostatus_class.php on line 87 
    In Line 87 steht dieser abfrage code:

    PHP-Code:
    86    function GetIRC() {
    87        return($this->values[$this->indexes["IRC"][0]]["value"]); 
    Ich habe nicht viel ahnung von PHP, aber es muss doch möglich sein das script so zu ändern, das es wenn es keine daten bei IRC findet vielleicht automatisch alternativ die daten aus dem Stream Titel (SERVERTITLE) verwendet oder einfach nur statt der Fehlermeldung "Autostream" anzeigt.

    Hier nochmal der komplette code:

    PHP-Code:
    <?php
    /*-------------------------------------------------------+
    | PHP-Fusion Content Management System
    | Copyright © 2002 - 2008 Nick Jones
    | http://www.php-fusion.co.uk/
    +--------------------------------------------------------+
    | Title: Gr_Radiostatus v1.0 for PHP-Fusion 7
    | Filename: gr_radiostatus_admin.php
    | Author: Ralf Thieme
    | Webseite: www.granade.eu
    +--------------------------------------------------------+
    | This program is released as free software under the
    | Affero GPL license. You can redistribute it and/or
    | modify it under the terms of this license which you
    | can read by viewing the included agpl.txt or online
    | at www.gnu.org/licenses/agpl.html. Removal of this
    | copyright header is strictly prohibited without
    | written permission from the original author(s).
    +--------------------------------------------------------*/
    if (!defined("IN_FUSION")) { die("Access Denied"); }

    class 
    SHOUTcast {
        var 
    $SHOUTcastData;
        var 
    $error;
        
        function 
    GetStatus($ip$port$pw) {
            
    error_reporting(0);
            
    $fp fsockopen($ip$port$errno$errstr1);
            if (!
    $fp) {
                
    error_reporting(E_ALL);
                
    $this->error "$errstr ($errno)";
                return(
    0);
            } else {
                
    error_reporting(E_ALL);
                
    socket_set_timeout($fp2);
                
    fputs($fp"GET /admin.cgi?pass=".$pw."&mode=viewxml HTTP/1.0\r\n");
                
    fputs($fp"User-Agent: Mozilla\r\n\r\n");
                while (!
    feof($fp)) {
                    
    $this->SHOUTcastData .= fgets($fp512);
                }
                
    fclose($fp);
                if (
    stristr($this->SHOUTcastData"HTTP/1.0 200 OK") == true) {
                    
    $this->SHOUTcastData trim(substr($this->SHOUTcastData42));
                } else {
                    
    $this->error "Bad login";
                    return(
    0);
                }
                
    $xmlparser xml_parser_create('ISO-8859-1');
                if (!
    xml_parse_into_struct($xmlparser$this->SHOUTcastData$this->values$this->indexes)) {
                    
    $this->error "Unparsable XML";
                    return(
    0);
                }
                
    xml_parser_free($xmlparser);
                return(
    1);
            }
        }
        
        function 
    GetCurrentListeners() {
            return(
    $this->values[$this->indexes["CURRENTLISTENERS"][0]]["value"]);
        }

        function 
    GetPeakListeners() {
            return(
    $this->values[$this->indexes["PEAKLISTENERS"][0]]["value"]);
        }

        function 
    GetMaxListeners() {
            return(
    $this->values[$this->indexes["MAXLISTENERS"][0]]["value"]);
        }

        function 
    GetServerGenre() {
            return(
    $this->values[$this->indexes["SERVERGENRE"][0]]["value"]);
        }
        
        function 
    GetServerURL() {
            return(
    $this->values[$this->indexes["SERVERURL"][0]]["value"]);
        }
        
        function 
    GetServerTitle() {
            return(
    $this->values[$this->indexes["SERVERTITLE"][0]]["value"]);
        }
        
        function 
    GetCurrentSongTitle() {
            return(
    $this->values[$this->indexes["SONGTITLE"][0]]["value"]);
        }
        
        function 
    GetIRC() {
            return(
    $this->values[$this->indexes["IRC"][0]]["value"]);
        }
        
        function 
    GetAIM() {
            return(
    $this->values[$this->indexes["AIM"][0]]["value"]);
        }
        
        function 
    GetICQ() {
            return(
    $this->values[$this->indexes["ICQ"][0]]["value"]);
        }

        function 
    GetStreamStatus() {
            return(
    $this->values[$this->indexes["STREAMSTATUS"][0]]["value"]);
        }
        
        function 
    GetBitRate() {
            return(
    $this->values[$this->indexes["BITRATE"][0]]["value"]);
        }
        
        function 
    GetSongHistory() {
            for(
    $i=1;$i<sizeof($this->indexes['TITLE']);$i++) {
                
    $arrhistory[$i-1] = array(
                    
    "playedat"=>$this->values[$this->indexes['PLAYEDAT'][$i]]['value'],
                    
    "title"=>$this->values[$this->indexes['TITLE'][$i]]['value']
                );
            }
            return(
    $arrhistory);
        }

        function 
    GetError() { return($this->error); }
    }
    ?>
    >>> [url]http://www.locomotion-reloadet.de[/url] <<<

  • #2
    Bitte immer die komplette Fehlermeldung posten und nicht nur das Ende.

    So könnte eine schnelle Anpassung aussehen, falls es das ist, was du meintest.
    PHP-Code:
    22 class SHOUTcast {
    23    const DEFAULT_IRC "Autostream";

    86    function GetIRC() { 
    87        return isset($this->values[$this->indexes["IRC"][0]]["value"])
    88            $this->values[$this->indexes["IRC"][0]]["value"]
    89            self::DEFAULT_IRC
    Ansonsten wärs hilfreich, wenn wir eine Beispiel-XML bekommen, die der Server liefert.

    Kommentar


    • #3
      Hi,

      versuche es mal hiermit:

      Code:
      function GetIRC() {
      if($this->values[$this->indexes["IRC"][0]]["value"] != "") {
      return $this->values[$this->indexes["IRC"][0]]["value"];
      } else {
      return "Autostream";
      }
      Programmers are busy writing the next best idiot proof software. The universe in the meantime is making the next best idiot. The universe is winning...

      Kommentar


      • #4
        Es funktioniert leider nicht!

        Erstmal, die komplette fehlermeldung lautet:
        PHP-Code:
        NoticeUndefined indexvalue in /homepages/13/d208728423/htdocs/locomotion-reloadet/locotest/infusions/gr_radiostatus_panel/gr_radiostatus_class.php on line 87 
        Und griffith, wo bekomme ich so eine Beispiel-XML her?

        So, jetzt zu Euren vorschlägen, die Variante von Griffith zeigt mir folgenden fehler:
        PHP-Code:
        Parse errorsyntax errorunexpected T_CONSTexpecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homepages/13/d208728423/htdocs/locomotion-reloadet/locotest/infusions/gr_radiostatus_panel/gr_radiostatus_class.php on line 23 
        Und die Variante von BigManu zeigt diesen Fehler:
        PHP-Code:
        Parse errorsyntax errorunexpected ';'expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homepages/13/d208728423/htdocs/locomotion-reloadet/locotest/infusions/gr_radiostatus_panel/gr_radiostatus_class.php on line 121 
        Ich kann im Admin bereich von PHP Fusion 7 bei dem Radiostatus Modul einstellen was abgefragt werden soll, Stream Name, AIM, ICQ und IRC. Da IRC von den DJ's nicht genutzt wird habe ich mich dafür entschieden. Die tragen in Ihrem Sendeprogramm bei IRC Ihern DJ Name ein, wie er auf der HP steht ein. Die daten werden dann über den Shoutcast Server mitgesendet. Die HP erkennt die übereinstimmung und zeigt an wer gerade sendet. Wenn in dem Feld IRC irgendwas drin steht, was nicht mit einem Registrierten DJ Name übereinstimmt, dann zeigt die HP an Auto DJ. Aber wenn das feld leer bleibt, so wie es auch bei dem Autostream der fall ist, kommt es zu dieser Fehlermeldung.
        >>> [url]http://www.locomotion-reloadet.de[/url] <<<

        Kommentar


        • #5
          Benutzt du noch PHP4? Zeig mal deine phpinfo() Oo

          Kommentar


          • #6
            Da auf tief verschachtelte Informationen zugegriffen wird, muss man ALLE Bestandteile auf vorhandensein und Gültigkeit überprüfen:

            - ist $this->values vorhanden, ist es ein Array, hat es Einträge?
            - ist $this->indexes vorhanden, ist es ein Array, hat es einen key "IRC"?
            - liegt unterhalb von $this->indexes['IRC'] ein Array, hat es einen Eintrag an Stelle 0?
            - liegt unterhalb von $this->indexes['IRC'][0] ein Array, hat es einen Eintrag "value"?
            - gibt es einen Wert in $this->values and der Position, die durch $this->indexes['IRC'][0]['values'] bestimmt wird?

            edit: korrigiert, es heisst $this->indexes
            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

            Kommentar


            • #7
              Naja wenn du die Beispiele von denen ausprobierst solltest du schon daruaf achten, dass die Syntax auch richtig ist, bei dem einen Haste irgendwo ne offene geschweifte Klammer vergessen und beim zweiten nen Semikolon [für die ungebildeteten: ";" ]
              Deine Fehlermeldung beruht darauf, dass du auf einen Index zugreifst(in einem Array), welcher nicht definiert ist!
              "My software never has bugs, it just develops random features."
              "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

              Kommentar


              • #8
                Hier ist meine PHP Info!
                >>> [url]http://www.locomotion-reloadet.de[/url] <<<

                Kommentar


                • #9
                  Dein Thread-Titel ist schlecht bzw. unglücklich gewählt. Bitte ändere diesen und beachte dabei Bitte aussagekräftige Threadtitel verwenden
                  Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                  Kommentar


                  • #10
                    das schreit nach einem update
                    Gruß Werner
                    Mein kleines Projekt: Fussball Satrup
                    Wird ein OpenSource CMS für Fussballvereine

                    Kommentar


                    • #11
                      Zitat von woskamp Beitrag anzeigen
                      das schreit nach einem update
                      Falls Du die PHP Version meinst, hab den Webspace bei 1&1 und keinen einfluss auf Updates.
                      >>> [url]http://www.locomotion-reloadet.de[/url] <<<

                      Kommentar


                      • #12
                        Bei 1&1 kannste ganz einfach über eine .htaccess Datei auf PHP5 umstellen. Hatte mal bei denen auch was auf dem Webspace machen müssen, daher weiß ich das!
                        Ich schau mal ob ich noch irgendwo stehen hab was du da machen musst...
                        "My software never has bugs, it just develops random features."
                        "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                        Kommentar


                        • #13
                          Zitat von Paul.Schramenko Beitrag anzeigen
                          Naja wenn du die Beispiele von denen ausprobierst solltest du schon daruaf achten, dass die Syntax auch richtig ist, bei dem einen Haste irgendwo ne offene geschweifte Klammer vergessen und beim zweiten nen Semikolon [für die ungebildeteten: ";" ]
                          Deine Fehlermeldung beruht darauf, dass du auf einen Index zugreifst(in einem Array), welcher nicht definiert ist!
                          Hab nochmal nachgeschaut, hatte bei einem Beispiel wirklich ne klammer vergessen. Aber nun kam wieder die erste Fehlermeldung, die vor der änderung da war.
                          PHP-Code:
                          Undefined indexvalue 
                          >>> [url]http://www.locomotion-reloadet.de[/url] <<<

                          Kommentar


                          • #14
                            Stimmt, das mit der .htaccess hatte ich bei ner anderen Webseite gemacht.

                            Einfach die Datei ins verzeichniss setzen wo die Webseite ist. Der Inhalt der datei ist:
                            PHP-Code:
                            AddType x-mapp-php5 .php
                            AddHandler x
                            -mapp-php5 .php 
                            >>> [url]http://www.locomotion-reloadet.de[/url] <<<

                            Kommentar


                            • #15
                              Ist das Thema damit erledigt?

                              Bitte nicht ignorieren: http://www.php.de/517118-post9.html.
                              [URL]http://hallophp.de[/URL]

                              Kommentar

                              Lädt...
                              X