2010-11-16 5 views
0

Je rencontre un problème lors de l'utilisation de fwrite en php. le code suivant fonctionne sur mon ordinateur local mais donne une erreur dans le serveur.Problème avec fwrite php

$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30); 
if(!$fp) { 
    echo 'Error: '.$errno.', '.$errstr; 
} else { 
    fwrite($fp, 'kool'); 
} 

Il n'y a pas d'erreur avec fsockopen. ça passe et ne donne aucune erreur. fwrite ne peut pas écrire. il échoue et ne renvoie aucune erreur uniquement false

+0

Quelle est l'erreur qu'il te donne? – Webnet

+1

.... Quelle erreur? – Shoban

+0

pas d'erreurs dans fsockopen. son erreur donnant en fwrite. et son espace vide – KoolKabin

Répondre

1

Si vous utilisez un hôte partagé, il est probable que votre serveur n'autorise pas les connexions sortantes sur le port 80. Habituellement, seules les connexions entrantes sont autorisées.

+0

peut-être avez-vous raison. J'utilise l'hôte partagé. Alors, quelle peut être l'alternative pour moi? – KoolKabin

+0

Si vous êtes dans une grande entreprise (BlueHost, Aplus, GoDaddy, etc.), vous devriez être en mesure de demander à leur support technique d'avoir le port 80 sortant ouvert pour vous. C'est une demande courante, ils l'ont juste désactivée par défaut pour des raisons de sécurité. – Matt16060936

+0

existe-t-il des alternatives de cette méthode? – KoolKabin

2

Il s'agit d'un problème d'autorisations lorsque l'utilisateur Apache/Nobody accède à un fichier distant qu'il n'a pas l'autorisation de modifier/lire/écrire/exécuter.

Vous devez également imprimer le message d'erreur (s) pour le débogage

$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30); 
if(!$fp) { 
    echo "Error No: ".$errno."<br />\n"; 
    echo "Error Str: ".$errstr."<br />\n"; 
} else { 
    fwrite($fp, 'kool'); 
} 
+0

aucune erreur dans fsockopen. son erreur donnant en fwrite. et son blanc – KoolKabin