tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
1389
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Nov 2002
    Beiträge
    983
    Hallo!

    ich beziehe mich auf: http://www.tutorials.de/tutorials77346.html

    Ich habe das früher auf meiner lokalen Maschine perfekt mit AppServ am laufen gehabt. Leider ist mir die Festplatte abgeraucht und ich musste neu installieren. Als WAMPP habe ich diesmal statt Appserv XAMPP gewählt und konnte die alten Daten wieder herstellen.
    Aber: seit dem ich XAMPP laufen habe, erhalte ich statt des Titels nur den HTTP-Response-Code in der Ausgabe:
    Wenn ich mit folgender Funktion den Titel abfrage...
    PHP-Code:
    function httpQ($command$arg)
    {
      
    $pass "test";
      
    $port 4800;
      
    $fp fsockopen("127.0.0.1"$port, &$errno, &$errstr);
      
      if(!
    $fp
      {
        echo 
    "$errstr($errno)\n";
      }
      else 
      {
        if((
    $arg == "")) 
        {
          
    $msg "GET /$command?p=$pass HTTP/1.0\r\n\r\n";
        }
        else 
        {
          
    $msg "GET /$command?p=$pass&a=$arg HTTP/1.0\r\n\r\n";
        }

        
    fputs($fp$msg);
        while(!
    feof($fp)) 
        {
          return 
    fgets($fp,128);
        }
      }
      
    fclose($fp);

    ... erhalte ich den folgenden Response-Code, statt ein "vernünftiges" Ergebnis:
    Code :
    1
    
    HTTP/1.0 200 OK

    Als Argumente schicke ich folgendes an die Funktion:
    PHP-Code:
    $titel "";
                        
    $titel httpQ(getcurrenttitle$titel);
                        echo 
    $titel;
                        
    $titel explode("."$titel);
                        
    $titel explode("-"$titel[1]);
                        
    $titel[0] = trim($titel[0]);
                        
    $titel[1] = trim($titel[1]); 
    Ich finde das recht merkwürdig - kann das mit der PHP-Konfiguration zusammenhängen?

    Nachtrag: Ich habe spasseshalber mal folgendes gemacht:
    PHP-Code:
    include("http://localhost:4800/getcurrenttitle?pass=test"); 
    Und siehe da: es klappt. Nur kann ich das auf meinem "richtigen" Webserver so natürlich nicht laufen lassen.Ich kapier das nicht....
     

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.806
    Blog-Einträge
    5
    PHP-Code:
    $antwort file_get_contents('http://localhost:4800/getcurrenttitle?pass=test'); 
    Das sollte es tun

    Ich kann mir ehrlich gesagt nicht vorstellen, dass die Funktion httpQ mal geklappt haben sollte. Normalerweise wird als erste Zeile immer der Antwortheader zurückgegeben. Kann natürlich sein, dass am Winamp-Plugin was geändert wurde.
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  3. #3
    Registriert seit
    Nov 2002
    Beiträge
    983
    Doch sie hat es.
    Nach dem ersetzen erhalte ich folgenden Fehler:
    Code :
    1
    2
    3
    4
    5
    6
    
    Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: gethostbyname failed in F:\apachefriends\xampp\htdocs\www\mssparty\index.php on line 47
     
    Warning: fsockopen() [function.fsockopen]: unable to connect to http://127.0.0.1:4800 in F:\apachefriends\xampp\htdocs\www\mssparty\index.php on line 47
    Der Vorgang wurde erfolgreich beendet. (0) 
    Warning: fclose(): supplied argument is not a valid stream resource in F:\apachefriends\xampp\htdocs\www\mssparty\index.php on line 70
    Turbonegro - Are You Ready (For Some Darkness)
    Wobei die letzte Zeile vom include() herstammt.
    Ich raff es nicht. Kann man in der Apache- oder PHP-Konfig irgendwo was dementsprechendes einstellen? Ich kann mir nicht erklären, warum es mit dem Appserv-Paket ging und jetzt nicht. Komisch...
     

  4. #4
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.806
    Blog-Einträge
    5
    Zitat Zitat von Moritz123
    Doch sie hat es.
    Nach dem ersetzen erhalte ich folgenden Fehler:
    [...]
    Mh? Was hast du wo ersetzt?
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  5. #5
    Registriert seit
    Nov 2002
    Beiträge
    983
    Uhh.. hab mal wieder nicht richtig gelesen! Manchmal könnt ich mir echt mit der flachen hand voll vor die Stirn schlagen... danke-es geht.
     

  6. #6
    PHPer PHPer ist offline Mitglied Gold
    Registriert seit
    Jul 2003
    Beiträge
    108
    Fragt mich jetzt bitte nicht woran das liegt, aber so sollte das nun gehen:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    [COLOR=Blue]function httpQ($command)[/COLOR]
    {
      $pass = "pass";
      $port = 4800;
      $fp = fsockopen('localhost', '4800', $errno, $errstr, 30);
      
      if(!$fp) 
      {
        echo "$errstr ($errno)\n";
      }
      else 
      {
          [COLOR=Blue]$msg = "GET /$command HTTP/1.0\r\n\r\n";[/COLOR]
        fputs($fp, $msg);
        while(!feof($fp)) 
        {
            [COLOR=Blue]$var[] = fgets($fp,128);[/COLOR]
        }
        [COLOR=Blue]return $var[4];[/COLOR]
      }
     
      fclose($fp);
    }
     
    [COLOR=Blue]echo httpQ("getid3tag?p=pass&tags=t,a,y,g,l&delim=<br>");[/COLOR]

    Die änderungen im Folgendem:
    Bei der Funkton httpQ habe ich $arg rausgenommen. Stattdessen muss nun der komplette Query String (im Beispiel "getid3tag?p=pass&tags=t,a,y,g,l&delim=<br>") beim Aufruf übergeben werden. Diesen kann man in der httpQ Referenz nachlesen.
    Desweiteren wird das ergebniss in ein Array gesteckt, und das 5. Element ($var[4]) zurückgegeben. Dieses enthält nämlich die gewünschten Daten. Sollte das nicht der fall sein, einfach ne andere Zahl ausprobieren. $var[0-3] sind einfach nur Response Codes wie "HTTP/1.0 200 OK".

    Villeicht kann der Tutorial Schreiber ja sein Tutorial ergänzen oder wie auch immer.
     

Ähnliche Themen

  1. LaTeX macht Probleme mit "listings"-Paket
    Von g-a-s-t im Forum Sonstige Sprachen
    Antworten: 12
    Letzter Beitrag: 19.08.10, 14:01
  2. Probleme beim "Atompilz-Tutorial"
    Von Teaser im Forum Cinema 4D
    Antworten: 5
    Letzter Beitrag: 25.02.09, 17:33
  3. PHP "require()" macht Probleme
    Von 3000volt im Forum PHP
    Antworten: 2
    Letzter Beitrag: 14.04.07, 22:47
  4. "Rotate tool" macht Probleme
    Von grashupfa im Forum Autodesk Maya (ehemals Alias)
    Antworten: 1
    Letzter Beitrag: 26.07.05, 12:07