Hilfe bei Shoutcast Script

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

  • Hilfe bei Shoutcast Script

    Hallo ich brauche Hilfe,

    nun soll in meinem Script eine variable $DJ [AIM]
    mit dem Passenden Bild ersetzt werden sprich steht dort speedway als ausgabe dan soll das Bild an der Stelle wieder gegeben .

    Steht dort jetzt Funy soll er das Bild von Funy zeigen und so weiter..

    Habe schon alles Probiert aber bekomme es nicht ohne Hilfe von euch hin...


    Hier das Script um das es Geht...

    Quellcode

    1. <?php
    2. /*
    3. Shoutcast stats through XML
    4. By Rayeh
    5. http://rayeh.sytes.net
    6. */
    7. $host = "ZENSIERT VOM ADMIN!"; //Hostname, or ip address of server. IE blah.com or xx.xx.xx.xx
    8. $port = "6000"; //Port server is running on. IE 8000
    9. $password = "ZENSIERT VOM ADMIN!"; //Password of server, can be normal or admin. Doesn't matter.
    10. //Configuration Finished
    11. //Runs each time an XML element starts
    12. function StartHandler(&$Parser, &$Elem, &$Attr) {
    13. global $Data, $CData;
    14. /* Start with empty CData array. */
    15. $CData = array();
    16. /* Put each attribute into the Data array. */
    17. while ( list($Key, $Val) = each($Attr) ) {
    18. $Data["$Elem:$Key"] = trim($Val);
    19. // debug // echo "$Elem:$Key = " . $Data["$Elem:$Key"] . "\n";
    20. }
    21. }
    22. //Runs each time XML character data is encountered
    23. function CharacterHandler(&$Parser, &$Line) {
    24. global $CData;
    25. /*
    26. * Place lines into an array because elements
    27. * can contain more than one line of data.
    28. */
    29. $CData[] = $Line;
    30. }
    31. //Runs each time an XML element ends
    32. function EndHandler(&$Parser, &$Elem) {
    33. global $Data, $CData, $listeners, $server, $song, $dj, $wee;
    34. //Mush all of the CData lines into a string and put it into the $Data array.
    35. $Data[$Elem] = trim( implode('', $CData) );
    36. //echo "$Elem = " . $Data[$Elem] . "<br>\n";
    37. switch ($Elem){
    38. //for each case, we are putting some data into a variable.
    39. case 'AIM':
    40. $dj['AIM'] = $Data['AIM'];
    41. break;
    42. }
    43. }
    44. //open connection
    45. $fp = fsockopen("$host", $port, &$errno, &$errstr, 30);
    46. if (!$fp) {
    47. echo "Connection to server could not be established! <BR>";
    48. }
    49. else {
    50. //request xml
    51. fputs($fp,"GET /admin.cgi?pass=".$password."&mode=viewxml&page=0 HTTP/1.0\nUser-Agent: Mozilla Compatible\n\n");
    52. while(!feof($fp)) {
    53. //put xml into $Data
    54. $Contents .= fgets($fp, 1000);
    55. }
    56. }
    57. //close connection
    58. fclose($fp);
    59. $Contents = str_replace('HTTP/1.0 200 OK','', $Contents);
    60. $Contents = str_replace('Content-Type:text/xml','', $Contents);
    61. $Contents = str_replace("\n",'', $Contents);
    62. $Contents = str_replace("\r",'', $Contents);
    63. $Contents = preg_replace('/(&amp;|&)/i', '&amp;', $Contents);
    64. $Contents = preg_replace('/[^\x20-\x7E\x09\x0A\x0D]/', "\n", $Contents);
    65. $Data = array();
    66. // Initialize the parser.
    67. $Parser = xml_parser_create('ISO-8859-1');
    68. xml_set_element_handler($Parser, 'StartHandler', 'EndHandler');
    69. xml_set_character_data_handler($Parser, 'CharacterHandler');
    70. //Pass the content string to the parser.
    71. if (!xml_parse($Parser, $Contents)) {
    72. $Probs[] = "$URI$Sym\n Had problem parsing file:\n "
    73. . xml_error_string(xml_get_error_code($Parser));
    74. }
    75. if (isset($Probs)) {
    76. echo implode("\n", $Probs);
    77. }
    78. //Output
    79. $listeners['AVERAGETIME'] = $listeners[AVERAGETIME]/60;
    80. $wee = $wee -1;
    81. //um diese ausgabe geht es
    82. echo "
    83. <table width=600 border=0>
    84. <tr><td>AIM:</td><td>$dj[AIM]</td></tr>\n
    85. //(das soll dan anstelle von $dj[AIM] eingesetzt werden wenn der name übereinstimmt]
    86. speedway =<A HREF="http://xxxx.xxxx" TARGET="_blank"><IMG SRC="http://xxxx.xxxx.xxs/userpics/10002/thumb_Bild005_befo.JPG" BORDER="0" alt="Mehr Infos Klicken" ></A><br>;
    87. ?>
    Alles anzeigen
  • Erstens einmal: Du hast hier die Zugangsdaten zu deiner Datenbank gepostet!!!! Mach sowas nie! Ich hab die Zugangsdaten mal rauseditiert.

    Zweitens: Ein Passwort unverschlüsselt über GET zu übergeben, wie das bei dir der Fall ist (siehe die Zeile mit fputs), ist auch fahrlässig. Gerade wo es sich um das Zugangspasswort der Datenbank handelt! Jeder kann das sehen!!

    Drittens: Ich weiß nicht, ob ich genau verstanden habe, was du willst. Wenn du einen String mit einem anderen ersetzen willst, so kannst du das in den meisten Fällen mit str_replace() tun. Diese Funktion verwendest du in deinem Script ja auch einige Male.

    Für den von dir skizzierten Fall dürfte das dann etwa so aussehen:

    Quellcode

    1. $ausgabe = str_replace($dj['AIM'],'speedway =<A HREF="http://xxxx.xxxx" TARGET="_blank"><IMG SRC="http://xxxx.xxxx.xxs/userpics/10002/thumb_Bild005_befo.JPG" BORDER="0" alt="Mehr Infos Klicken" ></A><br>');
  • Hallo nein nein war kein echtes Passwort sorry admin...



    Ja ich möchte das wenn der DJ sendet z.b Uwe sendet er hat als ausgabe bei AIM DJ_Uwe soll Uwe Bild kommen...

    Sendet jetzt Peter bei amin ausgabe DJ-Peter soll Peter Bild kommen...

    Immer für en anderen DJ en anders Bild,,,

    Hoffe ihr wisst was ich meine...???

    Danke für eure Hilfe weil ich weiss echt net mehr weiter,,,,,


    Wähhre das jetzt so richtig...????

    Quellcode

    1. //Output
    2. $listeners['AVERAGETIME'] = $listeners[AVERAGETIME]/60;
    3. $wee = $wee -1;
    4. echo "
    5. <table width=600 border=0>
    6. <tr><td>AIM:</td><td>$dj[AIM]</td></tr>\n
    7. ";
    8. $ausgabe = str_replace($dj['AIM'],'speedway =<A HREF="http://xxxx.xxxx" TARGET="_blank"><IMG SRC="http://xxxx.xxxx.xxs/userpics/10002/thumb_Bild005_befo.JPG" BORDER="0" alt="Mehr Infos Klicken" ></A><br>');
    9. ?>
    Alles anzeigen



    weil dan bekomme ich en fehler
    Warning: Wrong parameter count for str_replace() in /z.php on line 84
  • versuchs damit
    hier info zur funktion: [phpdoc]str_replace[/phpdoc]

    Quellcode

    1. //Output
    2. $listeners['AVERAGETIME'] = $listeners[AVERAGETIME]/60;
    3. $wee = $wee -1;
    4. $search = 'speedway';
    5. $replace = '<A HREF="http://xxxx.xxxx" TARGET="_blank"><IMG SRC="http://xxxx.xxxx.xxs/userpics/10002/thumb_Bild005_befo.JPG" BORDER="0" alt="Mehr Infos Klicken" ></A><br>';
    6. echo str_replace($search, $replace, "
    7. <table width=600 border=0>
    8. <tr><td>AIM:</td><td>$dj[AIM]</td></tr>\n
    9. ";
    Alles anzeigen
  • Habe es hinbekommen aber leider noch ein Probem...

    Also z.b Anita geht einwandfrei das Bild wunder Bar...

    Auch rene geht nur leider steht bei ihm noch ein Rene geschrieben daneben..

    Also Rene das Bild ist da nur dort steht auch noch ausgeschrieben Rene...

    Uff habe 10 Mods die ich da rein machen möchte bei jedem weiterm Mod steht dan dan ein weiter geschriebener Name..

    Z.B Uwe Bild kommt aber dan schon 2 mal geschrieben Uwe ..

    Das vermehrt sich um je weitere Mod...

    Hier das Funktionirende Script..

    Bitte euch noch mal um Hilfe und Danke allen für die Super Hilfe bis jetzt..




    Quellcode

    1. <?php
    2. include('./global.php');
    3. include('./config5.php');
    4. //Configuration Finished
    5. //Runs each time an XML element starts
    6. function StartHandler(&$Parser, &$Elem, &$Attr) {
    7. global $Data, $CData;
    8. /* Start with empty CData array. */
    9. $CData = array();
    10. /* Put each attribute into the Data array. */
    11. while ( list($Key, $Val) = each($Attr) ) {
    12. $Data["$Elem:$Key"] = trim($Val);
    13. // debug // echo "$Elem:$Key = " . $Data["$Elem:$Key"] . "\n";
    14. }
    15. }
    16. //Runs each time XML character data is encountered
    17. function CharacterHandler(&$Parser, &$Line) {
    18. global $CData;
    19. /*
    20. * Place lines into an array because elements
    21. * can contain more than one line of data.
    22. */
    23. $CData[] = $Line;
    24. }
    25. //Runs each time an XML element ends
    26. function EndHandler(&$Parser, &$Elem) {
    27. global $Data, $CData, $listeners, $server, $song, $dj, $wee;
    28. //Mush all of the CData lines into a string and put it into the $Data array.
    29. $Data[$Elem] = trim( implode('', $CData) );
    30. //echo "$Elem = " . $Data[$Elem] . "<br>\n";
    31. switch ($Elem){
    32. //for each case, we are putting some data into a variable.
    33. case 'AIM':
    34. $dj['AIM'] = $Data['AIM'];
    35. break;
    36. }
    37. }
    38. //open connection
    39. $fp = fsockopen("$host", $port, &$errno, &$errstr, 30);
    40. if (!$fp) {
    41. echo "Connection to server could not be established! <BR>";
    42. }
    43. else {
    44. //request xml
    45. fputs($fp,"GET /admin.cgi?pass=".$password."&mode=viewxml&page=0 HTTP/1.0\nUser-Agent: Mozilla Compatible\n\n");
    46. while(!feof($fp)) {
    47. //put xml into $Data
    48. $Contents .= fgets($fp, 1000);
    49. }
    50. }
    51. //close connection
    52. fclose($fp);
    53. $Contents = str_replace('HTTP/1.0 200 OK','', $Contents);
    54. $Contents = str_replace('Content-Type:text/xml','', $Contents);
    55. $Contents = str_replace("\n",'', $Contents);
    56. $Contents = str_replace("\r",'', $Contents);
    57. $Contents = preg_replace('/(&amp;|&)/i', '&amp;', $Contents);
    58. $Contents = preg_replace('/[^\x20-\x7E\x09\x0A\x0D]/', "\n", $Contents);
    59. $Data = array();
    60. // Initialize the parser.
    61. $Parser = xml_parser_create('ISO-8859-1');
    62. xml_set_element_handler($Parser, 'StartHandler', 'EndHandler');
    63. xml_set_character_data_handler($Parser, 'CharacterHandler');
    64. //Pass the content string to the parser.
    65. if (!xml_parse($Parser, $Contents)) {
    66. $Probs[] = "<img src=images/radio_offline.gif ";
    67. }
    68. if (isset($Probs)) {
    69. echo implode("\n", $Probs);
    70. }
    71. //Output
    72. $listeners['AVERAGETIME'] = $listeners[AVERAGETIME]/10;
    73. $wee = $wee -1;
    74. $search = 'anita';
    75. $replace = '<IMG SRC="dj-bilder/anita.jpg" BORDER="0"></A><br>';
    76. echo str_replace($search, $replace, "
    77. <tr><td></td><td>{$dj[AIM]}</td></tr>\n
    78. ");
    79. $search = 'rene';
    80. $replace = '<IMG SRC="dj-bilder/rene.jpg" BORDER="0"></A><br>';
    81. echo str_replace($search, $replace, "
    82. <tr><td></td><td>{$dj[AIM]}</td></tr>\n
    83. ");
    84. ?>
    Alles anzeigen
  • "speedway2002" schrieb:

    Aber nur en Klenes Prob habe ich noch wenn der server OFF ist zeigt er mir das Bild net an...

    wenn der server off ist, dann sollte man das script ja auch nicht im browser sehen können???

    "speedway2002" schrieb:

    Es bleibt immer der Letzte DJ noch zu sehen uff.....

    wie meinst du das? drück dich mal verständlicher aus

    btw: Das </a> brauchst du ja nicht, könntest du noch löschen
  • Hi,

    also wenn der der DJ nicht mehr sendet, und keiner sonst auch sendet solte en Bild mit radio_offline.gif kommen..

    Also Radio ist aus und Bild kommt ...

    Habe das da eingebaut

    // Initialize the parser.
    $Parser = xml_parser_create('ISO-8859-1');
    xml_set_element_handler($Parser, 'StartHandler', 'EndHandler');
    xml_set_character_data_handler($Parser, 'CharacterHandler');
    //Pass the content string to the parser.
    if (!xml_parse($Parser, $Contents)) {
    $Probs[] = "<img src=images/radio_offline.gif ";

    }
    if (isset($Probs)) {
    echo implode("\n", $Probs);
    }


    Das Bild was da bei Probs angeziegt wird ist wen der shiutcast server nicht ereicbar ist .

    Aber möchte halt eins angeziegt bekommen wenn das radio aus ist..

    Hoffe habe jetzt richtig erklährt...
  • Die Funktion time() (durchlesen!) ist dabei sehr hilfreich. Du kannst dir die seit dem 1.1.1970 vergangenen Sekunden ausgeben lassen.
    Diesen Wert kannst du in einer Textdatei oder einer Datenbank abspeichern.

    3 Minuten sind 3*60 Sekunden.

    Wenn man also zu einer der gespeicherten Zeiten 3*60 hinzuaddiert, und dieser Wert kleiner ist, als der Wert, den time() bei Aufruf des Scripts liefert, sollte der entsprechende DJ aus der Datei/Datenbank gelöscht werden.

    @d0nUt wir hatten wohl beide nicht so unseren tag, was? :) 2 grässliche syntaxfehler...
  • WENN ICH SO VIELE SCRIPS GEFUNDEN HÄTTE WÜRDE ICH ES MIR SICHER NICHT SO SCHWER MACHEN UND WOLLTE DIESEN NEHMEN UND ZUM THEMA E-MAIL WENN DU ALS ADMIN SIE SEHEN KANNST SEI FROH ICH KANN ES NICHT MANCHMAL KOMME ICH MIR IN DIESEN >>>>HILFE<<<< FORUM ECHT VERARSCHT VOR SORRY ABER IST SO

    DANKE FÜR DEN BLÖDEN KOMENTAR

    PAMO
  • Lol, danke für die lieben Worte, aber an der Stelle kann ich nur sagen,
    dass ich in meinem Forum auf User wie dich verzichten kann

    also

    Das nächste mal kannst du ja versuchen auf den PM Button zu klicken
    Ist eigentlich gang und gebe, dass man daraufhin per mail informiert wird
    Außerdem ist der Scriptautor im Code erwähnt.. mehr Hinweise brauch ich nun wirklich nicht geben