php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 24.05.2010, 12:10  
Neuer Benutzer
 
Registriert seit: 24.05.2010
Beiträge: 8
PHP-Kenntnisse:
Anfänger
DJ_Scotty befindet sich auf einem aufstrebenden Ast
Standard 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); }
}
?>

Geändert von DJ_Scotty (26.05.2010 um 20:20 Uhr).
DJ_Scotty ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 24.05.2010, 12:32  
Erfahrener Benutzer
 
Registriert seit: 24.05.2008
Beiträge: 173
PHP-Kenntnisse:
Anfänger
Griffith sorgt für eine eindrucksvolle AtmosphäreGriffith sorgt für eine eindrucksvolle Atmosphäre
Standard

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.
Griffith ist offline  
Alt 24.05.2010, 12:33  
Benutzer
 
Registriert seit: 13.03.2005
Beiträge: 43
PHP-Kenntnisse:
Fortgeschritten
BigManu
BigManu eine Nachricht über ICQ schicken BigManu eine Nachricht über Skype™ schicken
Standard

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";
}
BigManu ist offline  
Alt 24.05.2010, 18:20  
Neuer Benutzer
 
Registriert seit: 24.05.2010
Beiträge: 8
PHP-Kenntnisse:
Anfänger
DJ_Scotty befindet sich auf einem aufstrebenden Ast
Standard

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.

Geändert von DJ_Scotty (24.05.2010 um 18:39 Uhr).
DJ_Scotty ist offline  
Alt 24.05.2010, 22:51  
Erfahrener Benutzer
 
Registriert seit: 24.05.2008
Beiträge: 173
PHP-Kenntnisse:
Anfänger
Griffith sorgt für eine eindrucksvolle AtmosphäreGriffith sorgt für eine eindrucksvolle Atmosphäre
Standard

Benutzt du noch PHP4? Zeig mal deine phpinfo() Oo
Griffith ist offline  
Alt 25.05.2010, 09:32  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

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.

Geändert von lstegelitz (25.05.2010 um 09:37 Uhr).
lstegelitz ist offline  
Alt 25.05.2010, 09:32  
Erfahrener Benutzer
 
Registriert seit: 15.04.2010
Beiträge: 813
PHP-Kenntnisse:
Fortgeschritten
Paul.Schramenko befindet sich auf einem aufstrebenden Ast
Standard

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!"
Positive Bewertungen sind nicht unwillkommen...
Paul.Schramenko ist offline  
Alt 26.05.2010, 15:35  
Neuer Benutzer
 
Registriert seit: 24.05.2010
Beiträge: 8
PHP-Kenntnisse:
Anfänger
DJ_Scotty befindet sich auf einem aufstrebenden Ast
Standard

Hier ist meine PHP Info!
__________________
>>> http://www.locomotion-reloadet.de <<<
DJ_Scotty ist offline  
Alt 26.05.2010, 15:38  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Dein Thread-Titel ist schlecht bzw. unglücklich gewählt. Bitte ändere diesen und beachte dabei Bitte aussagekräftige Threadtitel verwenden
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
Alt 26.05.2010, 15:39  
Benutzer
 
Registriert seit: 14.10.2009
Beiträge: 35
PHP-Kenntnisse:
Fortgeschritten
woskamp befindet sich auf einem aufstrebenden Ast
woskamp eine Nachricht über Skype™ schicken
Standard

das schreit nach einem update
__________________
Gruß Werner
Mein kleines Projekt: Fussball Satrup
Wird ein OpenSource CMS für Fussballvereine
woskamp ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Zip Archive mit PHP erstellen - Kein Fehler, aber ZIP Archiv ist nicht da robat PHP Tipps 2010 34 09.03.2011 20:17
MySQL: Fehler 10046 keine Datenbank ausgewählt aschunk Datenbanken 5 22.04.2010 12:27
[Erledigt] Syntax Error - Wo ist der Fehler? Extremefall PHP Tipps 2009 5 14.12.2009 17:46
[Erledigt] vista, windows update Fehler 80070422 Screeze Off-Topic Diskussionen 3 23.09.2009 18:24
[Erledigt] Fehler bei Array ausgabe newWorldOrder PHP Tipps 2009 2 23.02.2009 17:29
Include fehler abfangen? fadass PHP Tipps 2005-2 16 23.12.2008 13:07
Frage: Suche Fehler in diesem Script... PHP Tipps 2005-2 14 25.10.2005 19:24
[Erledigt] [phpmailer] - SMTP Fehler: Die folgenden Empfänger sind ... PHP Tipps 2005-2 1 05.10.2005 15:19
[Erledigt] Seite wird nicht angezeigt, untersch. Fehler bei IE/FF/Safar PHP-Fortgeschrittene 19 31.05.2005 14:52
Blöder MySQL Fehler PHP Tipps 2005 3 15.05.2005 03:14
Fehlermeldung - aber kein fehler... Tschuu HTML, Usability und Barrierefreiheit 16 14.03.2005 15:56
Wo liegt der fehler?? PHP-Fortgeschrittene 5 22.12.2004 09:54
finde fehler nicht [in guestbook-script] PHP Tipps 2004 12 22.09.2004 22:23
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
radiostatus php fusion 7, unparsable xml, php fusion radiostatus, streamstatus php fusion 7, radiostatus php fusion 7 download, php fusion 7 radiostatus, radiostatus php fusion, radiostatus php-fusion, php fusion 7 radio, gr_radiostatus, radiostatus im header, radiostatus für php fusion 7, unparsable xml php, php radiostatus, radiostatus für php fusion, radiostatus unparsable xml, gr_radiostatus_panel, php fusion 7, php fusion shoutcast, unparsable xml radiostatus

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:02 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum