2010-04-24 6 views
0

J'ai besoin de savoir, d'où est mon script utilisé (c'est à vendre, et je ne veux pas de voleurs). Je veux écrire sur mon serveur dans le fichier, l'IP de l'utilisateur, le domaine où le script a été exécuté, la date, etc. J'ai essayé fopen, fwrite, mais is_file_writable a retourné que ce n'est pas le cas. Le fichier CHmods est 777, le catalogue parent a aussi 777 chmods.Fichier crossdomain modifier

Maintenant, je suis en train quelque chose comme ça:

<?php 
$file = 'http://www.misiur.com/security/seal.txt'; 

$data = date("Y-m-d H:i:s"); 
$ip = $_SERVER['REMOTE_ADDR']; 
$svr = $_SERVER['SERVER_NAME']; 
$str = "[$data] Loaded by $ip at $svr\r\n"; 

$current = file_get_contents($file); 
$current .= $str; 
file_put_contents($file, $current); 
?> 

Cependant - rien ne se passe. Qu'est-ce que je dois faire?

+0

HTTP est à la base un système de fichiers ** de récupération **, pas un système de publication de fichiers. Il y a plusieurs extensions à HTTP qui le permettent, mais je ne pense pas que vous puissiez les utiliser depuis PHP de cette façon ... –

Répondre

1

L'encapsuleur d'URL HTTP .

La meilleure façon de le faire serait d'avoir un script sur la fin du serveur distant (dans votre exemple, misiur.com:

http://www.misiur.com/security/write_seal.php 

Envoyer le contenu du nouveau fichier texte à ce script en utilisant POST Le script. serait alors file_put_contents() les informations reçues localement.

Here « sa extrait de code qui vous permet d'envoyer des contenus POST à ​​des scripts à distance facilement. vous aurez besoin POST parce que GET est généralement limitée en taille à 1-2 kilo-octets.

Bien sûr, vous devez sécuriser ce script pour éviter toute utilisation malveillante, par exemple. grâce à une protection par mot de passe basée sur .htaccess ou une clé d'accès.