Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] ICQ Status per PHP abfragen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] ICQ Status per PHP abfragen

    Hallo Leute!

    Ich habe folgendes Problem:
    Auf meiner Seite möchte ich es möglich machen den ICQ-Status einer Person abfragen zu können.
    Leider weiß ich nicht genau wie das geht.
    Habe dazu einige Sachen im Inet gefunden, die sind aber fast alle out-of-date und funktionieren nicht mehr.

    Ein bisschen was habe ich allerdings schon zusammengebastelt:

    PHP-Code:
    [..]
    public function 
    checkICQ($_ICQNumber)
    {    
        
    $adress file("http://www.icq.com/scripts/online.dll?icq=".$_ICQNumber."&img=5");

        return 
    $adress;
    }
    [..] 
    Zurück bekomme ich ein Array, ich verstehe aber den Inhalt nicht!
    Ihr könnt es ja mal probieren, indem ihr die URL aus meiner Funktion nehmt und die Variable $_ICQNumber durch eure ICQ# ersetzt.

    Kann mir da jemand helfen?
    Also wie ich den Inhalt des zurückgegebenen Arrays deute/benutze?
    sigpic


  • #2
    -.-
    Wie wäre es wenn du mal den Inhalt postest?
    "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

    Kommentar


    • #3
      Gerne, aber ich warne euch, es ist SEHR kryptisch

      Hier die Ausgabe des Arrays, welches man zurückbekommt:

      array(2) { [0]=> string(190) "GIF89a��³��AAA˜˜˜ñññÅÅŹ¹¹��������������������� ������������!ù ���,�������t�H° A�"H�*�*@�"B”èp¡€ blháÅŒœ(�"H^P2#Ș9��4kŽdh“ÀMž##FÌxS¨ €ŒWº„¨1&Bš&£BÝ©ñeF…C�*¬ˆ³æT® " [1]=> string(9) "EVK–l@�;" }
      sigpic

      Kommentar


      • #4
        GIF89a ist der magic code eines GIF Bildes...
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          Das heißt....alles was an der Stelle [0] des Arrays hinter GIF89a steht ist ein Code für ein Bild?
          Wie bekomme ich es dargestellt?
          Oder was kann ich damit sonst machen?
          sigpic

          Kommentar


          • #6
            Ja das ganze was du zurück bekommst ist eben diese Blume in ICQ. (wahrscheinlich nicht in blau)

            Das kannst du dann selbst als Bild ausgeben lassen wenn du die entsprechenden Header setzt.

            Kommentar


            • #7
              Doofe Frage, aber wie exakt mache ich das denn in dem Fall?

              Also was returne ich?
              Und welche Header-Infos muss ich mitgeben?
              Habe damit leider nicht viel Erfahrung
              sigpic

              Kommentar


              • #8
                _Google_ Bläul.de - Bilder ausgeben (speichern)
                sigpic

                Kommentar


                • #9
                  Meine Funktion sieht jetzt also so aus:

                  PHP-Code:
                  public function checkICQ($_ICQNumber)
                  {
                      
                  $adress file("http://www.icq.com/scripts/online.dll?icq=".$_ICQNumber."&img=5");
                      
                      
                  $rep str_replace("GIF89a"" "$adress[0]);
                      
                      
                  header("Content-Type: image/gif");


                      
                  imagegif($rep);

                  Aufruf in einer anderen Datei:
                  PHP-Code:
                  <?php 
                  include('sandbox2.php');

                  $ICQ = new sandbox2();
                  $ICQ->checkICQ(123456789);
                  ?>
                  Also Ausgabe bekomme ich aber nur den Fehler:
                  Die Grafik "http://localhost/sandbox.php" kann nicht angezeigt werden, weil sie Fehler enthält
                  sigpic

                  Kommentar


                  • #10
                    Du darfst das GIF89a auch nicht entfernen! Das gehört zum Bild.

                    Kommentar


                    • #11
                      Aber dann bekomme ich den gleichen Fehler
                      sigpic

                      Kommentar


                      • #12
                        echo den String einfach mal an den Browser - es IST das Bild (keine Resource, wie imagegif sie erwartet denke ich)

                        edit: Den header aber auf jedenfall vorher setzen
                        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                        Kommentar


                        • #13
                          Hi, wenn Du auf das Bild gehst, Speicher doch für alle möglichen Bilder eine Checksumme (würde hier mindestens sha256 nehmen), und sortiere so, den Status:

                          PHP-Code:
                          [...]
                          public function 
                          checkICQ $_ICQNumber )
                          {
                              
                          /* Statt implode('', file()) kann auf file_get_contents() verwendet werden */
                              
                          $image implode(''file("http://www.icq.com/scripts/online.dll?icq=".$_ICQNumber."&img=5"));

                              
                          $checksum sha256($image);

                              
                          /* Die Checksummen, musst Du aber selber ermitteln und dann einsetzen */
                              
                          switch ( $checksum )
                              {
                                  case 
                          'e34...'$status 'online'; break;
                                  case 
                          'a21...'$status 'offline'; break;
                                  case 
                          'a23...'$status 'anderer Status'; break;
                                  default:       
                          $status 'undefined';
                              }

                              return 
                          $status;
                          }

                          [...] 
                          Hast alle möglichen Statustypen aufgelistet und er springt doch mal in den Default-Bereich, könnte das ein Hinweis sein, dass sich hier das Bild geändert hat, und Du aktiv werden muss, so dass hier eine E-Mail-Benachrichtigung sinnvoll sein könnte, oder ein Logdatei.


                          Wenn Du es nur ausgeben möchtest, reicht auch ein Link direkt zum ICQ-Bild, dafür muss nicht unnötige Rechenleisten auf den Server verbraten werden. Denn dann reicht auch ein:

                          PHP-Code:
                          $imglink '<img src="http://www.icq.com/scripts/online.dll?icq=' $_ICQNumber '&img=5" />';
                          echo 
                          $imglink

                          Über die rechtlichen Wege, dass Bild über PHP auszugeben, bekommt man nun nicht den wirklichen Status ins Script geliefert, sondern macht nichts weiter, wie im letzten Beispiel, nur dass das Script so von der externen Abfrage abhängig gemacht wird, und deswegen ggf. länger läuft. Nebenbei wird unnötig Rechenleistung beansprucht.

                          Kommentar


                          • #14
                            Hey super, vielen Dank, das hat geholfen!!

                            Danke danke danke
                            sigpic

                            Kommentar

                            Lädt...
                            X