Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/08/2008, à 15:18

sylvain1970

[contourné] Fonction unpack

Bonjour,
je dois utiliser un script php qui me renvoi l'erreur :

unpack() [function.unpack]: Type V: not enough input, need 4, have 0

Je ne sais pas quoi faire (malgré beaucoup de recherche sur internet, je n'ai pas trouvé de réponse) .
Merci de votre aide.

Dernière modification par sylvain1970 (Le 19/09/2008, à 18:44)

Hors ligne

#2 Le 17/08/2008, à 16:25

tiky

Re : [contourné] Fonction unpack

Bonjour,

Le message d'erreur semble signifier que tu ne fournis pas assez d'argument à la fonction unpack. Peux-tu donner la ligne de code où tu utilises unpack s'il-te-plaît?


Conseil d'expert: il vous faut un dentifrice adapté...

Hors ligne

#3 Le 17/08/2008, à 20:25

sylvain1970

Re : [contourné] Fonction unpack

function InitWithIp($ip,$port) {
    // open connection
        $this->socket = @fsockopen($ip, $port);
        if (!$this->socket) {
            $this->error = new IXR_Error(-32300, 'transport error - could not open socket');
            return false;
        }
        // handshake
        $array_result = unpack("Vsize", fread($this->socket, 4));
        $size = $array_result["size"];
        if($size > 64) {
            $this->error = new IXR_Error(-32300, 'transport error - wrong lowlevel protocol header');
            return false;
        }
        $handshake = fread($this->socket, $size);
        if ($handshake == "GBXRemote 1") {
            $this->protocol = 1;
        } else if ($handshake == "GBXRemote 2") {
            $this->protocol = 2;
        } else {
            $this->error = new IXR_Error(-32300, 'transport error - wrong lowlevel protocol version');
            return false;
        }
        return true;
    }

Le code n'est pas de moi.
Merci.

Hors ligne

#4 Le 17/08/2008, à 22:04

rniamo

Re : [contourné] Fonction unpack

"fread($this->socket, 4)" affiche ça, je pense que ça rate ici.

edit : enlève le @ et rit un coup.

Dernière modification par rniamo (Le 17/08/2008, à 22:09)


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#5 Le 17/08/2008, à 23:55

sylvain1970

Re : [contourné] Fonction unpack

"fread($this->socket, 4)" affiche ça, je pense que ça rate ici.

Désolé, je ne comprends pas ce que je dois faire.

enlève le @

Je l'ai enlevé dans "$this->socket = @fsockopen($ip, $port);" mais toujours la même erreur.

Hors ligne

#6 Le 18/08/2008, à 21:40

rniamo

Re : [contourné] Fonction unpack

fread lit une chaine de 4 octets si possibles.

Le @ devant fsockopen empêche l'affichage des erreurs (ici de l'ouverture d'un socket).

unpack prend en arguement un format ("Vsize" ici) et une chaîne.

Si la chaine ne correspond pas au format il y a une erreur.

Je ne suis pas sûr mais le fread peu raté à cause du fsockopen (qui rateré en premier).

J'essaierais quelquechose comme ça :

idée du code :

$sock=fsockopen(...);
...
$read=fread(...);
...=unpack(...);

< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne